CData SSIS Components を使用して SurveyMonkey のデータを Snowflake にマイグレーション
Snowflake は、エンタープライズ BI、分析、データ管理、ガバナンスの取り組みで広く利用されている先進的なクラウドデータウェアハウスです。Snowflake は、データ共有、リアルタイムデータ処理、安全なデータストレージなどの機能を提供しており、クラウドデータ統合の一般的な選択肢となっています。
CData SSIS Components は、SQL Server Integration Services を拡張し、さまざまなソースやデスティネーションからデータを簡単にインポート・エクスポートできるようにします。
この記事では、Snowflake へのエクスポート時のデータ型マッピングの考慮事項を確認し、CData SSIS Components for SurveyMonkey と Snowflake を使用してSurveyMonkey のデータを Snowflake にマイグレーションする方法を説明します。
データ型マッピング
| Snowflake スキーマ | CData スキーマ |
|---|---|
|
NUMBER, DECIMAL, NUMERIC, INT, INTEGER, BIGINT, SMALLINT, TINYINT, BYTEINT |
decimal |
|
DOUBLE, FLOAT, FLOAT4, FLOAT8, DOUBLEPRECISION, REAL |
real |
|
VARCHAR, CHAR, STRING, TEXT, VARIANT, OBJECT, ARRAY, GEOGRAPHY |
varchar |
|
BINARY, VARBINARY |
binary |
|
BOOLEAN |
bool |
|
DATE |
date |
|
DATETIME, TIMESTAMP, TIMESTAMP_LTZ, TIMESTAMP_NTZ, TIMESTAMP_TZ |
datetime |
|
TIME |
time |
特別な考慮事項
- 大文字小文字の区別: Snowflake はデフォルトで識別子の大文字小文字を厳密に一致させるため、大文字小文字の不一致に起因する問題が発生することがよくあります。これらの問題を解決するには、CData SSIS Components for Snowflake 接続で IgnoreCase プロパティを True に設定します。このプロパティは、Snowflake の QUOTED_IDENTIFIERS_IGNORE_CASE プロパティに直接マッピングされ、Snowflake が識別子を大文字小文字を区別するかどうかを指定します。
-
タイムスタンプ: Snowflake は 3 つのタイムスタンプ型をサポートしています:
- TIMESTAMP_NTZ: このタイムスタンプは、指定された精度で UTC 時刻を格納します。ただし、すべての操作は、TIMEZONE セッションパラメータで制御される現在のセッションのタイムゾーンで実行されます。
- TIMESTAMP_LTZ: このタイムスタンプは、指定された精度で「壁時計」時刻を格納します。すべての操作は、タイムゾーンを考慮せずに実行されます。
- TIMESTAMP_TZ: このタイムスタンプは、関連するタイムゾーンオフセットとともに UTC 時刻を格納します。タイムゾーンが指定されていない場合、セッションのタイムゾーンオフセットが使用されます。
デフォルトでは、CData SSIS Components は手動で設定しない限り、タイムスタンプを TIMESTAMP_NTZ として Snowflake に書き込みます。
前提条件
- Visual Studio 2022
- Visual Studio 2022 用 SQL Server Integration Services Projects 拡張機能
- CData SSIS Components for Snowflake
- CData SSIS Components for SurveyMonkey
プロジェクトの作成とコンポーネントの追加
-
Visual Studio を開き、新しい Integration Services プロジェクトを作成します。
- Control Flow 画面に新しい Data Flow Task を追加し、Data Flow Task を開きます。
-
Data Flow Task に CData SurveyMonkey Source コントロールと CData Snowflake Destination コントロールを追加します。
SurveyMonkey ソースの設定
以下の手順に従って、SurveyMonkey への接続に必要なプロパティを指定します。
-
CData SurveyMonkey Source をダブルクリックしてソースコンポーネントエディタを開き、新しい接続を追加します。
-
CData SurveyMonkey Connection Manager で接続プロパティを設定し、接続をテストして保存します。
SurveyMonkey はOAuth 2 認証標準を利用しています。SurveyMonkey がアンケートの回答を読むためにこれを必要とすることを考えると、アンケートを読むアカウントには有料プランのサブスクリプションが必要です。
SurveyMonkey への接続に使用できる認証方法は2つあります。
- プライベートoauth アプリケーションを登録するときに、パーソナルアクセストークンを使用します。
- パブリックoauth アプリケーションを登録するときに、OAuth を使用します。
パーソナルアクセストークンの使用
個人用トークンを使用して、自分のデータをテストし、アクセスします。個人用トークンを取得するには、ヘルプの「Creating a Custom OAuth App」の手順に従って、次の接続プロパティを設定します。
- OAuthAccessToken:アプリケーション設定で生成されたAccessToken に設定。
- InitiateOAuth:OFF に設定。
OAuth の使用
CData 製品はすでにSurveyMonkey にOAuth アプリケーションとして登録されています。そのため、デフォルトでは、自動的に埋め込みクレデンシャルを使用して接続します。
独自のカスタムOAuth アプリを使用したい場合は、ヘルプのCustom Credentials を参照してください。
-
接続を保存後、「Table or view」を選択し、Snowflake にエクスポートするテーブルまたはビューを選択して、CData SurveyMonkey Source Editor を閉じます。
Snowflake デスティネーションの設定
SurveyMonkey Source を設定したら、Snowflake 接続を設定してカラムをマッピングします。
-
CData Snowflake Destination をダブルクリックしてデスティネーションコンポーネントエディタを開き、新しい接続を追加します。
-
CData Snowflake Connection Manager で接続プロパティを設定し、接続をテストして保存します。
- コンポーネントは、Snowflake ユーザー認証、フェデレーション認証、SSL クライアント認証をサポートしています。認証するには、User と Password を設定し、AuthScheme プロパティで認証方法を選択します。Snowflake の bundle 2024_08(2024 年 10 月)を使用して作成されたアカウントからは、セキュリティ上の懸念からパスワードベースの認証がサポートされなくなりました。代わりに、OAuth や秘密鍵認証などの代替認証方法を使用してください。
その他の便利な接続プロパティ
- QueryPassthrough: True に設定すると、クエリは Snowflake に直接渡されます。
- ConvertDateTimetoGMT: True に設定すると、コンポーネントはローカルマシンの時刻ではなく、日時値を GMT に変換します。
- IgnoreCase: Snowflake が識別子を大文字小文字を区別するかどうかを指定するセッションパラメータです。デフォルト:false(大文字小文字を区別する)。
- BindingType: DEFAULT と TEXT の 2 種類のバインディングタイプがあります。DEFAULT は、Date 型に DATE、Time 型に TIME、Timestamp_* 型に TIMESTAMP_* のバインディングタイプを使用します。TEXT は、Date、Time、Timestamp_* 型に TEXT のバインディングタイプを使用します。
-
接続を保存後、Use a Table メニューでテーブルを選択し、Action メニューで Insert を選択します。
-
Column Mappings タブで、入力カラムからデスティネーションカラムへのマッピングを設定します。
プロジェクトの実行
これでプロジェクトを実行できます。SSIS Task の実行が完了すると、SQL テーブルのデータが選択したテーブルにエクスポートされます。