ROMANCE DAWN for the new world

Microsoft Azure を中心とした技術情報を書いています。

Azure Synapse Link for SQL を試してみた

この記事は、NEXTSCAPE Advent Calendar 2022 の 1 日目 の記事です。
qiita.com

Azure Synapse Link for SQL は、すでに Cosmos DB と Dataverse 向けに提供されている Synapse Link が SQL Server 2022 と Azure SQL Database で使えるようになった機能です。
公式サイトに記載されているレベルの簡単な内容ですが、Azure SQL Database を使って実際に試してみました。
learn.microsoft.com

SQL Server 2022 と Azure SQL Database のテーブルに対する追加・修正・削除を Azure Synapse Analytics の Dedicated SQL pool に同期することができる機能です。

出典:Microsoft Docs

わざわざ ETL パイプラインを作らずとも、業務で利用するデータベースとは完全に分離された分析用データベースを簡単に構築できます。

Azure SQL Database を作成する

同期元となる Azure SQL Database を作成します。Synapse Link を使う場合、DTU 100 以上を選択したうえでシステム割り当てマネージド ID を有効にする必要があります。

SSMS から Import Flat File の機能を使って、Mockaroo で作った 1000 件の CSV から Person という名前のテーブルを作成しました。Synapse Link に関する制限事項として、同期元となるテーブルには主キーが必要なので設定しています。

DTU100 以上 の件も含め、その他の制限事項は公式ドキュメントを参照してください。
learn.microsoft.com

Azure Synapse Dedicated SQL pool を作成する

Synapse Studio から、同期先となる Dedicated SQL pool を作成します。設定項目は、初期値のままにしました。


Link Connections から、SQL Database と Dedicated SQL pool を繋げる Synapse Link を構成します。

ウィザードにしたがって、同期元となる SQL Database を指定します。

同期先となる Dedicated SQL pool を指定します。

データの読み込みと変更を処理するためのインジェスト サービスに割り当てるコア数とモードを選択します。プレビュー版のためか分かりませんが、モードで Continuous を選択しても 60分間隔の Schedule になってしまう部分は注意してください。

最後に Synapse Link の全体構成を Publish して、同期をスタートします。

数分待つと、Link Connections のステータスが Running になります。


結果確認

Dedicated SQL pool の Person テーブルに 1000 レコードが登録されました。

試しに SQL Database 側でレコードを追加してみます。

Dedicated SQL pool 側にもレコードが追加され、データが同期されました。

まとめ

Azure SQL Database を使って、Azure Synapse Link for SQL を試してみました。

  • Dedicated SQL pool に自動同期されるので ETL パイプラインを組む必要がない
  • ほぼリアルタイムに自動で同期される(はず)
  • SQL Database 側のトランザクションのワークロードに影響を与えずに分析できる

といったあたりがメリットだと感じました。
SEの雑記でお世話になっているムッシュもフィードバックしていますが、Cosmos DB の Transactional Store と Analytical Store のように異なる TTL(Time to Live)を構成できるとさらに便利になると思います。

以前に、Azure Synapse Link for Cosmos DB を試した記事はこちらを参照してください。
gooner.hateblo.jp