こんにちは。CData Software Japan リードエンジニアの杉本です。
今回は先週新しくリリースされたばかりのCDataSync新機能、Azure Synapseへのデータ同期を紹介したいと思います。
- Azure Synapse Analytics とは?
- 連携シナリオ
- 必要なもの
- Azure Synapse Analytics 環境の準備
- Azure Blob Storage の SAS Tokenの生成
- CDataSyncの環境構成
- 接続情報の構成:データソース:Salesforce
- 接続情報の構成:同期先:Azure Synapse
- ジョブの作成
- おわりに
Azure Synapse Analytics とは?
Azure Synapse AnalyticsとはMicrosoftが Azure で提供する分析・統合・DWを一つのサービスとしてまとめ上げたビッグデータ分析サービスです。
もともと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!
そして先週、 CDataでは Azure SynapseのDWH(専用SQLプール)に対して、手軽に各種クラウドサービスのデータを取り込むことができる新機能「CData Sync for Azure Synapse」をリリースしました!
また、この新機能によりマイクロソフト社のAzure Synapse Analytics のローンチングパートナー としても登録されています。
連携シナリオ
今回はCDataSyncで提供されている200種類以上のデータソースの中でも人気のCRM/SFAクラウドサービスである「Salesforce」から、「Azure Synapse」へのデータレプリケーションを行ってみたいと思います。
必要なもの
- CDataSync本体
- Azure Synapse Destination Connector
- Azure サブスクリプション
- Azure Synapse Analytics 環境(同時に構成する必要があるAzure Data Lake Storage Gen2も含む)
Azure Synapse Analytics 環境の準備
まず最初に対象のAzure サブスクリプションにログインし、Azure Synapse Analytics環境を構成します。
設定はデフォルトのままでほとんど大丈夫ですが、CDataSyncからAzure Synapseにアクセスできるようにネットワークのアクセス許可は許容しておいてください。
次にCDataSyncからデータを登録先として、専用SQLプールを作成しておきます。
作成したAzure Synapseの管理画面から「新しい専用SQLプール」をクリックし
任意の名称、パフォーマンスレベルで作成しておきます。この名前を後ほど連携先のデータベース名として利用します。
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コンテナを対象としました。
SASトークンは「Shared Access Signature」から生成できます。使用できるリソースの種類として「コンテナー」・「オブジェクト」を選択し、「SASと接続文字列を生成する」をクリックしましょう。
これで生成されたSASを控えておきます。
CDataSyncの環境構成
続いてCDataSyncの環境構成を行います。
CDataSyncはServerインストール型の製品なので、ローカルやAzure VMなどに構成して利用することが可能です。
今回はテスト用なので私のWindowsデスクトップマシンで試しました。
以下のURLから「Windows .NET Edition」をダウンロードして、対象のマシンにセットアップを行ってください。
https://www.cdata.com/jp/sync/download/
セットアップ完了後、以下のようにCDataSyncのログイン画面が立ち上がるので、登録したID・PWでログインしてください。また、合わせて情報タブから評価版の構成を行っておきます。
接続情報の構成:データソース:Salesforce
CDataSyncのセットアップが完了したら、最初にデータソースと同期先の接続情報を構成していきます。
今回はSalesforceをデータソースとするので「接続」の「データソース」一覧からSalesforceを選択します。
もし他にお好みのサービスがあれば、それを使っても大丈夫です。
Salesforceでは、User・Password・SecurityTokenが接続情報として必要となります。
以下の設定画面にそれぞれ入力して、接続テストを行い、問題なければ設定を保存しましょう。
接続情報の構成:同期先:Azure Synapse
続いて、同期先となるAzure Synapseの接続情報も構成します。
接続先一覧から「同期先」にタブを切り替えて「Azure Synapse」を選択します。
もし、一覧にAzure Synapseが存在しない場合は、コネクタをダウンロードから検索して、ダウンロードを行ってください。
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を指定します。 |
次にAdvancedタブの以下の項目も合わせて設定します。
プロパティ名 | 値 | 備考 |
---|---|---|
Azure SAS Token | 例)?sv=2019-12-12&ss=bfqt&srt=co&sp=… | 事前に生成したAzure Blob StorageのSAS |
Batch Mode | COPY | Azure Blob Storage を利用してレプリケーションを行うので、COPYを指定します。 |
必要な情報を入力後、接続のテストをクリックし、問題なければ変更を保存します。
以上で接続情報の作成は完了です。
ジョブの作成
最後にデータのレプリケーションをどのように実行するか? を定義しているジョブを作成します。
「ジョブ」のタブに移動して「ジョブを追加」をクリックし
任意のジョブ名と、予め設定したSalesforce・Azure Synapseの接続情報を選択し、ジョブを作成します。
ジョブを作成したら、レプリケーションを行うSalesforceのテーブル(オブジェクト)を指定します。
「+テーブルを追加」をクリックし
Azure Synapse にレプリケーションしたい対象のテーブルを選択します。
今回は「Account:取引先」を選択してみました。
あとは、ジョブをレプリケーションする間隔、スケジュールを定義すれば設定完了です。
これで一定時間置きに、Salesforceからデータを取得し、Azure Synapseへ複製されたデータが構成されます。
CDataSyncは手動実行もできるので、今回は手動実行で実際にデータがレプリケーションできるかどうかを確認したいと思います。
なお、同期対象のテーブル名をクリックし「プレビュー」のタブに移動することで、同期対象となっているデータを確認することが可能です。
手動で同期する場合は対象のテーブルにチェックを入れて「実行」をクリックするだけです。
一定時間が経過すると、以下のようにレプリケーション結果とレプリケーションされたレコード件数が表示されます。
Azure Synapseの画面から、テーブル一覧を見てみると、以下のようにAccountテーブルと各項目が正常に作成されていました。
また、データもSELECTしてみると、正常に各レコードがレプリケーションされていることが確認できました。
おわりに
以上のように、CDataSyncを使うことで簡単にAzure SynapseのDWHへ様々なクラウドサービス・ファイルなどのデータをレプリケーションすることが可能です。
是非会社で活用しているサービスをデータソースとして、Azure Synapseへレプリケーションし、BI・分析業務に活用してみてください。
https://www.cdata.com/jp/sync/to/azuresynapse/#sources