SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Archive for the ‘Synapse Analytics’ Category

Synapse Analytics の SQL Ondemand と Query Acceleration にはどのような違いがあるのか

without comments

Synapse Analytics の SQL Ondemand (Serverless SQL Pool) と、Azure Storage の Query Acceleration では、Azure Storage 上のファイルに対して、SQL を実行することが可能です。

どちらもファイル対して、SQL を実行する機能ではありますが、これらの機能ではどのような違いがあるのか気になったので簡単にではありますが比較してみました。

ツールによりデータを取得するか、SDK からクエリを実行してデータを取得するかという、そもそものユースケースに違いがありますので、あまり比較しても意味はないかもしれませんが、ざっとした比較では次のようになるかと。

  SQL Ondemand Query Acceleration
検索対象として利用可能な Azure ストレージ Azure BLOB ストレージ
Azure Data Lake Storage Gen2
Azure BLOB ストレージ
Azure Data Lake Storage Gen2
クエリの実行方法

TDS
データは TDS で取得

SDK
データは Stream オブジェクトで取得
サポートする SQL 一般的な検索の SQL をサポート
データソース間の JOIN が可能
限定的 な SQL をサポート
単一データソースによる検索
データのエクスポート TDS を利用可能なツール
CETAS
Stream オブジェクトをコードで操作

検索対象のファイル

CSV
JSON
Parquet
CSV
JSON

一つのクエリで検索可能なファイル

ディレクトリ
ワイルドカード
単一ファイル
メタデータによる検索するファイルのフィルター filename() 関数
filepath() 関数
メタデータ
BLOB インデックスタグ

 

Ignite 2020 の What’s New in Azure Storage では、Query Acceleration に関しては、次のような解説が行われていました。

image

「Deeply integrated into Azure Synapse Analytics for improved performance and cost」と説明がされています。
具体的にどのように Synaspe Anaytics と統合されているのかまでは解説されていないのですが、Synapse Analytics で使用されている Polaris という分散 SQL エンジンが内部的には使用されているのかもしれませんね。

Read the rest of this entry »

Written by Masayuki.Ozawa

10月 22nd, 2020 at 10:59 pm

Posted in Synapse Analytics

Tagged with

Synapse Link for Cosmos DB を SQL Ondemand で操作する場合のメモ

without comments

Synapse Link for Cosmos DB を SQL Ondemand (Serverless SQL Pool) で操作する場合のメモを。

SQL Ondemand なのか、Serverless SQL Pool なのかがよくわからないので、どちらでもヒットするようにしています (遠い目)

ドキュメントとしては次の内容をベースとしています。

Read the rest of this entry »

Written by Masayuki.Ozawa

10月 20th, 2020 at 8:51 am

Synapse Analytics の Serverless SQL Pool (SQL Ondemand) でテキストを参照する際の文字コードの設定 (おまけで Synapse Link for Cosmos DB)

without comments

Synapse Analytics の Serverless SQL Pool (SQL ondemand) では、BLOB / ADL Gen2 上のファイルに対してクエリを実行することができます。

同様の内容を実現する機能としては、Azure Data Lake Storage のクエリ アクセラレーション があります。
こちらについては、しばやん先生が Azure Data Lake Storage の Query Acceleration が GA になったので試したら最高だった で機能の解説をされています。

この機能の比較をするために検証していたときに「そういえば、Serverless SQL Pool で、テキストを読むとき文字コードって何にする必要があったっけ?」と思い、軽く検証してみました。

今回は Shift-JIS / UTF8  / UTF16 LE の 3 パターンで検証しています。

使用しているデータは、本ブログのアクセスログを CSV に出力したものです。
image

シンプルな構成にするのであれば、次のような構成をしておけばいいのではないでしょうか。

  • ファイルは UTF8 のエンコードを使用する
  • データベースの照合順序は _UTF8 を使用する
  • 日本語環境の SQL Server の照合順序と同様にするのであれば、次の照合順序のいずれかを使用しておけば、最新のUnicode を考慮した文字コード体系になる
  • Japanese_XJIS_100_CI_AS_SC_UTF8
  • Japanese_XJIS_140_CI_AS_UTF8
  • 基本的な検索であれば、任意の照合順序に「_UTF8」を設定したものであれば、ある程度カバーできるはず
  • 検索条件で、文字列リテラルを使用する場合、「N’xxxxx’」の Unicde 変数で検索を行う。
  • Read the rest of this entry »

    Written by Masayuki.Ozawa

    10月 18th, 2020 at 12:20 am

    Posted in Synapse Analytics

    Tagged with

    Synapse の BroadcastMove / ShuffleMove の動作について

    without comments

    Synapse Analytics では、データの移動について、

    • BroadcastMoveOperation
    • ShuffleMoveOperation

    という 2 種類の操作を目にする機会が多いかと思います。

    これらの動作については、次のドキュメントなどに情報が記載されています。

    Synapse の SQL Pool に関しては、Analytics Platform System (APS) という、以前は、Parallel Data Warehouse (PDW) と呼ばれていたシステムがベースになっており、基本的な考え方については、並列データウェアハウスコンポーネント-分析プラットフォームシステム の情報も参考になるケースがあります。

     

    クエリの操作については、Analytics Platform System Appliance Update 5 Documentation and Client Tools からダウンロードできるドキュメントが今でも一番情報が記載されているのではないでしょうか。

    このドキュメント内には、BroadcastMoveOperation と ShuffleMoveOperation についても記載されています。

    • BroadcastMoveOperation
      • 分散データをレプリケートされたテーブルに移動する
      • この操作は、ディストリビューションと互換性のない結合を実行しているときに使用される機会がある。
      • この操作を実行するために、各ディストリビューションは、該当の行をすべてのComputeノードにブロードキャストする。
      • その結果、各Computeノードは、自分の行に他のComputeノードから受け取ったすべての行を加えて、レプリケートされたテーブルを作成する。
    • ShuffleMoveOperation
      • 分散されたテーブルを再配布する。
      • 再配布されたテーブルは、元の分散テーブルとは異なる分散カラムを持ち、これは、互換性のない結合や互換性のない集約を実行している場合に使用されることがある。
      • この操作を実行するために、DMSは、各行を分散先のテーブルの分布列に従って正しい計算ノードに移動する。
      • 既に正しいComputeノードに格納されている行は、この操作中はコピーされない。

    というような記載があります。

     

    基本的には、ディストリビューションに格納されていないデータ間での結合や集計が発生した際に、他のディストリビューションのデータを再配布することで必要なデータをコピーする処理となるのですが、どのような動作が実行されているかについて、まとめたことがなかったので、この機会にまとめておこうかと思います。

    Read the rest of this entry »

    Written by Masayuki.Ozawa

    9月 22nd, 2020 at 11:57 pm

    Posted in Synapse Analytics

    Tagged with

    Synapse Workspace の Manged VNET への関連付けについてのメモ

    without comments

    Synapse Workspace では、ワークスペースのリソースをデプロイする際に、Managed VNET に関連付けができます。(デプロイ時にのみ設定することができ、ワークスペースの作成後に設定を変更することはできません)

    image

    詳細については、Azure Synapse Analytics のマネージド仮想ネットワーク (プレビュー) に記載されているのですが、この辺の設定がいまいちわかっていなかったので、情報を整理しておこうかと。

    Read the rest of this entry »

    Written by Masayuki.Ozawa

    7月 22nd, 2020 at 12:55 pm

    Synapse Analytics の 2020/7 のリリースノートが公開されています

    without comments

    Synapse Analytics の 2020/7 のリリースノートが公開されています。

    July 2020

    今月の更新内容はこちら。

    image

     

    行レベルの暗号化 / 互換性レベルの GA / 行レベルセキュリティ (RLS) が新機能となるようですね。

    Written by Masayuki.Ozawa

    7月 7th, 2020 at 8:30 pm

    Posted in Synapse Analytics

    Tagged with

    Synapse Analytics のサンプル / ワークショップコンテンツ

    without comments

    Synapse Analytics (ワークスペース) のサンプルについては、Samples for Azure Synapse Analytics (workspace preview) で公開されており、ドキュメントにもこのサンプルにリンクが行われていますが、それ以外にもいくつかのコンテンツが GitHub 上で公開されています。

    Microsoft から公開されているコンテンツとしては次のようなものがあるようです。

    • Azure Synapse Analytics end-to-end solution
      • Exercise 6: Machine Learning の PREDICT 関数の実行については、次の注釈があります。
        PREDICT 関数を使用するためには、ホワイトリストに登録されている必要があるため、通常の環境では、2020/6 時点では実行することができないため、ワークショップを参考にしてどのような流れになるかを把握するまでになるかと。
        • Note: In order to make use of the PREDICT T-SQL function, your environment will need to be whitelisted. If your environment is not whitelisted, then you should read through the steps of this task as a reference as you will not be able to run the prediction queries.
    • Spark pool demo
    • PySpark (Python) Demo

     

    MS 以外から公開されているコンテンツとしては次のようなものもあるようですね。

    Written by Masayuki.Ozawa

    6月 8th, 2020 at 8:28 pm

    Posted in Synapse Analytics

    Tagged with