Synapse Link for Cosmos DB を SQL Ondemand (Serverless SQL Pool) で操作する場合のメモを。
SQL Ondemand なのか、Serverless SQL Pool なのかがよくわからないので、どちらでもヒットするようにしています (遠い目)
ドキュメントとしては次の内容をベースとしています。
SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿
Synapse Link for Cosmos DB を SQL Ondemand (Serverless SQL Pool) で操作する場合のメモを。
SQL Ondemand なのか、Serverless SQL Pool なのかがよくわからないので、どちらでもヒットするようにしています (遠い目)
ドキュメントとしては次の内容をベースとしています。
Synapse Analytics の Serverless SQL Pool (SQL on-demand) では、BLOB / ADL Gen2 上のファイルに対してクエリを実行することができます。
同様の内容を実現する機能としては、Azure Data Lake Storage のクエリ アクセラレーション があります。
こちらについては、しばやん先生が Azure Data Lake Storage の Query Acceleration が GA になったので試したら最高だった で機能の解説をされています。
この機能の比較をするために検証していたときに「そういえば、Serverless SQL Pool で、テキストを読むとき文字コードって何にする必要があったっけ?」と思い、軽く検証してみました。
今回は Shift-JIS / UTF8? / UTF16 LE の 3 パターンで検証しています。
使用しているデータは、本ブログのアクセスログを CSV に出力したものです。
シンプルな構成にするのであれば、次のような構成をしておけばいいのではないでしょうか。
インサイトテクノロジーさんの db tech showcase ONLINE 2020 で、次のセッションを担当させていただきます。
本セッションでは、パフォーマンスモニターや、動的管理ビュー (DMV) の情報を使用したベースライン取得の基本的なアプローチについてお話をさせていただく予定です。
セッション資料を作成していて「そういえば Windows Server 2019 でデータコレクションの自動起動が動かない件があったな」ということを思い出したので情報をまとめておこうかと。
基本的には、次の記事を把握しておけば問題ないはずです。
今回は、スクリプトは作成せずに、GUI からの操作でできる範囲で対応していますが、本来は、logman 等を使用したタイマー起動 / 終了と、スクリプトによるファイルの削除を実施したほうが良いかと思います。
2020/10 時点で Windows Server 2008 の検証環境を構築(サポートが切れていても検証で環境を構築しないといけないときがあるのです)していた際に気づいた内容のメモを。
久しぶりに古い OS を Windows Server 2019 から触ろうとしたら、いろいろと設定忘れていました。
本投稿では、Windows Server 2008 SP2 インストール直後の環境にたいして、最新の Windows Update を適用している Windows Server 2019 で接続を行っています。
SQL Server でパラメーター化クエリ (パラメータークエリ) を使用した場合、「クエリコンパイル時のパラメーター」を意識することがあるかと思います。(パラメーター化クエリだけでなく、ストアドプロシージャも同様ですが)
これは、「パラメーター スニッフィング」という、クエリのコンパイルが発生した際に、コンパイル時に使用されたクエリのパラメーターを傍受し、オプティマイザーがクエリの最適化を行うためです。
次のクエリを実行したタイミングでコンパイルが発生したとします。
sp_executesql N'SELECT * FROM LINEITEM WHERE L_ORDERKEY >= @orderkey', N'@orderkey int', @orderkey = 300000000
この場合、パラメーター スニッフィングにより、「@orderkey = 300000000」というパラメーターによって最適化されたクエリとしてコンパイルが行われます。。
今回は上記のクエリのハッシュ値がわかっているため、キャッシュされているクエリの情報を取得してみます。
SELECT qp.query_plan FROM sys.dm_exec_query_stats AS qs OUTER APPLY sys.dm_exec_query_plan(plan_handle) AS qp WHERE query_hash = 0x3B2744F6B4DC1A74
キャッシュされているクエリの実行プランには、「パラメーター リスト」という情報が含まれています。
実行プランの XML で確認した場合には、次のような情報です。
<parameterlist> <columnreference Column="@orderkey" ParameterDataType="int" ParameterCompiledValue="(300000000)"></columnreference> </parameterlist>
この情報から、キャッシュされているパラメーター化クエリの実行プランは、どのようなパラメーターによって、生成されたのかを確認することができます。
Ingite 2020 でアナウンスが行われましたが、「新しく作成した」Azure SQL Managed Instance (MI) に関してはグローバル VNET ピアリングがサポートされるようになります。
Ignite 2020 で発表された SQL Server / SQL Database 関連の更新情報 はアナウンスのあった情報ですが、セッションについても確認できた内容から、少しずつまとめていこうかと。
Azure SQL Family の更新情報については、Azure SQL: What to use when and updates from the Product Group のセッションでまとめられており、最新のアップデートについて紹介が行われています。
Ignite 2020 に合わせて SQL Server / SQL Database 関連の情報がアップデートされていますのでまとめて。
公式の情報は Microsoft Ignite 2020 Book of News から確認でき、日本語版 も公開されています。
データ関連の全体的なアナウンスについては、次の記事とセッションを見ると良いかと思います。
Making sense of Azure and Azure Arc deployment options for SQL Server で公開されていますが、Azure 上で動作する SQL Server ベースの環境もだいぶ増えましたね。
Synapse Analytics では、データの移動について、
という 2 種類の操作を目にする機会が多いかと思います。
これらの動作については、次のドキュメントなどに情報が記載されています。
Synapse の SQL Pool に関しては、Analytics Platform System (APS) という、以前は、Parallel Data Warehouse (PDW) と呼ばれていたシステムがベースになっており、基本的な考え方については、並列データウェアハウスコンポーネント-分析プラットフォームシステム の情報も参考になるケースがあります。
クエリの操作については、Analytics Platform System Appliance Update 5 Documentation and Client Tools からダウンロードできるドキュメントが今でも一番情報が記載されているのではないでしょうか。
このドキュメント内には、BroadcastMoveOperation と ShuffleMoveOperation についても記載されています。
というような記載があります。
基本的には、ディストリビューションに格納されていないデータ間での結合や集計が発生した際に、他のディストリビューションのデータを再配布することで必要なデータをコピーする処理となるのですが、どのような動作が実行されているかについて、まとめたことがなかったので、この機会にまとめておこうかと思います。
2020/9/14 に 11 年前に発売された 平山さん の著書である 絵で見てわかるSQL Serverの内部構造 の改訂版となる 絵で見てわかるSQL Serverの仕組み という SQL Server の書籍が発売されました。
Kindle 版の販売がまだ先だったので、紙の書籍を購入したものが今日届き、一通り目を通すことができましたので感想などを。
最新の SQL Server をターゲットとして、日本語で内部の動作に触れている書籍は、現時点ではこの書籍だけで、前作と同様に今回の改定版も良著ですので、「SQL Server を単純に操作するのではなく、内部動作を理解して製品を使用できるようになりたい」という思いがある方にとっては、最適な書籍ですので一度読まれてみてはいかがでしょうか。