SE の雑記

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

Archive for the ‘SQL Server 2019’ tag

SQL Server 2019 CTP 2.4 時代のクエリプロファイリング

leave a comment

SQL Server は製品のバージョンアップや更新プログラムによってクエリ情報を取得するための「クエリプロファイリング」の機能が向上しています。

クエリ プロファイリング インフラストラクチャ というドキュメントで、詳細はまとめられているのですが、自分の言葉で書く機会が少なかったのと、SQL Server 2019 CTP 2.4 でも取得できる情報が増えていますので、この機会にまとめておこうと思います。

Read the rest of this entry »

Written by masayuki.ozawa

4月 4th, 2019 at 10:45 pm

Posted in SQL Server

Tagged with ,

SQL Server 2019 CTP 2.4 の PolyBase をインストールする際の注意点

leave a comment

SQL Server 2019 CTP 2.4 の PolyBase (2019 の新機能版) をインストールしようとした際の注意点についてまとめておこうかと。

日本語版の Windows Server 2019 + SQL Server 2019 CTP 2.4 の環境を使用していますが、日本語固有 (英語以外) の問題も一部ありそうです。
環境に依存しているかの細かな確認はできていないのですがフィードバックはしておこうかと思います。

Read the rest of this entry »

Written by masayuki.ozawa

4月 1st, 2019 at 1:12 am

Posted in SQL Server

Tagged with ,

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

leave a comment

だいたい月次リリースで SQL Server 2019 の CTP がリリースされているのですが、2.4 がリリースされました。
まさか 3 月に 2 回 CTP がリリースされるとは…。

新機能の詳細はこちら。

データベースエンジン回りと、SSAS に機能向上が行われています。

データベースエンジン

Big Data Cluster

詳細は Release notes for big data clusters on SQL Server の CTP 2.4 の情報から。

  • Big Data Cluster の GPU サポート
    • Spark で TensorFlow を使用して深層学習を実行するための GPU サポートについてのガイダンスが公開されました。
      Deploy a big data cluster with GPU support and run TensorFlow
    • ガイダンスでは AKS を GPU インスタンスを使用して構築し、そのうえで Big Data Cluster の構築を行っています。
      • Big Data Cluster を使用する場合に設定するレポジトリが GPU 向けの設定となっているようです
  • 外部データソースの手動作成
    • CTP 2.3 までは、DataPool / Storage Pool の外部データソースが作成されていたのですが、CTP 2.4 から作成されなくなったため、手動で作成をする必要があります。
      External tables
    • model に事前に設定しておいてあげると、新規 DB 作成時に反映されて楽かもしれませんね。
  • Data Pool に対して INSERT INTO SELECT のサポート
    • CTP 2.3 までは、T-SQL を使用して Data Pool に対してデータを投入する際には、「sp_data_pool_table_insert_data」というストアドプロシージャを使用していたのですが、CTP 2.4 からは、ストアドプロシージャが廃止され、INSERT INTO SELECT により、Data Pool に対してデータ収集を行う方法となったようです。
      Tutorial: Ingest data into a SQL Server data pool with Transact-SQL
    • ある程度のまとまった行数を挿入する場合、複数の DB にレコードが分散されていました。
      (テスト時は、2700~3800 行ぐらいが分散単位となっていました)
  • Spark のバージョンが 2.4 にバージョンアップ
    • CTP 2.3 までは、Spark は 2.3.x が使用されていたのですが、2.4 が使用されるようになりました。
  • 外部テーブルに対して Compute Pool の利用の制御
    • 通常、外部テーブルへのアクセスについては、Master Instance から実行されます。
      これを Compute Pool 経由でアクセスするように実行するオプションが追加されました
      • OPTION(DISABLE SCALEOUTEXECUTION)
      • OPTION(FORCE SCALEOUTEXECUTION)

データベースエンジン

  • 文字列の切り捨てメッセージの動作の変更
  • クエリの実行プラン取得方法の機能向上
    • どちらも軽量クエリプロファイリングの使用時に、実際の実行計画に相当する情報を取得するための方法となり、軽量クエリプロファイリング v3 の一貫として追加されているようです。
      Lightweight query execution statistics profiling infrastructure v3
    • 拡張イベント : query_post_execution_plan_profile の追加
      • 軽量プロファイリングに基づいて取得された実行プランを、拡張イベントで収集するためには、このイベントを使用するようです。
    • DMV : sys.dm_exec_query_plan_stats の追加
      • 軽量プロファイリングに基づいて最後に実行された実際のクエリ実行プランを調べるための方法のようです。
        • 使用するためにはトレースフラグ 2451 が必要となります
  • 透過的データ暗号化 (TDE) の一時停止 / 再開のサポート

SSAS

  • 表形式モデルの多対多のリレーションシップのサポート (互換性レベル 1470 が必要)
  • メモリ設定のリソースガバナンス

Written by masayuki.ozawa

3月 28th, 2019 at 9:45 am

Posted in SQL Server

Tagged with ,

Big Data Cluster のスケールアウトデータマートへのデータ投入の基本的な考え方

leave a comment

Big Data Cluster (BDC) はスケールアウトデータマートとしてのデータストアを持っています。

CTP 2.3 時点では、スケールアウトデータマートへのデータ投入は標準機能として、T-SQL と Spark ジョブを使用した、2 パターンが用意されています。

  1. チュートリアル:Transact SQL を使用した SQL Server のデータ プールにデータを取り込む
  2. チュートリアル:Spark ジョブの SQL Server のデータ プールにデータを取り込む

どちらのパターンでも基本的な操作方法は同じですが、少し特殊な形での利用となっていますので、まとめてみたいと思います。

Read the rest of this entry »

Written by masayuki.ozawa

3月 21st, 2019 at 10:39 pm

PySpark を使用して Big Data Cluster のストリーミング処理を書いてみる

leave a comment

チュートリアルで提供されているストリーミング処理はは、Scala で記述された「mssql-spark-lib-assembly-1.0.jar」なのですが、PySpark で書くとどうなるだろうと思って勉強がてら書いてみた際の内容です。
Microsoft の公式の技術文書ですと、Big Data Cluster に流用できる内容は、Azure HDInsight / Azure Databricks あたりになりますが、欲しい情報がなく、手探りでいろいろとやっていました。

Microsoft 関連のドキュメントとして、HDInsight Spark クラスターを使用して Azure SQL Database のデータを読み書きする あたりが今回の内容に近いのですが、

注意

現在、Spark から SQL Database へのデータのストリーミングは Scala と Java においてのみサポートされているので、この記事では、Spark (Scala) カーネルを使います。 SQL からの読み取りや SQL への書き込みは Python を使って行うこともできますが、この記事での一貫性を保つため、3 つの操作すべてに Scala を使います

と書かれているように、Scala を使用した例となっています。

Spark の勉強と、Python を使用した場合の情報を探すのに手間取り、書いたアプリケーションの内容の割には、とても時間がかかりました… orz

Read the rest of this entry »

Written by masayuki.ozawa

3月 21st, 2019 at 11:22 am

Big Data Cluster のコンテナー情報の取得と整形

leave a comment

Big Data Cluster (BDC) は、k8s 上に複数の Pod を構築することで構成されています。
BDC の管理ポータルからも Pod の情報を取得することはできますが、kubectl 取得することで自分の必要となる情報を取得できるので、JSONPath の操作を覚えがてら、簡単なものを記述してみました。 Read the rest of this entry »

Written by masayuki.ozawa

3月 14th, 2019 at 9:52 am

SQL Server 2019 CTP 2.3 で実装された高速データベース復旧で何が可能になるのか?

leave a comment

SQL Database では先行して実装されていた高速データベース復旧 (Accelerated Database Recovery : ADR) が、SQL Server では、2019 CTP 2.3 から使用可能となりました。

昨年の 10 月ぐらいからドキュメントは公開されていたのですが、情報を調べられていなかったので、今回の機会に調べてみました。

公式の情報としては次の内容となります。

Read the rest of this entry »

Written by masayuki.ozawa

3月 3rd, 2019 at 11:19 pm

Posted in SQL Server

Tagged with ,

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

leave a comment

マンチェスターで開催されている SQLBits 2019 のキーノートで SQL Server 2019 CTP 2.3 のリリースがアナウンスされ、モジュールや情報が公開されています。

Windows 版のダウンロードは こちら から実施することができ、Linux / Docker のリポジトリについても 2.3 がリリースされているようです。

SQL Server 2019 CTP 2.3 で追加された機能については、次のリンクから確認できます。

公式情報としてもいくつかのアナウンスが出ています。

Read the rest of this entry »

Written by masayuki.ozawa

3月 2nd, 2019 at 2:55 pm

Posted in SQL Server

Tagged with ,

SQL Server 2019 の新機能の ハイブリッドバッファープールを試してみる

leave a comment

SQL Server 2019 では新機能として、ハイブリッド バッファー プール (Hybrid Buffer Pool) という機能が新しく追加されます。

ドキュメントベースではなんとなく動作を理解できていたのですが、実際の動作を確認できていなかったので、軽くではありますが動作を試してみました。

Read the rest of this entry »

Written by masayuki.ozawa

2月 21st, 2019 at 11:52 pm

Posted in SQL Server

Tagged with ,

SQL Server 2019 CTP 2.2 の Big Data Cluster を支えるソフトウェア

leave a comment

SQL Server 2019 の新機能である Big Data Cluster は Kubernetes 上に展開された SQL Server on Linux をインタフェースとして、Hadoop のエコシステムを活用することができるデータ分析基盤になります。

いままで触ってこなかったソフトウェアが大量に含まれていたので、軽くまとめた一覧を。
コンポーネントが多いので、HDInsight のように、まとまった情報が欲しいですね。

役割

ソフト

バージョン

URL

実行基盤

Kubernetes

1.10 以降

https://kubernetes.io/

リバースプ
プロキシ

nginx

nginx version: nginx/1.10.3 (Ubuntu)

https://nginx.org/en/

https://nginx.org/en/docs/

データ
分析基盤

Apache Hadoop

Hadoop 2.9.1
(HDP :
2.6.4.0-91)

https://hadoop.apache.org/

http://hadoop.apache.org/docs/current/

 

Apache Hive

1.2.1

https://hive.apache.org/

https://cwiki.apache.org/confluence/display/Hive/LanguageManual

 

Apache Livy

0.5.0

https://livy.incubator.apache.org/

 

Apache Spark

2.3.1

https://spark.apache.org/
https://spark.apache.org/docs/latest/

認証
セキュリティ

Apache Knox

1.1.0

https://knox.apache.org/

https://knox.apache.org/books/knox-1-1-0/user-guide.html

 

Apache Ranger

0.7.0.2.6.4.0-9

https://ranger.apache.org/

ログ収集
分析基盤

Fluent Bit

Fluent-Bit v0.13.5

https://fluentbit.io/

https://docs.fluentbit.io/manual/

 

Kibana

6.3.1

https://www.elastic.co/jp/products/kibana

https://www.elastic.co/guide/en/kibana/current/index.html

 

Elastic Search

6.3.2

https://www.elastic.co/jp/products/elasticsearch

https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

 

Grafana

Version 5.2.2
(commit: aeaf7b2)

https://grafana.com/

http://docs.grafana.org/

 

InfluxDB

1.5.3

https://www.influxdata.com/

https://docs.influxdata.com/influxdb/

 

Telegraf

1.6.0

https://www.influxdata.com/
https://docs.influxdata.com/telegraf/

 

Collectd

5.5.1

https://collectd.org/

https://collectd.org/documentation.shtml

プロセス
コントロール

Supervisor

3.2.0

http://supervisord.org/

Written by masayuki.ozawa

1月 24th, 2019 at 9:40 am

Posted in SQL Server

Tagged with ,