SE の雑記

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

SQL Server 2019 CTP 2.0 がリリースされました

leave a comment

Ignite 2018 に合わせて、最新の SQL Server である、SQL Server 2019 CTP 2.0 がリリースされました。

SQL Server 2017 がリリースされたのが、昨年の 10 月ですので、約 1 年で新しいバージョンの情報が出てきましたね。
SQL Server 2019 の新しい機能については、次の情報で公開されています。

これに合わせて、ツールも新しくなっています。

SSMS 18.0 については、SQL Server 2019 に対応した SSMS であり、Visual Studio 2017 ベースになり、様々な機能追加が行われています。

Azure Data Studio は、プレビューで公開されていた SQL Operations Studio の新しい名称となり、今回のタイミングで GA リリースとなりました。
SQL Server 2019 で追加された Big data Cluster への対応や、Jupyter ノートブックの対応など、今まではついていなかった機能なども含まれるようになっています。

動画

PDF

SQL Server 2019 の MS のブログ

 

Big Data Clusters

詳細については What is SQL Server 2019 Big Data Clusters? で解説されていますが、SQL Server 2019 の大きな追加機能となります。
現状は、Early Adoption Program を介しての Public Preview となってり、CTP 2.0 とは別のラインでのプレビューとなりますので、利用する際の入手方法については注意してください。
SQL Server 2019 での Big Data の取り扱いとしては次のようなキーワードがあります。

  • データ仮想化
  • Data Lake
  • スケールアウトデータマート

データ仮想化
データ仮想化については、新しくなった Polybase を使用することで実現することができます。
Polybase は、SQL Server 2016 で追加された機能ですが、2016 / 2017 では、Azure BLOB ストレージと Hadoop に対してのみ実行することが可能という、データソースの制約がありました。
これが、SQL Server 2019 では大きく変わります。
SQL Server 2019 CTP 2.0 では、Polybase 経由で、SQL Server / Oracle / Teradata / MongoDB を外部データソースとして使用することができるようになります。

新しくなった Polybase の考え方としては、次のようなものがあります。

  • SQL Server を経由して、T-SQL をインタフェースとして異なるデータソースに透過的にアクセス
  • データソースから、データの移動を行うことなく、リアルタイムにセキュアにアクセスをする

Polybase により、異なるデータソースを外部テーブルとして定義することができるようになり、T-SQL で異なるデータソースを JOIN して使用することができるようになります。
通常のリンクサーバーとは異なり、プッシュダウンやスケールアウトの仕組みも用意されているため、Polybase により、より高いパフォーマンスで外部のデータソースにアクセスすることができ、それらを SQL 経由でアクセスすることができるようになるため、多くのツールで利用することができます。
また、Polybase を使用することで、データソースからデータを SQL Server に移動することなく、データにアクセスが可能となります。
データの移動が発生すると、リアルタイムなデータアクセスが難しく、最新のデータへのアクセスに遅れが発生します。
またデータの移動により、SQL Server 側にもストレージが必要となったり、取り込んだデータのセキュリティについても検討する必要があります。
データ移動を省略することでデータをよりリアルタイムにセキュアに利用することができるようになります。
現時点では、ドキュメント上は、Polybase は Windows のみの機能となっています。
Scale out Data Mart では、Compute Plane の SQL Server に含まれている、PolyBase を使用するということになっており、この層は、SQL Server on Linux で構成されるとのことなので、この辺のサポートは、今後変わってくる可能性もあるのではないでしょうか。
Data Lake
Data Lake については、SQL Server 単体ではなく、Hadoop のエコシステムとの組み合わせての構成となります。
SQL Server 2019 では、HDFS + SQL Server の構成を組み、そのデータを Spark から取り扱うということができるようになります。
さらに、この環境はスケールアウトが可能となっており、Kubernetes を使用して構築されています。
大量のデータの格納には、HDFS を使用した分散的なデータ格納がスケールアウトが柔軟に実施でき、パフォーマンスがリニアに延びる可能性があります。
この特性を生かし、Hadoop のエコシステム上に SQL Server をインストールし、SQL Server のインタフェースを介して、HDFS 上のデータにアクセスし、スケールアウトが可能な構成というものを構築することができるようになります。
Spark もインストールされている環境となりますので、Spark ジョブとして、PySprk や、SparkML と組み合わせて利用するというシナリオも考えられるのではないでしょうか。
Data Lake 部分が Big Data Cluster のメインになるかと思いますが、これにより、Big Data の分析基盤を SQL Server をインタフェースとした環境が作れるということになります。
スケールアウトデータマート
Data Lake の仕組みは、スケールアウトが可能な環境として構築が行われます。
Big Data Cluster は、計算層とデータ層が分かれています。
データ層については、HDFS を使用したストレージプールとSQL Server ベースのデータを格納するための SQL Data Pool にさらに分割されます。
SQL Data Pool は、SQL クエリや Spark ジョブからデータを取り込むことができ、この層のデータについても分散させて格納することができます。
各層がスケールアウトを意識した構成となっていますので、必要な部分について台数を増やすことができ、HDFS から分析用に取り出したデータについても SQL Data Pool で分散して格納できるというような仕組みが構築できます。
 

データベースエンジンの機能拡張

これは 紹介されているもの になりますが、いろいろと追加されています。

  • Database compatibility level
    • SQL Database で先行実装されていた「互換性レベル 150」が追加されました。
      現在公開されている変更の主なものとしては Intelligent Query Processing 周りですかね。
    • ALTER DATABASE (Transact-SQL) Compatibility Level
  • UTF-8 support
    • SQL Server の Unicode 文字列は UTF-16 が使用されていたのですが、新たに UTF-8 がサポートされ、UTF-8 対応の照合順序が追加されます。
    • UTF-8 については、char / varchar に対しての設定となり、nchar / nvarchar については、継続して UTF-16 となります。
    • Collation and Unicode Support
  • Resumable online index create allows index create to resume after interruption
    • 再開可能なインデックス再構築の対象がインデックスの作成も拡張されましたので、インデックス作成を再開可能な形で実行することもできます。
    • データベーススコープの設定として、再開可能なインデックス周りの既定設定ができるようになっています。
      (SQL Database で先行実行されていたものですね)

  • Clustered columnstore online index build and rebuild
    • 非クラスター化列ストアインデックスだけでなく、クラスター化列ストアインデックスについてもオンラインで作成と再構築できるようになりました。
  • Always Encrypted with secure enclaves
  • Intelligent query processing
    • こちらも SQL Database で先行実装されていたものですが、互換性レベル 150 で Itelligent Query Processing (Row Mode memory Grant Feedback / Approximate COUNT DISTINCT / Batch mode on rowstore / Table variable deferred compilation)が使えるようになります。
    • Batch mode on rowstore が新しい発表かもしれないですね。
      行ストアのテーブルに対して、バッチモードが使えるようになります。
  • Java language programmability extension
  • SQL Graph features
  • Database scoped configuration setting for online and resumable DDL operations
  • Always On Availability Groups – secondary replica connection redirection
    • SQL Server 2017 では、同期レプリカは 3 台 (1 プライマリ / 2 セカンダリ) まででしたが、SQL Server 2019 では、5 台の同期レプリカ (1 プライマリ / 4 セカンダリ) の設定ができるようになりました
    • セカンダリからプライマリにリダイレクトできるような機能が追加されています。
      • この機能により、リスナーが存在しないような環境でも、シンプルな構成で任意のサーバーからプライマリに透過的にリダイレクトできるようになりました。
        これにより、使用しているクラスター / 冗長化のテクノロジでリスナーが使用できない場合でも、任意のサーバーへの接続から、プライマリにリダイレクトが可能となりました。
    • Secondary to primary replica read/write connection redirection (Always On Availability Groups)
  • Data discovery and classification – natively built into SQL Server
    • SQL Database と同等の検出と分類の機能が使用できるようになります。
      • SSMS で機能拡張されたものについては、拡張プロパティを使用していたのですが、そちらでは監査ログのdata_sensitivity_information に分類が出力されなかったのですが、2019 では出力されるようになるようです。
      • ADD SENSITIVITY CLASSIFICATION (Transact-SQL)
  • Expanded support for persistent memory devices
    • SQL Server 2016 では Tail of log として、トランザクションログの書き込みを高速化するために使用できましたが、 データファイル / インメモリ OLTP のチェックポイントファイルにも NVDIMM の利用が可能となるようです。
    • 2017 では、PMEM サポートが on LInux はなかったようなのですが、2019 から追加されたようです。
  • Support for columnstore statistics in DBCC CLONEDATABASE
    • DBCC CLONE DATABASE で列ストアインデックスの統計情報についても取得されるようになりました。
      これにより、列ストアインデックスが使用されている環境のトラブルシューティングを実行する際の正確性が向上することになります。

  • New options added to sp_estimate_data_compression_savings
  • SQL Server Machine Learning Services failover clusters
  • Lightweight query profiling infrastructure enabled by default
  • New Polybase connectors
    • Polybase に SQL Server / Oracle / Teradata / Mongo のコネクターが追加され、Polybase から利用可能なデータソースが増えています。
    • What is PolyBase?
  • New sys.dm_db_page_info system function returns page information
    • DBCC PAGE の DMV 版である、sys.dm_db_page_info と、ページのリソースから情報を取得する sys.fn_PageResCracker が追加されています。
    • これらを使用することでページ情報を使用したトラブルシューティングを実施することができるようになります。
  • Master Data Service の Silverlight が HTML コントロールに置き換え
  • SQL Server 構成マネージャーから証明書管理が実行可能

SQL Server on Linux
SQL Server on Linux については、より、Windows との機能差をなくすための機能拡張が行われています。

 
勉強すること盛りだくさんですね。

Share

Written by Masayuki.Ozawa

9月 24th, 2018 at 11:45 pm

Posted in SQL Server

Tagged with ,

Leave a Reply