Frontdoor の診断設定で取得した、Azure ストレージ上のアクセスログを Synapse Analytics の Serveless SQL プールで検索する際にいくつかの考慮点があったため、その内容をまとめておきたいと思います。
Archive for the ‘Synapse Analytics’ Category
Synapse Analytics の Serverless SQL プールの分散処理について
Microsoft Fabric の Lakehouse に対して、ADL Gen2 のショートカットを設定することで、Azure ストレージ上のデータを検索するという方法を昨今の環境ではとることができるようになったかと思います。
T-SQL で検索を行う場合には、マネージドテーブルとしてショートカットを作成することになるかと思いますが、レイクハウス に記載されているように次のような制限があります。
Tables フォルダーでは、最上位レベルでのみショートカットを作成できます。 Tables フォルダーの他のサブディレクトリでは、ショートカットはサポートされません。 ショートカットのターゲットに Delta\Parquet 形式のデータが含まれている場合、レイクハウスはメタデータを自動的に同期し、フォルダーをテーブルとして認識します。
マネージドテーブル (Tables) として、ショートカットを作成する際にはサブディレクトリのサポートが行われていません。
Azure ストレージに出力している Azure リソースの診断情報を検索しようとした場合、診断情報は複数のサブディレクトリから構成されているため、Microsoft Fabric でそのままのディレクトリ構造で検索を行うことは難しく、マネージドテーブルとして認識できるディレクトリ構造に加工をして利用する必要があります。(アンマネージドテーブルとして Files 配下にショートカットを作成して、Spark で検索を行うのであれば Microsoft Fabric でも対応可能です)
Synapse Analytics の Serverless (サーバーレス) SQL プールについては、サブディレクトリが複数の構造でも検索を行うことができ、Azure ストレージに対して、T-SQL で分析を行うという場合には、Serverless SQL プールのほうが容易に活用できるケースがあります。
Synapse Analytics のアーキテクチャについては、Azure Synapse SQL アーキテクチャ に記載されていますが、当ブログで Serverless SQL プールの分散処理について触れたことが無かったため、情報をまとめておきたいと思います。
現状、一番詳細に記載されているのは POLARIS: The Distributed SQL Engine in Azure Synapse になるかと思います。
公式ドキュメントではアーキテクチャの内容と、次のドキュメントが参考になるかと。
- Azure Synapse Analytics サーバーレス SQL プールのパフォーマンス チューニング ガイダンス
- Azure Synapse Analytics のサーバーレス SQL プールのベスト プラクティス
- Azure Synapse Analytics のサーバーレス SQL プールのトラブルシューティング
Synapse Analytics のサーバーレス SQL プールのコスト対象となるデータ処理数の基本的な考え方
Synapse Analytics のサーバーレス SQL プールは、メタデータ以外のデータは保持せず、検索対象となるデータは外部ストレージ (サービス) が対象となります。
そのため、利用時のコストは「データ処理数」となり、クエリ実行時には少量データの処理に対しても、最低 10MB の料金がかかることになります。(DMV に対しての検索はコストは発生していないようではあります)
検証で使用している場合は、2023年6月30日までの無料枠である、1TB 以内に収まるかと思いますが、実運用で大量データを使用する場合、クエリでどの程度処理が行われるかを把握することは重要となります。
本投稿では、サーバーレス SQL プールのコスト対象となるデータ処理数の基本的な考え方についてまとめておきたいと思います。
今回の対象は Azure ストレージからの情報取得となっており、Synapse Link については調査できていません。
今回は手元の CSV ファイルを使用して検証をしましたが、検証のために、手元にある程度のボリュームのまとまったデータがない場合は、Azure Open Datasets で公開されているデータを使用してみてもよいかもしれません。
Azure Machine Learning Studio のデータセットとしてサーバーレス SQL プールを使用する
Azure Machine Learning Studio で、機械学習モデルを作成する際のデータセットとして、次のようなデータストアを選択することができるのですが、この中には Synapse Analytics は含まれていません。
SQL Database の論理サーバー内に専用 SQL プール (Dedicated SQL Pool) を使用した場合は、論理サーバーの下に DB が作成されますので、接続のエンドポイントとしては「~.database.windows.net」を使用することができますので、データストアの種類として「Azure SQL Database」を選択しても戸惑うことなくデータストアを作成できるのではないでしょうか。