SQL Server 2017 新機能のご紹介 第22回 中国地方DB勉強会 in 出雲 2017/12/02 SQLWorld お だ
SQL Server 2017 新機能のご紹介
第22回 中国地方DB勉強会 in 出雲
2017/12/02 SQLWorld お だ
自己紹介
織田 信亮(おだ しんすけ)
大阪で開発者しています
SQLWorld の代表です
http://odashinsuke.hatenablog.com/
Twitter:@shinsukeoda
SQL Server 2017
Microsoft が出してる RDBMS
最新版の 2017 が10月にリリース
DB エンジン以外にも、色々な機能がある
Integration Services
Reporting Services
Analysis Services
…
https://www.microsoft.com/ja-jp/sql-server/sql-server-2017
https://www.slideshare.net/masayukiozawa/dal001-sql-server-2017-sql-server/p3 より
アジェンダ
マルチプラットフォーム
機械学習
グラフ データ
AlwaysOn 可用性グループ
アジェンダ
マルチプラットフォーム
機械学習
グラフ データ
AlwaysOn 可用性グループ
on Linux
Red Hat Enterprise Linux 7.3 or 7.4
SUSE Enterprise Linux v12 SP2
Ubuntu 16.04 LTS
Windows 以外のプラットフォームでも動く!!
Unsupported
一部の機能は on Linux で非サポート
R (ML) Services
SSAS / SSRS
ストレッチデータベース
Filetable, FILESTREAM
バッファプール拡張
…https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-release-notes#Unsupported
デモDocker で動かす
どうやって動かしてるの?
SQLPAL
SQL Platform Abstract Layer
Linux Process
SQLPAL Managed
SQLPAL
Linux Host Extension
Linux OS
Software Isolated Process
SQL Server
Windows Calls
ABI Calls
Linux OS Call
SQLPALhttps://blogs.technet.microsoft.com/dataplatforminsider/2016/12/16/sql-server-on-linux-how-introduction/
Drawbrigde
MS Research が開発した、仮想化リソースのオーバーヘッドを削減することに重点を置いたプロジェクト
picoprocess:軽量な隔離コンテナ
Library OS:NT カーネルをサポートしてた
On Linux の詳しい日本語情報はhttps://www.slideshare.net/decode2017/di01-sql-server-on-linux
SQL Operation Studio
マルチプラットフォームな GUI ツール
https://github.com/Microsoft/sqlopsstudio
アジェンダ
マルチプラットフォーム
機械学習
グラフ データ
AlwaysOn 可用性グループ
Machine Learning (ML) Services
2016 の R Services の名前が変わった
R だけでなく、Python も使える
SQL Server とは別プロセスで実行
GPU 対応のパッケージも利用可能
データベース内でデータ解析
データ移動のリスクやコスト低減
ML Services + external_script
ML Services のインストールが必要
Windows Only
sp_execute_external_script
R、Python のスクリプトが書ける
execute sp_execute_external_script@language = N'Python',@script = N'import sysprint("*******************************")print(sys.version)print("Hello World")'GO
PREDICATE 関数
Native Scoring
ML Services のインストール不要
Windows / Linux で利用可!
事前にトレーニング済モデルを SQL Server に登録しといてそれを利用
https://docs.microsoft.com/en-us/sql/advanced-analytics/r/how-to-do-realtime-scoringhttps://docs.microsoft.com/en-us/sql/advanced-analytics/real-time-scoring
デモML Services + PREDICATE 関数
自動チューニング
実行プランが変わったことにより、遅くなった時に自動で以前の良かった実行プランに切り替えてくれる
※Enterprise Edition のみ
2016 では、クエリストア から遅くなった実行プランを確認して手動で強制変更
クエリストアは Express でも使える
デモ自動チューニング
アジェンダ
マルチプラットフォーム
機械学習sss
グラフ データ
AlwaysOn 可用性グループ
グラフ(Graph) って何?
ノード(Node)
vertex (頂点)
エンティティ
エッジ(Edge)
releationship
2つの ノード を繋ぐ
プロパティ(Property)
ノード、エッジ の属性
Node Table
Node を表すテーブル
create table 人 (名前 nvarchar(10) not null primary key
) as Node
Edge Table
Edge を表すテーブル
create table 好き (度合 int not null
) as Edge
データの追加 (Node Table)
insert into 人 (名前) values(N’Aさん'), (N’Bさん)
データの追加 (Edge Table)
insert into 好き ($from_id, $to_id, 度合) values((select $node_id from 人 where 名前 = N'Aさん'),(select $node_id from 人 where 名前 = N'Bさん'),3
)
データの検索 (MATCH)
select 誰が.名前 as 誰が, 誰を.名前 as 誰を, 好き.度合 as どれくらい好き
from 人 誰が, 好き, 人 誰をwhere match (誰が - (好き) -> 誰を)
データの検索 (MATCH)
MATCH の構文
[node] : Node テーブル or エイリアス[edge] : Edge テーブル or エイリアス
match ( [node] - ([edge]) -> [node] )match ( [node] <- ([edge]) - [node] )match ( [node] - ([edge]) -> [node] - ([edge]) -> [node] )match ( [node] - ([edge]) -> [node] <- ([edge]) - [node] )match ( [node] - ([edge]) -> [node] and [node] - ([edge]) -> [node] )
デモグラフ
デモグラフを使うことでシンプルになった例
https://myignite.microsoft.com/videos/55108P-15, P-16
アジェンダ
マルチプラットフォーム
機械学習
グラフ データ
AlwaysOn 可用性グループ
AlwaysOn 可用性グループ
高可用性 のための機能
クロスプラットフォーム対応
外部クラスターマネージャー
クラスターレス
可用性グループ
ドメインに依存しない可用性グループ
ドメインに依存しない可用性グループ
分散型可用性グループ
読み取りスケール可用性グループ(2017 から)
可用性グループ – Linux
分散型可用性グループ(クロスプラットフォーム)
分散型可用性グループ(クロスプラットフォーム)
読み取りスケール可用性グループ(クロスプラットフォーム)
参考資料 (全般)
What’s new in SQL Server 2017
https://docs.microsoft.com/en-us/sql/sql-server/what-s-new-in-sql-server-2017
SQL Server 2017 Release Notes
https://docs.microsoft.com/en-us/sql/sql-server/sql-server-2017-release-notes
SQL Server 2017 事始め
https://www.slideshare.net/masayukiozawa/dal001-sql-server-2017-sql-server/1
参考資料 (マルチプラットフォーム)
SQL Server on Linux
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-overview
Release notes for SQL Server 2017 on Linux
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-release-notes
SQL Server on Linux: How? Introduction
https://blogs.technet.microsoft.com/dataplatforminsider/2016/12/16/sql-server-on-linux-how-introduction/
窓は開かれた!SQL Server on Linux で拡がる可能性
https://www.slideshare.net/decode2017/di01-sql-server-on-linux
参考資料 (マルチプラットフォーム)
Run the SQL Server 2017 container image with Docker
https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker
microsoft/mssql-server-linux
https://hub.docker.com/r/microsoft/mssql-server-linux/
microsoft/mssql-server-windows-developer
https://hub.docker.com/r/microsoft/mssql-server-windows-developer/
Microsoft/sqlopsstudio
https://github.com/Microsoft/sqlopsstudio
参考資料 (機械学習)
Microsoft Machine Learning Services
https://docs.microsoft.com/en-us/sql/advanced-analytics/r/r-services
Machine Learning Services with Python
https://docs.microsoft.com/en-us/sql/advanced-analytics/python/sql-server-python-services
How to perform realtime scoring or native scoring in SQL Server
https://docs.microsoft.com/en-us/sql/advanced-analytics/r/how-to-do-realtime-scoring
参考資料 (機械学習)
Realtime scoring
https://docs.microsoft.com/en-us/sql/advanced-analytics/real-time-scoring
Automatic tuning
https://docs.microsoft.com/en-us/sql/relational-databases/automatic-tuning/automatic-tuning
参考資料 (Graph)
Graph processing with SQL Server and Azure SQL Database
https://docs.microsoft.com/en-us/sql/relational-databases/graphs/sql-graph-overview
SQL Graph Architecture
https://docs.microsoft.com/en-us/sql/relational-databases/graphs/sql-graph-architecture
CREATE TABLE (SQL Graph)
https://docs.microsoft.com/en-us/sql/t-sql/statements/create-table-sql-graph
参考資料 (Graph)
INSERT (SQL Graph)
https://docs.microsoft.com/en-us/sql/t-sql/statements/insert-sql-graph
MATCH (Transact-SQL)
https://docs.microsoft.com/en-us/sql/t-sql/queries/match-sql-graph
SQL Server 2017 Graph Database Example
https://www.mssqltips.com/sqlservertip/4883/sql-server-2017-graph-database-example/
Graph extensions in Microsoft SQL Server 2017 and Azure SQL Database
https://myignite.microsoft.com/videos/55108
参考資料 (AlwaysOn AG)
Overview of Alywas On Availability Groups
https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server
Distributed availability groups
https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/distributed-availability-groups
Domain Independent Availability Groups
https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/domain-independent-availability-groups
参考資料 (AlwaysOn AG)
Read-scale availability groups
https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/read-scale-availability-groups
Availability groups for SQL Server on Linux
https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-availability-group-overview