52
SQL Server 2017 新機能のご紹介 第22回 中国地方DB勉強会 in 出雲 2017/12/02 SQLWorld お だ

Sql server 2017 新機能のご紹介

Embed Size (px)

Citation preview

Page 1: Sql server 2017 新機能のご紹介

SQL Server 2017 新機能のご紹介

第22回 中国地方DB勉強会 in 出雲

2017/12/02 SQLWorld お だ

Page 2: Sql server 2017 新機能のご紹介

自己紹介

織田 信亮(おだ しんすけ)

大阪で開発者しています

SQLWorld の代表です

http://odashinsuke.hatenablog.com/

Twitter:@shinsukeoda

Page 3: Sql server 2017 新機能のご紹介

SQL Server 2017

Microsoft が出してる RDBMS

最新版の 2017 が10月にリリース

DB エンジン以外にも、色々な機能がある

Integration Services

Reporting Services

Analysis Services

Page 4: Sql server 2017 新機能のご紹介

https://www.microsoft.com/ja-jp/sql-server/sql-server-2017

Page 5: Sql server 2017 新機能のご紹介

https://www.slideshare.net/masayukiozawa/dal001-sql-server-2017-sql-server/p3 より

Page 6: Sql server 2017 新機能のご紹介

アジェンダ

マルチプラットフォーム

機械学習

グラフ データ

AlwaysOn 可用性グループ

Page 7: Sql server 2017 新機能のご紹介

アジェンダ

マルチプラットフォーム

機械学習

グラフ データ

AlwaysOn 可用性グループ

Page 8: Sql server 2017 新機能のご紹介

on Linux

Red Hat Enterprise Linux 7.3 or 7.4

SUSE Enterprise Linux v12 SP2

Ubuntu 16.04 LTS

Windows 以外のプラットフォームでも動く!!

Page 9: Sql server 2017 新機能のご紹介

Unsupported

一部の機能は on Linux で非サポート

R (ML) Services

SSAS / SSRS

ストレッチデータベース

Filetable, FILESTREAM

バッファプール拡張

…https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-release-notes#Unsupported

Page 10: Sql server 2017 新機能のご紹介

デモDocker で動かす

Page 11: Sql server 2017 新機能のご紹介

どうやって動かしてるの?

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

Page 12: Sql server 2017 新機能のご紹介

SQLPALhttps://blogs.technet.microsoft.com/dataplatforminsider/2016/12/16/sql-server-on-linux-how-introduction/

Page 13: Sql server 2017 新機能のご紹介

Drawbrigde

MS Research が開発した、仮想化リソースのオーバーヘッドを削減することに重点を置いたプロジェクト

picoprocess:軽量な隔離コンテナ

Library OS:NT カーネルをサポートしてた

On Linux の詳しい日本語情報はhttps://www.slideshare.net/decode2017/di01-sql-server-on-linux

Page 14: Sql server 2017 新機能のご紹介

SQL Operation Studio

マルチプラットフォームな GUI ツール

https://github.com/Microsoft/sqlopsstudio

Page 15: Sql server 2017 新機能のご紹介

アジェンダ

マルチプラットフォーム

機械学習

グラフ データ

AlwaysOn 可用性グループ

Page 16: Sql server 2017 新機能のご紹介

Machine Learning (ML) Services

2016 の R Services の名前が変わった

R だけでなく、Python も使える

SQL Server とは別プロセスで実行

GPU 対応のパッケージも利用可能

データベース内でデータ解析

データ移動のリスクやコスト低減

Page 17: Sql server 2017 新機能のご紹介

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

Page 18: Sql server 2017 新機能のご紹介

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

Page 19: Sql server 2017 新機能のご紹介

デモML Services + PREDICATE 関数

Page 20: Sql server 2017 新機能のご紹介

自動チューニング

実行プランが変わったことにより、遅くなった時に自動で以前の良かった実行プランに切り替えてくれる

※Enterprise Edition のみ

2016 では、クエリストア から遅くなった実行プランを確認して手動で強制変更

クエリストアは Express でも使える

Page 21: Sql server 2017 新機能のご紹介

デモ自動チューニング

Page 22: Sql server 2017 新機能のご紹介

アジェンダ

マルチプラットフォーム

機械学習sss

グラフ データ

AlwaysOn 可用性グループ

Page 23: Sql server 2017 新機能のご紹介

グラフ(Graph) って何?

ノード(Node)

vertex (頂点)

エンティティ

エッジ(Edge)

releationship

2つの ノード を繋ぐ

プロパティ(Property)

ノード、エッジ の属性

Page 24: Sql server 2017 新機能のご紹介
Page 25: Sql server 2017 新機能のご紹介

Node Table

Node を表すテーブル

create table 人 (名前 nvarchar(10) not null primary key

) as Node

Page 26: Sql server 2017 新機能のご紹介

Edge Table

Edge を表すテーブル

create table 好き (度合 int not null

) as Edge

Page 27: Sql server 2017 新機能のご紹介

データの追加 (Node Table)

insert into 人 (名前) values(N’Aさん'), (N’Bさん)

Page 28: Sql server 2017 新機能のご紹介

データの追加 (Edge Table)

insert into 好き ($from_id, $to_id, 度合) values((select $node_id from 人 where 名前 = N'Aさん'),(select $node_id from 人 where 名前 = N'Bさん'),3

)

Page 29: Sql server 2017 新機能のご紹介

データの検索 (MATCH)

select 誰が.名前 as 誰が, 誰を.名前 as 誰を, 好き.度合 as どれくらい好き

from 人 誰が, 好き, 人 誰をwhere match (誰が - (好き) -> 誰を)

Page 30: Sql server 2017 新機能のご紹介

データの検索 (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] )

Page 31: Sql server 2017 新機能のご紹介

デモグラフ

Page 32: Sql server 2017 新機能のご紹介

デモグラフを使うことでシンプルになった例

https://myignite.microsoft.com/videos/55108P-15, P-16

Page 33: Sql server 2017 新機能のご紹介

アジェンダ

マルチプラットフォーム

機械学習

グラフ データ

AlwaysOn 可用性グループ

Page 34: Sql server 2017 新機能のご紹介

AlwaysOn 可用性グループ

高可用性 のための機能

クロスプラットフォーム対応

外部クラスターマネージャー

クラスターレス

Page 35: Sql server 2017 新機能のご紹介

可用性グループ

Page 36: Sql server 2017 新機能のご紹介

ドメインに依存しない可用性グループ

Page 37: Sql server 2017 新機能のご紹介

ドメインに依存しない可用性グループ

Page 38: Sql server 2017 新機能のご紹介

分散型可用性グループ

Page 39: Sql server 2017 新機能のご紹介

読み取りスケール可用性グループ(2017 から)

Page 40: Sql server 2017 新機能のご紹介

可用性グループ – Linux

Page 41: Sql server 2017 新機能のご紹介

分散型可用性グループ(クロスプラットフォーム)

Page 42: Sql server 2017 新機能のご紹介

分散型可用性グループ(クロスプラットフォーム)

Page 43: Sql server 2017 新機能のご紹介

読み取りスケール可用性グループ(クロスプラットフォーム)

Page 44: Sql server 2017 新機能のご紹介

参考資料 (全般)

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

Page 45: Sql server 2017 新機能のご紹介

参考資料 (マルチプラットフォーム)

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

Page 46: Sql server 2017 新機能のご紹介

参考資料 (マルチプラットフォーム)

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

Page 47: Sql server 2017 新機能のご紹介

参考資料 (機械学習)

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

Page 48: Sql server 2017 新機能のご紹介

参考資料 (機械学習)

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

Page 49: Sql server 2017 新機能のご紹介

参考資料 (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

Page 50: Sql server 2017 新機能のご紹介

参考資料 (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

Page 51: Sql server 2017 新機能のご紹介

参考資料 (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

Page 52: Sql server 2017 新機能のご紹介

参考資料 (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