畠山 大有 | @dahatake
Architect && Software Engineer && Applied Data Scientist
Microsoft Japan
Data + Analytics
Data + Analytics
Announcing
SQL Server の進化
Performance and
productivity
Self-service BI Cloud-ready
Mission Critical
and cloud
performance
Built-in ML Docker & Linux
Intelligence
over all data
SQL Server 2008
SQL Server 2008 R2
SQL Server 2012
SQL Server 2014
SQL Server 2016
SQL Server 2017
SQL Server 2019
Power Pivot (In-Memory) / SharePoint 統合 / Master Data サービス
データ圧縮 / ポリシーベース管理 / プログラマビリティ
AlwaysOn / In-Memory 列ストア (非クラスター化列ストア) / Data Quality サービス / Power View / クラウド
業界をリードするパフォーマンス / 機械学習 (R) / PolyBase / ハイブリッドクラウドの最適化 / クラウドエンジニアリングファースト / クラウド BI
業界をリードするパフォーマンス / グラフデータベース / 機械学習 (R / Python) / 言語とプラットフォームの選択肢の強化 / クラウドへのシンプルな移行
ワークロード全体のインメモリ化 (In-Memory OLTP / クラスター化列ストアインデックス) / ハイブリッドクラウドの最適化 / クラウド BI
すべてのデータに対するインテリジェンス / Spark と HDFS を備えたBig Data Cluster / 機械学習 (R / Python / Java) / データ分類とコンプライアンス追跡 / Azure Data Studio
R
SQL
1 0 1 0
0 1 0 1
0 1 1 0
SQL Server 2019
PolyBase と Big Data Cluster による
データ仮想化
Intelligent Query Processing および
インメモリデータベース
エンクレーブで常に暗号化されたセキュリティの強化と
データの分類による監査機能の強化
可用性グループの機能強化と
高速データベース復旧などの新しい HA 機能 Java による ML Service の機能強化 互換性のある最新のプラットフォームを選択
暗号化テキスト
プレーンテキスト
エンクレーブ
Adaptive Query Processing (SQL Server 2017)
Adaptive Query
Processing
Batch Mode
Memory Grant
Feedback
Batch Mode
Adaptive Join
Interleaved Execution
Adaptive query processing in SQL databases
https://docs.microsoft.com/en-us/sql/relational-databases/performance/adaptive-query-processing?view=sql-server-ver15
Intelligent Query Processing
Intelligent QP
Adaptive QP
Adaptive Joins
Batch Mode
Interleaved Execution Memory Grant
Feedback
Batch ModeRow Mode
Table Variable
Deferred Compilation
Batch Mode on
Row Store Approximate QP
Approximate Count
Distinct
Scalar UDF
Inlining
Intelligent query processing in SQL databases
https://docs.microsoft.com/en-us/sql/relational-databases/performance/intelligent-query-processing?view=sql-server-ver15
Intelligent Query Processing
Intelligent QP
Adaptive QP
Adaptive Joins
Batch Mode
Interleaved Execution Memory Grant
Feedback
Batch ModeRow Mode
Table Variable
Deferred Compilation
Batch Mode on
Row Store Approximate QP
Approximate Count
Distinct
Scalar UDF
Inlining
Intelligent query processing in SQL databases
https://docs.microsoft.com/en-us/sql/relational-databases/performance/intelligent-query-processing?view=sql-server-ver15
!
企業のデータベースに必要とされる セキュリティ機能
Security
management
Data protection Network security
Monitoring,
logging & auditing
Identity & access
management
認証オプション:
Azure AD
SQL Auth
Windows Auth
Azure RBAC
Encryption-in-flight via
TLS
Encryption at-rest via TDE
(SQL Server Standard)
VNET Injection
(VNET) Firewall Rules,
NSG
Advanced Threat
Detection
(SQL IaaS も対象に)
Vulnerability
Assessment
(SQL IaaS も対象に)
Row-level security
Encryption in-use via
Always Encrypted
(.NET Core support)
(Always Encrypted with
secure enclaves)
SQL Audit
(Log Analytics と
Event Hubs 連携)
Data Discovery &
Classification
(GA, SQL Server 2019)
Dynamic Data Masking
Azure Security Center
Roles & Permissions
User-managed keys
(GA in managed
instance)
Private Link
New
Private Link
PaaS services
Always Encrypted with セキュア エンクレーブ
操作
エンクレーブを使用しない エンクレーブを使用する
ランダム暗号化 決定的暗号化 ランダム暗号化 決定的暗号化
インプレース暗号化 非サポート 非サポート サポート サポート
等価による比較 非サポート サポート サポート サポート
不等号による比較 非サポート 非サポート サポート 非サポート
LIKE 非サポート 非サポート サポート 非サポート
Always Encrypted with Secure Enclaves
https://docs.microsoft.com/en-us/sql/relational-databases/security/encryption/always-encrypted-enclaves
Tutorial: Getting started with Always Encrypted with secure enclaves using SSMS
https://docs.microsoft.com/en-us/sql/relational-databases/security/tutorial-getting-started-with-always-encrypted-enclaves
Data without limits
SQL Server 2019 の利用形態
Big Data Cluster (BDC)
スケーラブルな大規模データ分析基盤
(新しい構成 / 導入方法)
SQL Server 2019 Big Data Clusters
データ仮想化
データを移動 / 複製せず、多数のソースのデータを組
み合わせる
パフォーマンスを向上させるため、計算とキャッシュ
のプールを
スケールアウト
T-SQL
分析 アプリ
ODBC NoSQL DRAMS HDFS
SQL Server 外部テーブル
コンピュートプール / データプール
完全な AI プラットフォーム
多数のソースから統合したデータを、機械学習の
モデルの訓練に容易に活用することができる
データの取り込みと準備 (前処理) を行い、モデルの
訓練 / 保存 / 運用を一つのシステムで実行
外部データ
ソース
SQL Server
ML Services
Spark &
Spark ML
HDFS
モデル用の
REST API コンテ
ナー
Managed SQL Server / Spark
Data Lake
大量のデータを Data Lake に保存し、SQL または
Spark を使用して容易にアクセス
管理されたサービス, ダッシュボード, および統合さ
れた
セキュリティより、すべての管理を容易に実施
SQL
Server Spark
ダッシュボードと管理されたサービス
統合されたAD ベースのセキュリティ
スケーラブル, 共有ストレージ
(HDFS)
統一された展開 / ガバナンス およびツールを使用したシンプルな管理と分析により
保有しているすべてのデータを情報 / 資産として活用
SQL Database PostgreSQL MySQL
Azure Hyperscale Databases
スケールする Relational Databases
100 Tran / sec
GB
100万 Tran / Sec
100TB
Announcing
ハイパースケール(Citus) を使用した
数百のコアにわたる 水平方向のスケーリング
Postgresデータベースを複数のノードに
またがってシャーディング
メモリ、コンピューティング、ストレー
ジを増やす
ワーカー ノードを簡単に追加して水平ス
ケール
最大 100 個のノードまで拡張
Coordinator
Table metadata
それぞれのノードに PostgreSQL と Citus がインストールさ
れている1 shard = 1 PostgreSQL table
複数ノードにデータをシャーディング
Data + Analytics
Planet-scale data
Azure Cosmos DB
地球規模の分散データベース
集合関数と GROUP BY 句のパフォーマンス改善
Auto Pilot Containers
最小限のキャパシティープラン
オートスケール
全ての Azure Cosmos DB API に適用
Data + Analytics
Azure Analytics
Power BI
Azure Analytics Platform
94%
Data + Analytics
Data + Analytics
Big Data
または
Relational Data
Data Lake Data warehouse
使いやすさ
迅速な探索
すぐに利用開始
実証済みのセキュリティ
鉄壁のプライバシー
信頼性の高いパフォーマン
ス
使いやすさ
迅速な探索
すぐに利用開始
実証済みのセキュリティ
鉄壁のプライバシー
信頼性の高いパフォーマン
ス
制限のない世界へようこそ
データ ウェアハウス と ビッグ データ分析を 1 つのサービスに統合
Azure Synapse Analytics
Azure Synapse Analytics
無限のスケール 強力な分析 統合環境 強固な
セキュリティ
Provisioned Data WarehouseGENERALLY AVAILABLE On-demand Query as a ServicePREVIEW
データ分析のための無制限のデータウェアハウス
Store Azure Data Lake Storage
SQL
Analytics Runtimes
Synapse Studio
Unified experience
Integration Management Monitoring Security
Cloud data
SaaS data
On-premises data
Devices data
Power BI
Azure Synapse Analytics
Synapse Studio
開発ハブ/SQL スクリプト
 SQL スクリプト
Synapse Studio – PySpark (Python)
 サポートされている集計関数:
MAX、MIN、AVG、COUNT、
COUNT_BIG、SUM、VAR、STDEV
CREATE MATERIALIZED VIEW Sales.vw_Orders
WITH
(
DISTRIBUTION = ROUND_ROBIN |
HASH(ProductID)
)
AS
SELECT SUM(UnitPrice*OrderQty) AS Revenue,
OrderDate,
ProductID,
COUNT_BIG(*) AS OrderCount
FROM Sales.SalesOrderDetail
GROUP BY OrderDate, ProductID;
GO
Petabytes への
スケール
Materialized Views
275
5
0
50
100
150
200
250
300
1 2
Seconds
クエリー実行時間
Petabytes への
スケール
Materialized Views
-- Turn on/off result-set caching for a database
-- Must be run on the MASTER database
ALTER DATABASE {database_name}
SET RESULT_SET_CACHING { ON | OFF }
-- Turn on/off result-set caching for a client session
-- Run on target data warehouse
SET RESULT_SET_CACHING {ON | OFF}
-- Check result-set caching setting for a database
-- Run on target data warehouse
SELECT is_result_set_caching_on
FROM sys.databases
WHERE name = {database_name}
-- Return all query requests with cache hits
-- Run on target data warehouse
SELECT *
FROM sys.dm_pdw_request_steps
WHERE command like '%DWResultCacheDb%'
AND step_index = 0
Petabytes への
スケール
Result Set の Cache
オンデマンド での DataLake 参照
SELECT
TOP 100 *
FROM
OPENROWSET(
BULK 'https://<storage>/path/to/files/*.parquet’,
FORMAT = 'Parquet’
) AS [r]
Data Lake SQL on-demand Client
Azure Cosmos DB と Azure Synapse の連携
Global distribution, elastic scale, low latency, intuitive consistency modes, 99.999
SLA
Multi-model
Key-value Column-family Document Graph
SQL Cassandra MongoDB Gremlin Table API ETCD
Jupyter NotebooksAzure Synapse - Spark
Transactional store (rows) Analytical store (columns)
Jupyter Notebooks 組み込み
Analytical store 組み込み
Azure Synapse の Spark
Analytics
時間のかかる ETL’s 不要
Transactional と Analytical
Storage の分類
Analytical Storage
Select *
from Block
N where
column1 >
column2
Select *
from Block
N where
column1 >
column2
Select *
from Block
N where
column1 >
column2
Snapshot
Tn
Azure Arc
Announcing
PREVIEW
On-premises
EdgeMulticloud
Management
experiences
Azure Portal
Azure CLI
Azure SDK
Azure Arc
technologies:
Azure Arc
Azure
Identity
RBAC
Policy
Index
Groups
Etc.
Azure Resource
Manager
Azure Arc data
RP
Container
registry
Azure Arc
K8s RP
Azure Arc
server RP
Azure Data Services
Wave 1
• SQL
• PostgreSQL
Azure Arc data controller
Kubernetes
Azure PaaS
Control
K8s Cluster
Azure Arc data
agent
GitOps
Manager
Azure Arc K8s
agent
Servers
Linux
Windows
Server
Azure Arc
server agent
Resource specific tools
Azure Data Studio
Cluster provisioning​
Cluster upgrade and patch
management​
Cluster lifecycle management​
Cluster monitoring
K8s Native Tools
Server Admin Tools
Customer locations
あらゆる スケール
あらゆる Data API
あらゆる データモデル
あらゆる ハードウェア
あらゆる クラウド
Developing Composite
Models wit Power BI
Sales
Date
Customer
Product
Employee
Geography
Reseller
Sales
DirectQuery Import
Sales
Date
Customer
Product
Employee
Geography
Reseller
Sales
SalesSales
Product
Customer
Geography
Date
Employee
Reseller
Sales
DirectQuery Import
Date
Employee
Reseller
Sales
Customer
Geography
Product
&
Sales AggSales
Product
Customer
Geography
Date
Employee
Reseller
Sales
Date
Employee
Reseller
Sales
Customer
Geography
Product
Import&DirectQuery
Sales
Product
Sales Agg
Customer
Geography
Date
Employee
Reseller
Sales
Aggregations
Date
Employee
Reseller
Sales
Customer
Geography
Product
Sales
Product
Sales Agg
Customer
Geography
Date
Employee
Reseller
Sales
Aggregations
Date
Employee
Reseller
Sales
Customer
Geography
Product
SummarizeColumns(
Date[Year],
Geography[City],
"Sales", Sum(Sales[Amount])
)
Sales
Product
Sales Agg
Customer
Geography
Date
Employee
Reseller
Sales
Aggregations
Date
Employee
Reseller
Sales
Customer
Geography
SELECT [Year],
[Name],
SUM([Amount]) AS [Amount]
FROM [Sales]
INNER JOIN [Date] ON ...
INNER JOIN [Customer] ON ...
GROUP BY [Year],
[Name]
Product
SummarizeColumns(
Date[Year],
Customer[Name],
"Sales", Sum(Sales[Amount])
)

SQL Server 2019 とともに知る Microsoft Data Platform

Editor's Notes