CData SSIS Components を使用して Microsoft Dataverse のデータを Snowflake にマイグレーション

Cameron Leblanc
Cameron Leblanc
Technology Evangelist
CData SSIS Tasks for Microsoft Dataverse と Snowflake を使用して、Microsoft Dataverse のデータを Snowflake に簡単にプッシュできます。

Snowflake は、エンタープライズ BI、分析、データ管理、ガバナンスの取り組みで広く利用されている先進的なクラウドデータウェアハウスです。Snowflake は、データ共有、リアルタイムデータ処理、安全なデータストレージなどの機能を提供しており、クラウドデータ統合の一般的な選択肢となっています。

CData SSIS Components は、SQL Server Integration Services を拡張し、さまざまなソースやデスティネーションからデータを簡単にインポート・エクスポートできるようにします。

この記事では、Snowflake へのエクスポート時のデータ型マッピングの考慮事項を確認し、CData SSIS Components for Microsoft Dataverse と Snowflake を使用してMicrosoft Dataverse のデータを 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 に書き込みます。

Microsoft Dataverse データ連携について

CData は、Microsoft Dataverse(旧 Common Data Service)のライブデータにアクセスし、統合するための最も簡単な方法を提供します。お客様は CData の接続機能を以下の目的で使用しています:

  • Dataverse エンティティと Dataverse システムテーブルの両方にアクセスし、必要なデータを正確に扱うことができます。
  • Azure Active Directory、Azure マネージド サービス ID 認証情報、クライアントシークレットまたは証明書を使用した Azure サービスプリンシパルなど、さまざまな方法で Microsoft Dataverse に安全に認証できます。
  • SQL ストアドプロシージャを使用して、Microsoft Dataverse エンティティを管理できます。エンティティ間の関連付けの一覧表示、作成、削除などが可能です。

CData のお客様は、データをデータウェアハウスにレプリケートしたい場合(他のデータソースと併せて)や、Microsoft エコシステム内のお気に入りのデータツール(Power BI、Excel など)または外部ツール(Tableau、Looker など)からライブ Dataverse データを分析したい場合など、さまざまな理由で当社の Dataverse 接続ソリューションを使用しています。


はじめに


前提条件

プロジェクトの作成とコンポーネントの追加

  1. Visual Studio を開き、新しい Integration Services プロジェクトを作成します。
  2. Control Flow 画面に新しい Data Flow Task を追加し、Data Flow Task を開きます。
  3. Data Flow Task に CData Microsoft Dataverse Source コントロールと CData Snowflake Destination コントロールを追加します。

Microsoft Dataverse ソースの設定

以下の手順に従って、Microsoft Dataverse への接続に必要なプロパティを指定します。

  1. CData Microsoft Dataverse Source をダブルクリックしてソースコンポーネントエディタを開き、新しい接続を追加します。
  2. CData Microsoft Dataverse Connection Manager で接続プロパティを設定し、接続をテストして保存します。

    ユーザー資格情報の接続プロパティを設定せずに接続できます。接続に最小限必要な接続プロパティは、以下のとおりです。

    • InitiateOAuth: GETANDREFRESH に設定します。
    • OrganizationUrl: 接続先の組織のURL、例えばhttps://organization.crm.dynamics.com などに設定。
    • Tenant (optional): デフォルトと異なるテナントに認証したい場合は、これを設定します。これは、デフォルトのテナントに所属していない組織と連携するために必要です。

    接続すると、CData 製品はデフォルトブラウザでOAuth エンドポイントを開きます。ログインして、CData 製品にアクセス許可を与えます。CData 製品がOAuth プロセスを完了します。

  3. 接続を保存後、「Table or view」を選択し、Snowflake にエクスポートするテーブルまたはビューを選択して、CData Microsoft Dataverse Source Editor を閉じます。

Snowflake デスティネーションの設定

Microsoft Dataverse Source を設定したら、Snowflake 接続を設定してカラムをマッピングします。

  1. CData Snowflake Destination をダブルクリックしてデスティネーションコンポーネントエディタを開き、新しい接続を追加します。
  2. 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 のバインディングタイプを使用します。
  3. 接続を保存後、Use a Table メニューでテーブルを選択し、Action メニューで Insert を選択します。
  4. Column Mappings タブで、入力カラムからデスティネーションカラムへのマッピングを設定します。

プロジェクトの実行

これでプロジェクトを実行できます。SSIS Task の実行が完了すると、SQL テーブルのデータが選択したテーブルにエクスポートされます。

はじめる準備はできましたか?

Microsoft Dataverse SSIS Component の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

Microsoft Dataverse Icon Microsoft Dataverse SSIS Components お問い合わせ

SSIS コンポーネントは、SQL Server SSIS のワークフロー内で簡単にMicrosoft Dataverse データにリアルタイム接続できるパワフルなツールです。

データフロー内のMicrosoft Dataverse コンポーネントを使ってCDS エンティティを同期できます。データ同期、ローカルバックアップ、ワークフローの自動化などに最適!