この記事は Snowflake Advent Calendar 2020 の4日目の記事です。
概要
Azure Data Factoryにて、Snowflakeコネクターの設定手順を紹介します。
AzureのSnowflakeを運用している方にはおすすめのツールです。
Azure Data Factoryを紹介したうえで、簡単なパイプラインを作成する手順を提示します。
手順数は多いのですが、簡単な項目の入力とクリックで、データ同期が実施できます
Azure Data Factory(Azure Synapse Analytics)で実現できること
ETLによるデータ連携やGUIによるデータプリパレーションが可能です。バッチ登録も登録やエラー箇所から再実行も可能であり、エンタープライズにおいて本格運用されているツールです。
利用できるコンポーネント | ざっくり説明 | 主な用途 |
---|---|---|
コピーアクティビティ | データ抽出やデータ取り込みが可能な機能。 | インタフェーステーブル、または、増分更新型のテーブルへのデータ取り込み。 |
Lookup アクティビティ | SQLを実行できる機能。 | ストアードプロシージャの実行。インタフェースファイルから、実テーブルへのMerge処理による差分更新が可能。 |
マッピング データ フロー | Sparkをバックエンドに、GUIによるデータのパイプラインを実行する機能。 | データプリパレーション、GUIによるETLプロセスの構築。 |
なぜAzure Data Factoryを利用すべきなのか
1. 対応しているコネクター数が多いこと
SalesforceやMarketなどの90以上のコネクターをソースに、データ取り込みが可能です。
引用元:Data Factory - データ統合サービス | Microsoft Azure
2. GUIベースでのデータプリパレーションが可能であること
引用元:マッピング データ フローの監視 - Azure Data Factory | Microsoft Docs
3.従量課金なので使い始めやすいこと
引用元:価格 – Data Factory | Microsoft Azure
簡単なデータ同期の実施
事前準備
下記のアカウントを作成してください。
- Snowflake
- Azure Data Factory
1. Snowflakeにて、データベースとテーブルを作成
CREATE OR REPLACE DATABASE AZURE_DATA_FACTORY;
USE AZURE_DATA_FACTORY;
CREATE TABLE PUBLIC.WEATHER
(
DateID int NOT NULL,
GeographyID int NOT NULL,
PrecipitationInches float NOT NULL,
AvgTemperatureFahrenheit float NOT NULL
);
2. Azure Data Factoryにログイン後、"Author"->"+"->"Copy Data tool"を選択。
3. "Next"を選択。
4. "Create new connection"を選択。
5. "blob"を検索し、"blob"を選択したうえで"Continue"を選択。
6. 下記の項目を入力し、"Test Connection"を選択し、接続確認を実施。確認後、"Create"を選択。
項目 | サンプル値 |
---|---|
Authentication method | SAS URI |
SAS URL | https://nytaxiblob.blob.core.windows.net/ |
SAS token | " |
Test Connections | To file Path |
Test Connectionsの値 | 2013/Date |
7. "Next"を選択。
8. "File or folder"に"2013/Weather/"と入力後、"Next"を選択。
9. 自動で表示されるデータのプレビューを確認後、"Next"を選択。
10. "Create new connection"を選択。
11. "Snowflake"を検索し、"Snowflake"を選択したうえで"Continue"を選択。
12. 下記の項目を入力し、"Test Connection"を選択し、接続確認を実施。確認後、"Create"を選択。
13. "Next"を選択。
14. "Destination"に"PUBLIC.WEATHER"選択後、"Next"を選択。
15. "Next"を選択。
16. "Next"を選択。
17. "Next"を選択。
18. "Edit pipeline"を選択。
19. "Debug"を選択。
20. データの取り込みが完了したことを確認します。
備考
1. Azure以外のSnowflakeへの書き込み(シンク)が実施できないようです。読み込みは可能です。
ErrorCode=SnowflakeUnsupportedCouldPlatformForImport,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Snowflake only support the account hosted in azure platform while as sink connector, please make sure your account is hosted in azure, current region and platform is 'AWS_US_WEST_2',Source=Microsoft.DataTransfer.ClientLibrary,'