最近、SQL Server の Bulk Insert について、調査することが何回かあり、その中で「高速挿入」(Fast Inserts / Fast Load Context) の動作をどこまで見れるか、考えたことがあったので、その覚書を。
詳細な情報としては次の内容を参照してください。
Archive for 5月, 2019
SQL Server の「高速挿入」についての覚書
SQL Server 2019 CTP 3.0 がリリースされました
月次でリリースされている SQL Server 2019 の Preview の CTP 3.0 がリリースされました。
de:code の 1 週間前にリリースされたので、「俺のセッションに影響はないのか!?」と、ちょっと焦りましたがなんとかなりそうです。
アナウンスはこちら。
- SQL Server 2019 community technology preview 3.0 is now available
- What’s new for SQL Server 2019 Analysis Services CTP 3.0
詳細についてはリリースノートや What’s New で確認できます。
ざっくりとした内容は次のようなものです。
Read the rest of this entry »
Azure Data Factory の Mapping Data Flow と Wrangling Data Flow について
Build 2019 でアナウンスの合った、Azure Data Factory (ADF) の Mapping Data Flow と Wrangling Data Flow についてメモを残しておこうかと。 Read the rest of this entry »
Azure SQL Database serverless (プレビュー) を触ってみました
Build 2019 で発表された Azure SQL Database serverless を少し触ってみました。
ドキュメントはこちらから。
基本的な考え方としては AWS の Aurora サーバーレス に通じるものがあるのかと。
(Azure SQL Database serverless は、現時点では最大 4 コアのモデルまでの小さなサイズでの提供となっていますので、スケール面での考え方は異なりますが)
Read the rest of this entry »
SQL Database で一般ユーザーで個別のプランキャッシュのクリア
SQL Server ベースの環境で、プランキャッシュをクリアする場合、次のような構文を使用します。
- DBCC FREEPROCCACHE (Transact-SQL)
- DBCC FREESYSTEMCACHE (Transact-SQL)
- ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)
SQL Database の場合は、DBCC ステートメントが使用できませんので、「ALTER DATABASE」でプランキャッシュのクリアが必要となります。
最近の更新で 「ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE」に、プランハンドルが指定できるようになりましたので、個別のプランのクリアも可能です。
ALTER DATABASE による、プランキャッシュのクリアですが、「データベースの CONTROL 権限」が必要となります。
CONTROL 権限 は、強めの権限となり、一般のユーザーに付与するには高すぎる権限です。
ALTER DATABASE CONFIGURATION だけで大丈夫でした orz
(CONTROL は上記の権限を付与するのに必要なだけでした)
プランキャッシュのクリアが必要なケースとしては
- プランのリコンパイルが発生し、実行プランが望ましくない場合に、再コンパイル対象としたい
ケースが考えられます。
このようなケースのプランキャッシュのクリアについては、管理者権限を持っていないユーザーでも実施したいケースがあるのではないでしょうか。
本投稿では、そのようなケースが発生した場合の実現方法をまとめてみたいかと。
Read the rest of this entry »
SQL Server のプロトコルのドキュメント
SQL Server とデータの送受信を行う際には「TDS」(Tabular Data Stream Protocol) が使用されています。
接続からクエリを実行するまでの流れってどうだったけと思った時には、プロトコルのドキュメントから詳細を確認することができます。
接続までの流れについては、How it works: SQL Serverの接続編 もとても参考になります。
Build 2019 であとで確認するセッションリスト
SQL Server / SQL Database
- Build 2019 で GA / Preview が発表された Azure Data Platform の機能についてのセッション
- スライドしか見ていないのですが、それぞれデモもあるようです。
- Azure SQL Database Hyperscale の GA
- Azure SQL Database Serverless の Preview 開始
- Azure SQL Database Edge の Preview 開始
- Azure Database for PostgreSQL Hyperscale (Citus) の Preview 開始
- Azure Cosmos DB の Spark / Jupyter Notebook / Cosmos DB API for etcd
- Azure Data Factory の Mapping Data Flows / Wrangling Data Flows のアナウンス
- Build 2019 で発表された「Azure SQL Database Edge」についてセッション
- 軽量なフットプリント / ターンキー / ML に対応したデータベースエンジンをエッジに接続または、オフラインで実行することができる
- SQL Server / Azure SQL Database はデータセンター / クラウドで動作するミッションクリティカルなワークロードに対応した、完全な AI / ML 機能を持つ業界をリードするデータベースエンジンとしての役割
- Azure SQL Database Edge は SQL Server のエンジンを持つため、SQL Server を様々な場所 (として、エッジ / データセンター/ クラウド) でネイティブに動作する一貫性のあるデータ / 分析エンジンとして利用できる
- エッジでの新しい分析 / データ移動 / 管理機能を持つ
- 複数のデバイス間にローカルのデータストレージを提供することで、既存の Azure IoT Edge サービスの補完を行う
- Azure SQL Databas Edge の特徴
- ARM64 / x64 で動作する 500MB 未満の軽量なフットプリント
- 時系列処理をビルトインし、SQL と時系列データのストリーミングによる分析が可能
- R / Python / Java / Spark による AI をビルトイン
- ML Services + Big Data Cluster の Spark (MSSQL Spark Connector??) のイメージかも
- AI アイコンが Spark SQL になっているのも少し気になる
- ターンキー管理による、単一の管理プレーンによる展開と管理
- SQL Server をベースとしているため、高いパフォーマンスとセキュリティ
- オンプレ / クラウドの SQL Server 等との連携もできるらしい (エンジンが、SQL Server だからリンクサーバー等が貼れる??)
- 大量のセンサーデータをエッジで前処理して、クラウドに同期 / 集計することでネットワークの帯域を最適化
- Azure ML / Azure Analysis Services を用いたデータ活用
- ThinkSystem S350 Edge Server のような、エッジデバイスがある
- Big Data Cluster についてのセッション
- Big Data Cluser を使用して ML Service を使用したデモ
- ML for Java 経由で Luis と通信するデモ
- DataOps
- 堅牢性と信頼性
- アプリケーションを簡単にスケールアウトできる
- セルフヒーリング機能により、高可用性を実現
- データと同じインフラストラクチャに導入することで、アプリケーションのパフォーマンスを最適化
- 柔軟性
- データアプリケーションと機械学習のワークロードを効率的に導入、実行、および管理
- 組み込みの監視機能により、アプリケーションの管理が容易
- 統合が容易
- RESTFul Web サービスを使用して、アプリケーションを素早く統合できる
- アプリケーションをオンデマンドまたは、スケジュールで実行することにより、信頼性が向上
- Azure SQL Databas Hyperscale についてのセッション
- Hyperscale の Primary / Readable secondary / Page server / Log service / Write IO / Read IO Restore についての基本アーキテクチャについての説明
- 既存の SQL Database Single DB を Hyperscale に変更することもできるが、 Hyperscale → Single Database への移行はできないので注意
Managed Instance
- SQL Server 2008 / 2008 R2 のサポート終了の紹介から入る Managed Instance のセッション
- Managed Instance の今後のロードマップについての説明あり
- Q1
- Australia Central 1, 2 / West India リージョンでの利用
- Arm Template による Geo Restore
- Q2
- Instance Level Collation / Custom Time zone の GA
- インターネットと Azure DNS の依存関係の削除
- データトラフィックのパブリックエンドポイント
- 構成可能な接続ポリシー (Proxy / Redirect)
- ジオリストア
- 削除した DB の PITR
- Azure ポータルからの DB 作成
- 4 vCore モデル / MSDN サブスクリプションでの利用可能
- Brazil South / South Africa リージョンでの利用
- Q1
- SQL Server 環境のクラウドへの移行パターン
- Migration の情報
SQL Data Warehouse
- Azure Data Factory をメインにしたセッション
- 新しく発表された、MAPPING DATAFLOW / WRANGLING DATAFLOW についても触れられている
- ADF の今後のロードマップ
- アクティビティの追加 (Azure Function / Email / バリデーション / Webhook / アーカイブ)
- トリガーの追加 (スケジュールロールアップトリガー / 依存関係トリガー/連鎖トリガー)
- チェックポイントサポートによるコピーの再実行
- 単一の大きなテーブルに対して並列ロード
- SSIS の利用可能リージョンと VM の選択肢の増加
- 2019 : ストリーミングパイプライン / データカタログ統合
- 2020 : マスターデータ管理
- SSIS ランタイムの今後のロードマップについても触れられている
Migration
- Azure のマイグレーションについてのセッション
- Database だけでなくアプリケーションの移行についても触れられている
- Database については、DMS と Migration Guide の紹介
- Azure Database Migration Service についてのシアターセッション
- DMS を使用して SQL Server から、MI にオンライン移行をするデモ
- SQL Server から、Managed Instance に移行する場合「SSIS パッケージ移行」というプレビュー機能が追加された。
Data Analyze
Azure Data Studio
Build 2019 の SQL Server 関連の情報について
■ Get high-performance scaling for your Azure database workloads with Hyperscale から
Hyperscale
Azure SQL Database Hyperscale support for single databases is now available
SQL Database の Hyperscale が GA したようです。
あたらしく、PostgreSQL の Hyperscale が Preview として提供されています。
Quickstart: Create an Azure Database for PostgreSQL – Hyperscale (Citus) (preview) in the Azure portal
Citus が使用されているようですね。
SQL Database Serverless
他には、「Azure SQL Database Serverless」も発表されました。
ウォームアップによる遅延が許容されるのであれば、秒単位課金でコストを抑えることができる新しいモデルとなるようです。
オートスケーリング / オートレジュームといった、今までとは異なる概念がいくつか入っているようですね。
性能面は Serverless compute tier から確認できます。
■ Analytics in Azure remains unmatched with new innovations から
ADF
ADF に Wrangling Data Flows という、新機能が実装されるようです。
SQL Data Warehouse
SQL DW に半構造化データのサポートが行われるようで、JSON のようなデータ形式を SQL DW から直接アクセスできるようになるようです。
他にも、結果セットのキャッシュによる、同一クエリの実行結果を後続のユーザーがすぐに利用できる仕組みと、マテリアライズド・ビューによるパフォーマンス向上も実行できるようですね。
■ Azure updates から
- Azure SQL Database Hyperscale support for single databases is now available
- SQL Database の Hyperscale が GA しましたというお話
- Oracle to Azure Database for PostgreSQL online migration is in preview
- Azure DMS で Oracle から Azure Database for MySQL のオンラインマイグレーションをサポートしましたというお話
- Tutorial: Migrate Oracle to Azure Database for PostgreSQL online using DMS (Preview)
- Azure SQL Database managed instance SKU recommendation for Data Migration Assistant is now available
- DMA で SQL DB だけでなく、Managed Instance の SKU のアドバイスを出せるようになりましたというお話
- Identify the right Azure SQL Database SKU for your on-premises database
- Coming soon: Azure SQL Database serverless preview
- SQL DB Serverless がプレビューで使えるようになりましたというお話
- Azure SQL Database serverless compute tier is now in preview
- SQL Database Serverless がプレビューで使用できるようになりましたというお話
- Hyperscale (Citus) is now in preview on Azure Database for PostgreSQL
- Azure Database for PostgreSQL の Hyperscale がプレビューで使用できるようになりましたというお話
SQL Server 2019 の PolyBase とリンクサーバーの違いについて
SQL Server 2019 では PolyBase の機能が進化し「データ仮想化」が一つのキーワードとなっています。
PolyBase は、SQL Server 2016 から実装された機能だったはずですが、SQL Server 2016 / 2017 では、Hadoop と Azure BLOB Storage の接続のみをサポートしており、オブジェクトストレージ上のデータに対してクエリを実行するための機能としての利用でした。
SQL Server 2019 になり、オブジェクトストレージの他に「ODBC 汎用コネクタ」がサポートされるようになり、アクセスできるデータソースが大幅に増加しました。
標準で、SQL Server / Oracle / Teradata / MongoDB へのアクセスもできるようになっているのですが、これらについては、「標準で導入されている ODBC ドライバー」となっており、実装については ODBC と同様です。
SQL Server 2019 のセミナーを毎月実施させていただいている中で「PolyBase とリンクサーバーの違い」について質問されることがあります。
これらの違いについては、次のドキュメントで解説が行われています。
Build 2019 開始前に GW 中の SQL Server 関連の話題をキャッチアップしてみる
GW 中は de:code 2019 のセッション準備などを進めており、あまり情報のキャッチアップをできていなかったのですが、最終日ぐらいは、SQL Server / SQL Database 関連の最新情報を眺めてみようかと。
Read the rest of this entry »