4. SQL on Linux のアーキテクチャ
Linux向けにポーティングされたものではない
“SQLPAL”により長年稼働してきたWindowsコードを共有
SQL Platform Abstraction Layer
(SQLPAL)
RDBMS SSIS SSAS SSRS
Windows Linux
Windows Host Ext.
Linux Host
Extension
SQL Platform Abstraction Layer
(SQLPAL)
Host extension mapping to OS system calls
(IO, Memory, CPU scheduling)
Win32-like APIsSQL OS API
SQL OS v2
All other systems
System resource & latency
sensitive code paths
5. on Linux
on Container
on Kubernetes
Popular and Commonly Used
Portable, Lightweight, Immutable, Efficient
Orchestration, Scalable, Self Healing
23. % sudo docker history mcr.microsoft.com/mssql/server:2019-RC1 --no-trunc --format '{{ json .CreatedBy }}'
FROM <OS base image> 例:ubuntu:16.04
LABEL < Microsoft label info > 例:vendor="Microsoft"
EXPOSE 1433 コンテナ内のSQL Serverがリッスンするポート
COPY < SQL Server bin and lib > /opt/mssql/bin、/opt/mssql/lib
RUN ./install.sh 依存パッケージやツールのインストール
CMD ["/opt/mssql/bin/sqlservr”] SQL Serverの起動
24. SQL Server カスタム Dockerfile 例
Sample1
FROM mcr.microsoft.com/mssql/server:2017-CU16
COPY ./DevDB.bak /tmp/DevDB.bak
CMD ["/opt/mssql/bin/sqlservr"]
Sample2
FROM mcr.microsoft.com/mssql/server:2017-CU16
COPY . /
RUN chmod +x /db-init.sh
RUN chmod +x /entrypoint.sh
CMD /bin/bash ./entrypoint.sh
sleep 15s
/opt/mssql-tools/bin/sqlcmd –i ddl.sql
/db-init.sh & /opt/mssql/bin/sqlservr
CREATE DATABASE mydb
GO
CREATE TABLE mytable (….
GO
….
db-init.sh
entrypoint.sh
ddl.sql
36. K8s内部構造
kubectl
API server
replication, namespace,
serviceaccounts, etc.
Controller
manager scheduler
KVS(etcd)
Master
Node(Worker)
kubelet kube-proxy
Docker
Pod Pod
Containers Containers
Node(Worker)
Docker
Pod Pod
Internet
kubelet kube-proxy
Containers Containers
概説
Master クラスタの司令塔となるノード
API Server K8sを管理するためのREST API
Scheduler Podのスケジューリングを制御
Contoller
Manager
クラスタのセルフヒーリングを
制御
KVS(etcd) クラスターに関わる情報を格納
Node Podを動作させるワーカーノード
Pod
スケジューリングの最小単位と
なるコンテナアプリケーション
Pod内には1つ以上のコンテナが
定義可能
kubelet
API serverを通じてMasterと通信
しNode内を制御
kube-proxy 通信制御
37. Managed Kubernetes Service
Amazon Elastic
Kubernetes Service
Google
Kubernetes Engine
Microsoft Azure
Kubernetes Service
⇒ on Google Cloud Platform
⇒ on Microsoft Azure Platform
⇒ on Amazon Web Services Platform
Kubernetes the hard way
46. Data Virtualization
ODBC NoSQL RDBMS Big Data
重複するストレージコスト
データパイプラインの構築と維持
データコピーに伴う鮮度劣化
セキュリティリスクの増大
ETL時のデータ品質問題の組み込み
ガバナンス制御の複雑化
Data
Virtualization
47. Big Data Cluster
2016 2025
16 ZBs 163 ZBs
of data was generated of data will generated
*IDC White Paper, Data Age 2025: The Evolution of Data to Life-Critical
Model
& serve
Store
Storage Pool
(HDFS)
Data Pool(Scale-out
SQL Data Mart)
Ingest
SQL Server
Integration
Services
Prep
& train
SQL Server
ML Services
Master
instance
Master instance
(SQL Server)
REST API
containers
for models
Big Data Cluster
パッケージングされたAIプラットフォーム
パッケージングされた構築済みAIプラットフォーム
48.
49. on Linux
on Container
on Kubernetes
Popular and Commonly Used
Portable, Lightweight, Immutable, Efficient
Orchestration, Scalable, Self Healing
50. SQL Server runs anywhere !
3rd party
Cloud
SQL Database
Managed Instance
SQL
Database
Kubernetes
Service
SQL Server
on Azure VM
SQL Server
Database
Migration Service
SQL Data
Warehouse
3rd
On-Premises
Cloud
OpenShiftKubernetesContainerLinuxWindows