Contents
- 1
- 2
- 3 BRK2230 : What’s new with Azure SQL Database: Focus on your business, not on the database
- 4 BRK2217 : Modernize your on-premises applications with SQL Database Managed Instances
- 5
- 6 BRK2213 : Database Migration roadmap with Microsoft
- 7
- 8 BRK2254 : New capabilities for data integration in the cloud
- 9 BRK2142 : Keep your data in sync between SQL Server and Azure SQL Database
- 10 THR2164 : Performing a seamless migration in Azure SQL Database
- 11 BRK3377 : Azure SQL Data Warehouse lessons learned and practical implementation tips
BRK2230 : What’s new with Azure SQL Database: Focus on your business, not on the database |
動画 |
スライド |
BRK2217 : Modernize your on-premises applications with SQL Database Managed Instances |
動画 |
スライド |
BRK2213 : Database Migration roadmap with Microsoft |
動画 |
スライド |
BRK2254 : New capabilities for data integration in the cloud |
動画 |
スライド |
BRK2142 : Keep your data in sync between SQL Server and Azure SQL Database |
動画 |
スライド |
THR2164 : Performing a seamless migration in Azure SQL Database |
動画 |
スライド |
BRK3377 : Azure SQL Data Warehouse lessons learned and practical implementation tips |
BRK2230 : What’s new with Azure SQL Database: Focus on your business, not on the database
- SQL Database で 2017 年に追加された新機能
- Intelligent DBaaS
- 予測可能なパフォーマンス
- 自動チューニング (GA)
- PLAN REGRESSION CORRECTION? が追加されている
- 自動チューニング (GA)
- 予測可能なパフォーマンス
- Intelligent DBaaS
- 自動クエリプラン収集
- パフォーマンスインサイト in OMS (Public Preview)
- Azure SQL Analitics Solution を使用
- SQL Database の診断ログの情報を使用している
- Adaptive Query Processing (GA)
- SQL グラフ (GA)
- Advanced Analytics
- Privacy and Trust
- Activity Monitoring
- 脅威検知
- OMSC による中央化されたダッシュボード
- アクセスコントロール
- AAD / 多要素認証
- データ保護
- BYOK による暗号化設定
- サービスエンドポイント (Public Preview)
- VNET からの限定的なアクセスを設定可能に
- SQL Database と SQL Data Warehouse で利用可能
- Always Encrypted の機能拡張
- 暗号化されたデータに対してのパターンマッチ / 範囲検索 / ソート 等
- デモでは実施できていたが、手元の環境でうまく再現できず…。
- 暗号化の置き換えとキー管理
- 暗号化されたデータに対してのパターンマッチ / 範囲検索 / ソート 等
- 発見と評価
- VULNERABILITY (脆弱性) アセスメント
- SQL Server 2017 と Azure SQL Database で利用可能
- SQL Database の場合は、BLOB ストレージに JSON で出力されたものを可視化
- SQL Server 2017 の場合は、SSMS の拡張機能?
- SQL Server 2017 と Azure SQL Database で利用可能
- VULNERABILITY (脆弱性) アセスメント
- Seamless and Compatible
- 組み込みの HA
- Active GEO レプリカ
- マルチ AZ
- バックアップ/リストア
- 10 年のデータ保持
- 分散アプリケーション
- Azure へのトランザクションレプリケーション
- SQL Azrure Data Sync v2 (Public Preview)
- マネージドな SSIS サービス
- Azure SQL Database Managed Instance
- Database Migration Service
- 組み込みの HA
- 競争力のある TCO
- Standard の新しいパフォーマンスレベル (S4~S12)
- コンピュートとストレージの分離
- Azure Hybrid Benefit for SQL Server
- Activity Monitoring
BRK2217 : Modernize your on-premises applications with SQL Database Managed Instances
- Managed Instance についての単体のセッションはこれがはじめてな気がしますね。
- 今後、PaaS の SQL Database としては、Single DB / Elastic Pool / Managed Instance の 3 種類を選択可能に
- SQL Server に 100% に近い互換性を持っている PaaS 環境の SQL Server
- ネイティブバックアップ/リストア
- デモでは、BLOB に格納したバックアップファイルを Managed Instance にリストア
- ログ配布 (Data Migration Service)
- DB を跨いだクエリとトランザクション
- リンクサーバー
- SQL エージェント
- DB メール
- SSIS / SSAS / SSRS については、インストールされていないため、Azure Data Factory / Azure Analysis Services / Power BI といったサービスを使用するか VM に SQL Server をインストールして使用
- ネイティブバックアップ/リストア
- ネイティブに VNET に実装されており、プライベート IP アドレスを使用することができる
- 顧客の VNET に分離された環境を構築可能
- Database Migration Services
- フルマネージドなマイグレーションサービス
- 最小のダウンタイムで移行
- 同種 / 異種データベースの移行
- Public Preview では、SQL Server 2005 移行から SQL DB / Managed Instance への移行が可能
- フルマネージドなマイグレーションサービス
- Managed Instance のサービス層
- コンピュートリソースとストレージを選択可能
- 一般的な用途とクリティカルなビジネス向けのサービス層が提供される (今後選択肢が増える予定)
- コンピュート
- 8 / 16 /24 vCore
- 課金は、vCore / 時間
- ストレージ
- 一般的な用途では、リモートストレージを35TB まで利用可能
- クリティカルなビジネス用途では、ローカル SSD を 4TB まで利用可能
- 課金は GB/時間
- 百万 IO 単位の IO 操作で課金
- バックアップ
- 7 日の保有期間については無料
- 課金は GB/時間
- コンピュート
- 一般的な用途とクリティカルなビジネス向けのサービス層が提供される (今後選択肢が増える予定)
- コンピュートリソースとストレージを選択可能
- Azure ハイブリッドベネフィットを使用することで、オンプレミスのライセンスを使用することができる
- スケジュール
2017 Q4 |
Public Preview |
2018 H1 |
GA |
BRK2213 : Database Migration roadmap with Microsoft
- 移行のライフサイクル
- 移行対象の検出
- スライドには記載されていなかったが、Microsoft Assessment and Planning Toolkit による移行対象の検出が検討できる
- アセスメント
- Database Migration Assistant (DMA)
- SQL Server Migration Assistant (SSMA)
- 変換
- Database Migration Assistant (DMA)
- SQL Server Migration Assistant (SSMA)
- 移行
- 以下のサイクルを繰り返しながら実施する
- アプリケーションの修正
- 機能 / パフォーマンステスト
- 解析
- データ / スキーマ / オブジェクトんお移行
- 利用可能なツール
- Azure Database Migration Services (DMS)
- SQL Server Migration Assistant (SSMA)
- Database Migration Assistant (DMA)
- Database Experimentation Assistant (DEA)
- 以下のサイクルを繰り返しながら実施する
- データ同期
- Azure Database Migration Services (DMS)
- サードパーティーから提供されているツールによるゼロに近いダウンタイムによるデータ移行
- カットオーバー
- 移行対象の検出
- アップグレードと変換ツール
- SQL Server からのアップグレード
- Database Migration Assistant
- Database Experimentation Assistant
- 他のデータベースからの変換
- SQL Server Migration Assistant
- SQL Server からのアップグレード
- Azure Database Migration Services (DMS)
- 包括的なデータベースの移行サービス
- フルマネージドなデータの移行を実施するためのサービス
- オンプレミス / プライベートクラウド / パグリッククライドからの移行を可能とする
- 同一 / 異種 の移行対象から移行を実施することが可能
- 最小のダウンタイムによる移行
- 現在のフォーカス
- 信頼性とパフォーマンス
- ソースとターゲットにの反復実行
- 移行に対しての継続的な投資
- Database Migration Assistant (DMA)
- SQL Server から SQL Server への移行
- 問題の特定と評価と問題の修正を繰り返しながら、スキーマとデータの移行を実施する
- SQL Server から SQL Server への移行
- Database Experimentation Assistant (DEA)
- SQL Server に対して、A/B テストを実施することが可能
- オンプレミスの SQL Server インスタンスでワークロードをキャプチャ
- DEA でワークロードを再生し、結果の分析と比較レポートの解析を行う
- SQL Server に対して、A/B テストを実施することが可能
- SQL Server Migration Assistant
- SQL Server 以外からの移行
- SQL Server /Azure SQL Database / Azure SQL Data Warehouse へ移行することが可能
- SQL Server 以外からの移行
- 3rd パーティー製品の利用
- Attunity を利用したセロに近いダウンタイムによるデータの移行
- ロードマップ
- DMS のロードマップ
2017/10 |
スケールしてプロジェクトを管理できる性能 |
2017/11 |
パブリックプレビュー |
2017/12 |
自動化のための API ?サポートの更新 |
CY 18 Q1 |
?ダウンタイムの最小化 Oracle スキーマ変換のカバレッジの向上 |
CY 18 Q2 |
スケジューリングのサポート 通知と警告 |
- ツールのロードマップ
2017/10 |
DMA |
Version 3.3 Windows / Linux の SQL Server 2017 のサポート |
? |
SSMA |
Version 7.6 |
2017/11 |
SSMA |
Version 8.0 |
2017/12 |
DMA |
Version 3.4 |
- 直近で予定されている Azure をターゲットにしたサポート状況
- オンプレミス環境のサポート状況
BRK2254 : New capabilities for data integration in the cloud
- Azure Data Factory (ADF) v2
- https://azure.microsoft.com/ja-jp/pricing/details/data-factory/v2/
- Public Preview
- 新しいパイプラインモデル
- リッチなパイプラインによるオーケストレーション
- トリガー : オンデマンド / スケジュール / イベント
- Data Movement as a Service
- クラウド / ハイブリッド
- 30 を超えるのコネクターの提供
- SSIS パッケージの実行
- クラウド環境で管理
- SSMS / SSDT といった使い慣れたツールを利用可能
- 権限とモニター
- プログラマビリティ (Pyhton / .NET / Powershell 等)
- ビジュアルツール (近日公開)
- Data Factory
- データを統合するためのアカウント
- オーケストレーション / サービスメタデータの場所
- Integration Runtime (IR)
- ADF の実行エンジン
- 三つのコア機能
- データ移動
- パイプラインアクティビティの実行
- SSIS パッケージの実行
- データ移動
- スケーラビリティ
- ジョブ単位の弾力性
- 最大 1GB/sec
- シンプル
- 視覚的なコード作成 (Python / .NET / その他)
- デモでは、Python を使用してパイプラインを作成
- サーバーレス (インフラを管理する必要がない)
- 視覚的なコード作成 (Python / .NET / その他)
- すべての保持しているデータへのアクセス
- 30 を超えるコネクターが提供され、今後も増える
- Data Movement as a service (世界の 17 箇所で提供)
- ハイブリッド移動のためのセルフホスティング可能な統合ランタイム
- スケーラビリティ
- Integration Runtime for SSIS
- マネージドクラウド環境
- ノード数とサイズを選択可能
- サイズ変更が可能
- SQL Standard Edition (現状の Preview 提供)/ Enterprise は近日公開
- 互換性
- Windows / Linux / Azure で同一の SSIS ランタイムを使用
- SSIS + SQL Server
- SQL Managed Instance + SSIS (ADFv2) で SSIS + SQL Server に近い組み合わせをマネージドサービスとして実行可能
- VNET 経由でオンプレミスのデータにアクセス
- 時間課金で利用可能 (既存ライセンスの持ち込みは近日公開予定)
- マネージドクラウド環境
- ロードマップ
2017 |
SDK (Python / .NET / PowerShell)
SSIS ランタイム
データ移動
ビジュアルエクスペリエンス
|
2018 |
ビジュアルエクスペリエンス
データ移動
さらなる SSIS との統合 データの発見 |
BRK2142 : Keep your data in sync between SQL Server and Azure SQL Database
- Data Sync
- 複数の Azure SQL Database と SQL Server インスタンス間で、一方向または双方向にデータを同期
- Hub データベースを中心とし、メンバーデータベースと同期を行う
- オンプレミスの環境については、同期エージェントをインストールした環境を用意する
- 主キーが必要となる
- INSERT / UPDATE / DELETE のトリガーが作成され、新規作成されたトラッキングテーブルに対してデータを格納する
- Data Sync とアクティブ Geo レプリケーション
? |
Data Sync |
アクティブ Geo レプリケーション |
トランザクションレプリケーション |
長所 |
アクティブ – アクティブサポート 同期するテーブルと列を選択可能 オンプレミスと Azure SQL Database の同期 (双方向可能) |
秒レベルの遅延時間 トランザクションの一貫性 フェールオーバーグループを使用した自動フェールオーバー DR と読み取り専用スケールの設計 |
低い遅延時間 トランザクションの一貫性 オンプレミスと Azure DB のレプリケーションと移行の設計 |
短所 |
5 分以上の遅延時間 非トランザクション一貫性 パフォーマンスに与える影響が大きい |
非書き込みセカンダリ データベース単位の同期 セカンダリは同一のエディション |
オンプレミスまたはAzure VM と Azure SQL Database のみ対応 高いメンテナンスコスト ? |
THR2164 : Performing a seamless migration in Azure SQL Database
- Data Migration Assistant (DMA)
- 近代的なデータベースアップグレードツール
- SQL Server Upgrade Advisor (SSUA) の置き換え
- スキーマとデータのまマイグレーション
- 互換性の問題 / パフォーマンスの推奨 / 信頼性の改善の検出
- 移行方法
- SQL Server トランザクションレプリケーション
- SQL Server 2012 SP2 CU8 以降であれば、パブリッシャーとディストリビューターとして使用可能
- プライマリキーが必要
- スナップショットと一方向のトランザクションレプリケーションをサポート
- SQL Server からのプッシュサブスクリプション御身をサポート
- SSMS / T-SQL で設定
- Azure SQL DB へのシームレスな移行
- 高いサービスレベルとパフォーマンス層の利用
- 手動によるサブスクライバーのの初期化
- bacpac / SSIS / BCP
- 複数のサブスクライバーの作成を検討
- 小さい/大きいテーブル
- データ圧縮の検討
- 大きいテーブル
- DMA / SSMS の最新バージョンの利用
- SQL Server トランザクションレプリケーション
BRK3377 : Azure SQL Data Warehouse lessons learned and practical implementation tips
- SQL DW で対象となるワークロード
- SQL DW は OLTP ではなく、DW 用に設計されており、従来の DW のワークロード特性が適用される
- シングルトン DML が頻繁に実行される操作には適していない
- UPDATE / INSERT / DELETE をほとんどの操作を占めている
- 増分データは ETL / ETL プロセスを介してバッチ処理でロードされ、リアルタイムなデータ取得を目的としていない
- Tier 2 SLA (99.9%) を想定しており、低レイテンシーな高可用性は組み込まれていない
- 大規模なデータセットに対して複雑なクエリを実行するワークロード向け
- データの準備とメタデータの移行
- 移行対象となるオブジェクトの選択
- エクスポートされたデータを受信するための、パフォーマンスの高いローカルストレージの作成
- クラウドへの接続の確立
- SQL DW が近い地域ににある
- Polybase を利用するために、ストレージコンテナ内にテーブルごとに一つのフォルダ
- データ移行の推奨事項
- マイグレーションツールの利用
- 現状の SQL の使用と回避方法の理解
- シングルトンな DML 操作の回避 (INSERT / UPDATE / DELETE)
- 可能な限りバッチ操作の DML を利用
- やむを得ない場合は、トランザクションでラップ (BEGIN TRAN / COMMIT TRAN) し、ショートトランザクションを回避する
- ステージングデータには、ヒープテーブルまたは、一時テーブルを利用する
- 大規模な完全ログ操作の回避
- CTAS を使用した最小限のログ操作
- DELETE の代わりに LOJ を使用
- 並列処理とパーティションのスイッチ
- サービスの中断に対処するための再試行ロジックの設計
- データ形式の変換
- 日付の形式/フィールドの区切り/エスケープ/フィールドの順序/エンコード
- 圧縮
- Gzip / ORC / Parquet の利用
- 7 Zip ユーティリティ
- エクスポート
- 高速エクスポートのために BCP を利用
- 大きなテーブルを複数のファイル化 / テーブルごとに一つのフォルダ
- コピー
- AZCopy
- Data Movement ライブラリ
- データローディングの推奨事項
- Polybase と SSIS (SQL Server 2017 の Azure Feature Pack) を利用した高速な方法
- AzCopy または、PowerShell を介して BLOB にアップロードする
- 一括ロード : CTAS を使用
- 増分 : INSERT SELECT
- 高いリソースクラスを使用する (同時実行の効率化)
- 負荷時の DWU の増強 / 完了時に DWU を減らす
- Polybase の UTF-16 のファイル形式のサポ0と / ソースとターゲットとして Azure Data Lake Store をサポート
- 既知の問題
- 拡張 ASCII の非サポート
- カスタマイズされた日付形式 (例 : 2000-1-6 )の非サポート
- リジェクトされた行の対象ファイル/リジェクトの理由
- データローディングオプション
- 次の順序で検討する (パフォーマンスが高い)
- Polybase / SSIS (2017 の Feature Pack) / Azure Data Factory / BCP / SQL Bulk Copy API / Attunity Cloudbean / ASA / Storm
- 次の順序で検討する (パフォーマンスが高い)
- Polybase と SSIS (SQL Server 2017 の Azure Feature Pack) を利用した高速な方法
- Polybase の特性
- 単一の Polybase のロードは、圧縮されていないファイルで最適なパフォーマンスを発揮する
- サービスレベルオブジェクトを上げることで、ロードパフォーマンスを向上
- データロードプロセスは自動的に並列化され、入力データを複数のファイルに手動で分割し、同時実行を行う必要はない
- 各リーダーはデータファイルから 512MB のブロックでスライスを行っている
- 最大スループットは DWU で利用可能なリーダーの数に依存する
- 複数のリーダー (コンピュートノード) は圧縮されたテキストファイル (gzip) に対して動作しない
- バッファ内のファイルの解凍はシングルスレッドで動作し、圧縮ファイルごとに一つのリーダーが使用される
- 複数のリーダーで処理を実施する場合には複数の圧縮ファイルを生成する
- ファイル数はサービスレベル目標のリーダーの合計数以上でなければならない
- スキーマのデザイン
- テーブルの分散オプション
ハッシュ |
ハッシュは単一列にのみ設定可能 データの分散 / NULL / -1 がどのようになっているかを意識しておく 大規模なファクトテーブルについてはハッシュがベストな選択
|
ラウンドロビン (デフォルト) |
ノード間で均等にデータが分散される クエリ実行時にデータの移動が発生する可能性が高い 意味のあるハッシュ列がない場合、最後の手段としてラウンドロビンを使用する |
レプリケート (Public Preview) |
より多くのスペースを消費するが、データの移動を削減できる ハッシュテーブルのハッシュキー以外との結合に適している |
- ディメンションテーブル
小さなディメンションテーブル (60M 行未満) |
クラスター化インデックス ラウンドロビンまたは、レプリケートテーブル |
大きなディメンションテーブル |
ファクトテーブルと同一のデザイン クラスター化列ストアインデックス 結合で使用するキーを分散列として設定 |
- データの移動
- データは結合に使用するデータは同一のディストリビューション上に配置することを念頭に置く
- データ移動を最小限にするための設計を行う
- データ移動が避けられない場合は、データ移動による性能への影響を軽減させる
- データは結合に使用するデータは同一のディストリビューション上に配置することを念頭に置く
- インデックスの最適化
列ストアインデックス |
大規模なテーブルに最適 クエリ内の列に対してのスキャンに制限する 最適な圧縮 ヒープよりもデータロードが遅い パーティションを圧縮するために十分な大きさ (100 万行以上) に保つ |
ヒープ |
一時的なテーブル / ステージングテーブルに適している 最速のロードパフォーマンス |
クラスター化インデックス |
60 M行より小さいテーブルに最適 ソート操作による負荷の低下 |
非クラスター化インデックス |
使用頻度は抑える 単一業の参照に最適化 データロードが遅くなる |
- 統計情報
- 結合 / グルーピング / WHERE で使用されるすべての列に統計情報を作成する
- 必要に応じて結合とグルーピングで使用sるう複数の列に統計情報を作成する
- 増分データをロードした後に統計情報を更新
- デフォルトのサンプリングで作成された統計の使用は、通常は大きなテーブルを除いて問題ない
- 統計情報の自動作成 / 自動更新は現状はプレビュー機能
- 結合 / グルーピング / WHERE で使用されるすべての列に統計情報を作成する
- パーティショニング
- アーカイブ用の日付列によるパーティショニング
- パーティションの削除によるパフォーマンスの向上
- パーティションの分割はワークロードに依存
- 再ロードや再処理
- ディストリビューション / パーティションあたりで少なくとも 100 万行になるようにする
- パーティションのスイッチによるロードパフォーマンスの最適化
- 異なるテーブルにホット / コールドデータが存在している場合、異なる粒度のパーティションを検討
- ホットデータ : 日別 / コールドデータ : 月別
- オーバーヘッドがあるため、パーティションの数は妥当な範囲に保つ
- 必要に応じて、パーティション単位のインデックスの再作成
- アーカイブ用の日付列によるパーティショニング
- クエリ
ShuffleMoveOperation |
互換性のある結合/集約のためにデータを再配布 |
PartitionMoveOperation |
データをコンピュートノードからコントロールノードに移動 |
BroadcastMoveOperation |
結合の互換性のためにテーブルを複製 |
- クエリパフォーマンスの推奨
- データが不均一になっていないか (DBCC PDW_SHOWSPACEUSED)
- 統計情報
- CETAS / CTAS による大きな結果の操作
- 必要に応じてテーブルを非正規化
- DSQL クエリプラン
[…] Ignite 2017 の SQL Database / SQL Data Warehouse の概要セッションのまとめ […]
Azure Update (2017.10.12) | ブチザッキ
12 10月 17 at 10:32