SE の雑記

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

Ignite 2017 の SQL Database / SQL Data Warehouse の概要セッションのまとめ

one comment

SQL Database と SQL Data Warehouse の新機能等の概要セッションの内容をざっくりと

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
      • 予測可能なパフォーマンス

clip_image001

  • 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 の拡張機能?
    • 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
    • 競争力のある TCO
      • Standard の新しいパフォーマンスレベル (S4~S12)
      • コンピュートとストレージの分離
      • Azure Hybrid Benefit for SQL Server

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/時間

clip_image002

  • Azure ハイブリッドベネフィットを使用することで、オンプレミスのライセンスを使用することができる
  • スケジュール

2017 Q4

Public Preview

2018 H1

GA

clip_image003


BRK2213 : Database Migration roadmap with Microsoft

  • 移行のライフサイクル
  • アップグレードと変換ツール
    • SQL Server からのアップグレード
      • Database Migration Assistant
      • Database Experimentation Assistant
    • 他のデータベースからの変換
      • SQL Server Migration Assistant
  • Azure Database Migration Services (DMS)
    • 包括的なデータベースの移行サービス
    • フルマネージドなデータの移行を実施するためのサービス
    • オンプレミス / プライベートクラウド / パグリッククライドからの移行を可能とする
    • 同一 / 異種 の移行対象から移行を実施することが可能
    • 最小のダウンタイムによる移行
    • 現在のフォーカス
      • 信頼性とパフォーマンス
      • ソースとターゲットにの反復実行
      • 移行に対しての継続的な投資
  • Database Migration Assistant (DMA)
    • SQL Server から SQL Server への移行
      • 問題の特定と評価と問題の修正を繰り返しながら、スキーマとデータの移行を実施する
  • Database Experimentation Assistant (DEA)
    • SQL Server に対して、A/B テストを実施することが可能
      • オンプレミスの SQL Server インスタンスでワークロードをキャプチャ
      • DEA でワークロードを再生し、結果の分析と比較レポートの解析を行う
  • SQL Server Migration Assistant
    • SQL Server 以外からの移行
      • SQL Server /Azure SQL Database / Azure SQL Data Warehouse へ移行することが可能
  • 3rd パーティー製品の利用
    • Attunity を利用したセロに近いダウンタイムによるデータの移行
  • ロードマップ
    • DMS のロードマップ

2017/10

スケールしてプロジェクトを管理できる性能

2017/11

パブリックプレビュー

2017/12

自動化のための API  サポートの更新

CY 18 Q1

 ダウンタイムの最小化

Oracle スキーマ変換のカバレッジの向上

CY 18 Q2

スケジューリングのサポート

通知と警告

clip_image004

  • ツールのロードマップ

2017/10

DMA

Version 3.3

Windows / Linux SQL Server 2017 のサポート

 

SSMA

Version 7.6
SAP ASE
関数の変換

2017/11

SSMA

Version 8.0
SQL Server 2017 on Linux
のサポート

2017/12

DMA

Version 3.4
SQL Database Managed Instance
のサポート

clip_image005

  • 直近で予定されている Azure をターゲットにしたサポート状況

clip_image006

  • オンプレミス環境のサポート状況

clip_image007


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 を使用してパイプラインを作成
      • サーバーレス (インフラを管理する必要がない)
    • すべての保持しているデータへのアクセス
      • 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 と親和性が高い
  • サーバーレス / 利用課金

SSIS ランタイム

  • 既存の 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 の最新バージョンの利用

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 の特性
    • 単一の Polybase のロードは、圧縮されていないファイルで最適なパフォーマンスを発揮する
    • サービスレベルオブジェクトを上げることで、ロードパフォーマンスを向上
    • データロードプロセスは自動的に並列化され、入力データを複数のファイルに手動で分割し、同時実行を行う必要はない
      • 各リーダーはデータファイルから 512MB のブロックでスライスを行っている
    • 最大スループットは DWU で利用可能なリーダーの数に依存する
    • 複数のリーダー (コンピュートノード) は圧縮されたテキストファイル (gzip) に対して動作しない
      • バッファ内のファイルの解凍はシングルスレッドで動作し、圧縮ファイルごとに一つのリーダーが使用される
      • 複数のリーダーで処理を実施する場合には複数の圧縮ファイルを生成する
    • ファイル数はサービスレベル目標のリーダーの合計数以上でなければならない
  • スキーマのデザイン
    • テーブルの分散オプション

ハッシュ

ハッシュは単一列にのみ設定可能

データの分散 / NULL / -1 がどのようになっているかを意識しておく

大規模なファクトテーブルについてはハッシュがベストな選択

  • ハッシュ項目が 60 を超える種類を持っている
  • 日付列での分散は避ける
  • NULL と既定値が設定される頻度が高い列でのハッシュ分散は避ける
  • ハッシュ列は更新できない
  • 互換性のある結合ではハッシュテーブルで同一のデータ型を使用する

ラウンドロビン (デフォルト)

ノード間で均等にデータが分散される

クエリ実行時にデータの移動が発生する可能性が高い

意味のあるハッシュ列がない場合、最後の手段としてラウンドロビンを使用する

レプリケート (Public Preview)

より多くのスペースを消費するが、データの移動を削減できる

ハッシュテーブルのハッシュキー以外との結合に適している

 

  • ディメンションテーブル

小さなディメンションテーブル

(60M 行未満)

クラスター化インデックス

ラウンドロビンまたは、レプリケートテーブル

大きなディメンションテーブル

ファクトテーブルと同一のデザイン

クラスター化列ストアインデックス

結合で使用するキーを分散列として設定

 

  • データの移動
    • データは結合に使用するデータは同一のディストリビューション上に配置することを念頭に置く
      • データ移動を最小限にするための設計を行う
      • データ移動が避けられない場合は、データ移動による性能への影響を軽減させる
  • インデックスの最適化

列ストアインデックス
(SQL DW のデフォルト)

大規模なテーブルに最適

クエリ内の列に対してのスキャンに制限する

最適な圧縮

ヒープよりもデータロードが遅い

パーティションを圧縮するために十分な大きさ (100 万行以上) に保つ

ヒープ

一時的なテーブル / ステージングテーブルに適している

最速のロードパフォーマンス

クラスター化インデックス

60 M行より小さいテーブルに最適

ソート操作による負荷の低下

非クラスター化インデックス

使用頻度は抑える

単一業の参照に最適化

データロードが遅くなる

 

  • 統計情報
    • 結合 / グルーピング / WHERE で使用されるすべての列に統計情報を作成する
      • 必要に応じて結合とグルーピングで使用sるう複数の列に統計情報を作成する
    • 増分データをロードした後に統計情報を更新
    • デフォルトのサンプリングで作成された統計の使用は、通常は大きなテーブルを除いて問題ない
    • 統計情報の自動作成 / 自動更新は現状はプレビュー機能
  • パーティショニング
    • アーカイブ用の日付列によるパーティショニング
      • パーティションの削除によるパフォーマンスの向上
    • パーティションの分割はワークロードに依存
      • 再ロードや再処理
      • ディストリビューション / パーティションあたりで少なくとも 100 万行になるようにする
    • パーティションのスイッチによるロードパフォーマンスの最適化
    • 異なるテーブルにホット / コールドデータが存在している場合、異なる粒度のパーティションを検討
      • ホットデータ : 日別 / コールドデータ : 月別
    • オーバーヘッドがあるため、パーティションの数は妥当な範囲に保つ
    • 必要に応じて、パーティション単位のインデックスの再作成
  • クエリ

ShuffleMoveOperation

互換性のある結合/集約のためにデータを再配布

PartitionMoveOperation

データをコンピュートノードからコントロールノードに移動

BroadcastMoveOperation

結合の互換性のためにテーブルを複製

 

  • クエリパフォーマンスの推奨
    • データが不均一になっていないか (DBCC PDW_SHOWSPACEUSED)
    • 統計情報
    • CETAS / CTAS による大きな結果の操作
    • 必要に応じてテーブルを非正規化
    • DSQL クエリプラン

clip_image001[1]

Written by masayuki.ozawa

10月 8th, 2017 at 12:40 am

One Response to 'Ignite 2017 の SQL Database / SQL Data Warehouse の概要セッションのまとめ'

Subscribe to comments with RSS or TrackBack to 'Ignite 2017 の SQL Database / SQL Data Warehouse の概要セッションのまとめ'.

  1. […] Ignite 2017 の SQL Database / SQL Data Warehouse の概要セッションのまとめ […]

Leave a Reply

*