CData Software Blog

クラウド連携のCData Software の技術ブログです。

CDataSync に新しく追加された同期先:Azure Synapse の使い方

f:id:sugimomoto:20201221174933p:plain

こんにちは。CData Software Japan リードエンジニアの杉本です。

今回は先週新しくリリースされたばかりのCDataSync新機能、Azure Synapseへのデータ同期を紹介したいと思います。

Azure Synapse Analytics とは?

Azure Synapse AnalyticsとはMicrosoftが Azure で提供する分析・統合・DWを一つのサービスとしてまとめ上げたビッグデータ分析サービスです。

azure.microsoft.com

f:id:sugimomoto:20201221174942p:plain

もともとAzure では、DWHサービスのAzure SQL DWH、データ統合・処理サービスのAzure Data Factory・Azure Databricks、データレイクサービスのAzure Data Lake Storage Gen2、などと様々なサービスを組み合わせてビッグデータ分析機能を提供していました。

Azure Synapse ではそれらを統合サービスとして構成しなおし、より便利かつ高機能に利用できるようになっています。

Azure Synapse については以下の動画などがわかりやすいと思います。

第31回 SQL Server 2019 勉強会 - #2 Azure Synapse Analytics Hack!

www.youtube.com

そして先週、 CDataでは Azure SynapseのDWH(専用SQLプール)に対して、手軽に各種クラウドサービスのデータを取り込むことができる新機能「CData Sync for Azure Synapse」をリリースしました!

www.cdata.com

また、この新機能によりマイクロソフト社のAzure Synapse Analytics のローンチングパートナー としても登録されています。

www.cdata.com

docs.microsoft.com

f:id:sugimomoto:20201221175104p:plain

連携シナリオ

今回はCDataSyncで提供されている200種類以上のデータソースの中でも人気のCRM/SFAクラウドサービスである「Salesforce」から、「Azure Synapse」へのデータレプリケーションを行ってみたいと思います。

www.cdata.com

f:id:sugimomoto:20201221175111p:plain

必要なもの

  • CDataSync本体
  • Azure Synapse Destination Connector
  • Azure サブスクリプション
  • Azure Synapse Analytics 環境(同時に構成する必要があるAzure Data Lake Storage Gen2も含む)

Azure Synapse Analytics 環境の準備

まず最初に対象のAzure サブスクリプションにログインし、Azure Synapse Analytics環境を構成します。

設定はデフォルトのままでほとんど大丈夫ですが、CDataSyncからAzure Synapseにアクセスできるようにネットワークのアクセス許可は許容しておいてください。

f:id:sugimomoto:20201221175137p:plain

次にCDataSyncからデータを登録先として、専用SQLプールを作成しておきます。

作成したAzure Synapseの管理画面から「新しい専用SQLプール」をクリックし

f:id:sugimomoto:20201221175142p:plain

任意の名称、パフォーマンスレベルで作成しておきます。この名前を後ほど連携先のデータベース名として利用します。

f:id:sugimomoto:20201221175147p:plain

Azure Blob Storage の SAS Tokenの生成

続いて Azure Blob Sotrage の SAS Tokenを生成します。

CDataSyncでは、Azure SynapseのCOPY SQLコマンドを使って、スケーラブルにデータレプリケーションを実現するのですが、そのデータの一時的な補完先として、Azure Blob Storageを利用します。

今回はAzure Synapseと合わせて作成した以下のAzure Blob Storage アカウントのADLS Gent2コンテナを対象としました。

f:id:sugimomoto:20201221175153p:plain

SASトークンは「Shared Access Signature」から生成できます。使用できるリソースの種類として「コンテナー」・「オブジェクト」を選択し、「SASと接続文字列を生成する」をクリックしましょう。

f:id:sugimomoto:20201221175159p:plain

これで生成されたSASを控えておきます。

CDataSyncの環境構成

続いてCDataSyncの環境構成を行います。

CDataSyncはServerインストール型の製品なので、ローカルやAzure VMなどに構成して利用することが可能です。

今回はテスト用なので私のWindowsデスクトップマシンで試しました。

以下のURLから「Windows .NET Edition」をダウンロードして、対象のマシンにセットアップを行ってください。

https://www.cdata.com/jp/sync/download/

f:id:sugimomoto:20201221175207p:plain

セットアップ完了後、以下のようにCDataSyncのログイン画面が立ち上がるので、登録したID・PWでログインしてください。また、合わせて情報タブから評価版の構成を行っておきます。

f:id:sugimomoto:20201221175213p:plain

接続情報の構成:データソース:Salesforce

CDataSyncのセットアップが完了したら、最初にデータソースと同期先の接続情報を構成していきます。

今回はSalesforceをデータソースとするので「接続」の「データソース」一覧からSalesforceを選択します。

もし他にお好みのサービスがあれば、それを使っても大丈夫です。

f:id:sugimomoto:20201221175219p:plain

Salesforceでは、User・Password・SecurityTokenが接続情報として必要となります。

以下の設定画面にそれぞれ入力して、接続テストを行い、問題なければ設定を保存しましょう。

f:id:sugimomoto:20201221175228p:plain

接続情報の構成:同期先:Azure Synapse

続いて、同期先となるAzure Synapseの接続情報も構成します。

接続先一覧から「同期先」にタブを切り替えて「Azure Synapse」を選択します。

f:id:sugimomoto:20201221175236p:plain

もし、一覧にAzure Synapseが存在しない場合は、コネクタをダウンロードから検索して、ダウンロードを行ってください。

f:id:sugimomoto:20201221175243p:plain

Azure Synapseの接続に必要となるプロパティは以下のとおりです。

プロパティ名 備考
Server 例)cdatasyncsynapsetest.sql.azuresynapse.net 専用SQLエンドポイントのアドレスを指定します。
Port 1433 ポート番号を指定します。特に変更していない場合は1433がデフォルトです。
Database 例)CDataSyncTable 専用SQLがプールの名称を入力します。
User sqladminuser SQL管理者のIDを入力します。デフォルトはsqladminuserです。
Password password SQL管理者のPWを入力します。
Storage Account Location https://cdatasyncsynapsetest.blob.core.windows.net/cdatasyncsynapsetest/ Azure Blob Storageのエンドポイントにコンテナ名を加えたURLを指定します。

f:id:sugimomoto:20201221175249p:plain

次にAdvancedタブの以下の項目も合わせて設定します。

プロパティ名 備考
Azure SAS Token 例)?sv=2019-12-12&ss=bfqt&srt=co&sp=… 事前に生成したAzure Blob StorageのSAS
Batch Mode COPY Azure Blob Storage を利用してレプリケーションを行うので、COPYを指定します。

f:id:sugimomoto:20201221175256p:plain

必要な情報を入力後、接続のテストをクリックし、問題なければ変更を保存します。

以上で接続情報の作成は完了です。

ジョブの作成

最後にデータのレプリケーションをどのように実行するか? を定義しているジョブを作成します。

「ジョブ」のタブに移動して「ジョブを追加」をクリックし

f:id:sugimomoto:20201221175304p:plain

任意のジョブ名と、予め設定したSalesforce・Azure Synapseの接続情報を選択し、ジョブを作成します。

f:id:sugimomoto:20201221175311p:plain

ジョブを作成したら、レプリケーションを行うSalesforceのテーブル(オブジェクト)を指定します。

「+テーブルを追加」をクリックし

f:id:sugimomoto:20201221175318p:plain

Azure Synapse にレプリケーションしたい対象のテーブルを選択します。

今回は「Account:取引先」を選択してみました。

f:id:sugimomoto:20201221175325p:plain

あとは、ジョブをレプリケーションする間隔、スケジュールを定義すれば設定完了です。

これで一定時間置きに、Salesforceからデータを取得し、Azure Synapseへ複製されたデータが構成されます。

f:id:sugimomoto:20201221175339p:plain

CDataSyncは手動実行もできるので、今回は手動実行で実際にデータがレプリケーションできるかどうかを確認したいと思います。

なお、同期対象のテーブル名をクリックし「プレビュー」のタブに移動することで、同期対象となっているデータを確認することが可能です。

f:id:sugimomoto:20201221175352p:plain

手動で同期する場合は対象のテーブルにチェックを入れて「実行」をクリックするだけです。

f:id:sugimomoto:20201221175357p:plain

一定時間が経過すると、以下のようにレプリケーション結果とレプリケーションされたレコード件数が表示されます。

f:id:sugimomoto:20201221175405p:plain

Azure Synapseの画面から、テーブル一覧を見てみると、以下のようにAccountテーブルと各項目が正常に作成されていました。

f:id:sugimomoto:20201221175411p:plain

また、データもSELECTしてみると、正常に各レコードがレプリケーションされていることが確認できました。

f:id:sugimomoto:20201221175417p:plain

おわりに

以上のように、CDataSyncを使うことで簡単にAzure SynapseのDWHへ様々なクラウドサービス・ファイルなどのデータをレプリケーションすることが可能です。

是非会社で活用しているサービスをデータソースとして、Azure Synapseへレプリケーションし、BI・分析業務に活用してみてください。

https://www.cdata.com/jp/sync/to/azuresynapse/#sources

f:id:sugimomoto:20201221175430p:plain