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

by 杉本和也 | 2020年12月21日

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

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。