Upload
oda-shinsuke
View
920
Download
3
Embed Size (px)
Citation preview
これから SQL Server をはじめるには
2015/01/31 2015 MVP Community Camp 大阪
SQLWorld お だ
自己紹介
織田 信亮@shinsukeoda
大阪で開発者やってます
http://odashinsuke.hatenablog.com
SQLWorld http://sqlworld.org/
Micorsoft MVP for SQL Server2012/10~2015/09
SQLWorld って?
SQL Server を中心に DB の勉強会やってます
正規化/モデリング, NoSQL とかも
SQL を書くハンズオンやってます
平日夜開催 (2H程度)
提示されたお題に対して、SQL を書いてみる
検索だけ(SELECT) 4, 5 問
次回は 3/10(火) 19:00 ~http://sqlworld.org/event/20150310/
注意事項
現時点(2015/01/31) でのお話しです
最新の情報は公式Webでご確認下さい
SQL Server を動かす環境
オンプレミス + SQL Server
自前のサーバー/PC に SQL Server を載せたもの
Microsoft Azure VM + SQL Server
Azure の VM に SQL Server を載せたもの
Microsoft Azure SQL Database
Azure が SQL Server(DB)を提供しているサービス
Azure 以外のクラウドサービス + SQL Server
Amazon RDS 等…
SQL Server を動かす環境
オンプレミス + SQL Server
自前のサーバー/PC に SQL Server を載せたもの
Microsoft Azure VM + SQL Server
Azure の VM に SQL Server を載せたもの
Microsoft Azure SQL Database
Azure が SQL Server(DB)を提供しているサービス
Azure 以外のクラウドサービス + SQL Server
Amazon RDS 等…
アジェンダ
SQL Server
Microsoft Azure SQL Database
比較
「個人的な」お薦め
SQL Server
SQL Server の機能紹介(大まかに)
Database Engine
RDB
Reporting Services (SSRS)
レポートの作成/管理/表示
Analysis Services (SSAS)
BI で使用するようなオンライン分析データエンジン。
キューブ等のモデルを作成/管理
Integration Services (SSIS)
データ変換(クリーニング等)を行うプラットフォーム(環境)
File DB や DB DB 等
SQL Server の機能紹介(大まかに)
Master Data Services
DWH で使われるマスタデータの管理をするための機能
Data Qulity Services
データクレンジングや名寄せ
Service Broker
キューやメッセージング を行うための機能
Agenet
スケジュールされたジョブの実行
SQL Server の Edition
インストールする Edition によって機能差異がある
Enterprise/Business Intelligence/Standard
Enterprise と Standard の違い
リソース(メモリ/CPU) の上限
高可用性に関する機能制限
パフォーマンスに関する機能制限
セキュリティに関する機能制限
BI/DWH(データウェアハウス) に関する機能制限
…
Business Intelligence
少人数向けの Standard + BIに関する機能
SQL Server の Edition
Developer
開発及びテストにのみ利用可。Enterprise と同機能
Express
無料だが Standard より機能制限されている(リソース含む)
Database Engine/Reporting Service の一部機能
Reporting Service は Express with Advanced Services で使える
Web
公開Webサービス用の Standard 相当の Edition
Web ホスティング企業 向け
アプライアンス製品
PDW(Parallel Data Warehouse)
簡単にライセンスの話し※詳細は MS に確認してください
コアライセンス
コア数の合計(2core CPU * 2 は 4ライセンス)
Enterprise
Standard
サーバー/CAL ライセンス
サーバー台数分のサーバーライセンス + アクセスするユーザー or デバイス分の クライアントアクセスライセンス
Business Intelligence
Standard
簡単にライセンスの話し (Azure VM)※詳細は MS に確認してください
ライセンス込の VMイメージを使う場合は Edition により価格が異なる
利用する Windows Server の料金 + SQL Server のライセンス料
http://azure.microsoft.com/ja-jp/pricing/details/virtual-machines/#Sql
http://azure.microsoft.com/ja-jp/pricing/details/virtual-machines/#Windows
ソフトウェアアシュアランス(SA) のライセンスモビリティでライセンスの持ち込みも可能
http://azure.microsoft.com/ja-jp/pricing/licensing-faq/
Microsoft AzureSQL Database(SQL DB)
SQL DB の機能紹介
Database Engine のみ
オンプレ等 SQL Server の SSRS/SSAS/SSIS 等から SQL DB のデータを使うことは可能
サポートしていない機能がある
インメモリOLTP(メモリ最適化テーブル)
File Stream/File Table
シーケンス
…
最近発表された v12 でも機能を追加しているのでサポートしていない機能もそのうち使えるようになるかも?
SQL DB の機能紹介
最近発表された v12 で追加された機能
テーブルパーティショニング
Window関数
.NET CLR (外部リソースアクセス不可 SAFE Assembly)
データ変更の追跡 (Change Tracking)
ヒープテーブル (クラスタ化インデックス無し)
列ストアインデックス(クラスタ化/非クラスタ化 両方)
並列クエリ
…
SQL DB の機能紹介
利用する Service Tier (Edition の様な物) で性能/機能差がある
通常の SQL Server に無い機能もある
自動バックアップ / 任意の地点へのリストア
3冗長化
低レベルの Service Tier でも Enterprise の機能が使える
データの圧縮/オンラインでのインデックス 再構築
SQL DB の Service Tier (Edition のような物)
Web/Business ※2015/09 に終了予定
DB サイズの違い
ベストエフォート
使えるだけリソースを使う
近所に重い人がいるとパフォーマンスが悪くなる
Basic/Standard/Premium
パフォーマンスや提供機能に違い
細かいパフォーマンスレベルを指定可
予測可能なパフォーマンス
空いてる時も混んでる時も、ほぼ同じパフォーマンス
近所に重い人がいても、影響を受けない
Basic/Standard/Premium の違い
パフォーマンスレベル (DTU によるレベル分け)
Basic/S0/S1/S2/S3/P1/P2/P3
DB サイズ
2GB/250GB/500GB
自動バックアップ (Point in time Restore)の保持期間
7日/14日/35日
機能制限
列ストアインデックス/並列クエリ は Premium のみ
DR
地理レストア/標準地理レプリケーション/アクティブ地理レプリケーション
DTU
Azure SQL Database Benchmark によって測定された値
OLTP ワークロードで頻繁に発生する様なデータベース操作でのパフォーマンス測定
CPU/メモリ/Disk IO等 をセットにした単位
ワークロードによっては数値通りになるとは限らない
5 DTU => 50 DTU にしたのに 10倍にならないとかはあり得る
ベンチマーク概要
DTU トランザクション/時間 レスポンス要件
Basic 5 16,600/時間 => 4.6/秒 80% は 2秒以内に
Standard - S0 10 521/分 => 8.6/秒 90% は 1秒以内に
Standard - S1 20 934/分 => 15.5/秒 〃
Standard - S2 50 2,570分 => 42.8/秒 〃
Premium - P1 100 105/秒 95%は 0.5秒以内に
Premium - P2 200 228/秒 〃
Premium - P3 800 735/秒 〃
Azure SQL Database Benchmark Overviewhttp://msdn.microsoft.com/en-us/library/azure/dn741327.aspx
DR
地理リストア
日次バックアップからデータベース復元
標準地理レプリケーション
オフラインセカンダリ
非同期コミット
1h経過でフェールオーバー可能
24h経過で強制フェールオーバー
アクティブ地理レプリケーション
最大4つの 読取専用セカンダリ
非同期コミット
レプリケーション/フェールオーバーは手動で
比べてみる
オンプレミス と Azure VM での違い
SQL Server の機能としては同じ
インストールする Edition によって機能差異がある
オンプレミスと Azure VM の違い
マシンのスペックの上限
初期投資費用
ランニングコスト
スケールアップの容易さ
アプライアンス製品はオンプレミスのみ
SQL Server PDW
オンプレミス でのクラウド利用(ハイブリッド クラウド)
バックアップ先を クラウド(Azure Storage) へ
実質容量無制限の低コストストレージ
高可用性
災害対策 (DR)
バックアップは暗号化や圧縮も可
クラウドに データファイルを配置
インスタンスとデータの分離で災害対策(DR)
サーバー切替時の一時的な利用
SQL Server と SQL DB それぞれのメリット
SQL Server
Database Engine 以外の機能も使える
Reporting Server で済むなら帳票用の別の製品を買う必要無し
全ての機能をサポート
インメモリOLTP/ADO.NET クエリ通知/File Tables… 等の機能が必要
パフォーマンス上限が高い
P3 よりハイスペックなマシンを調達可能
Express Edition は無料
SQL DB
Edition (Tier) 変更の容易さ
列ストアは当初不要だったが、しばらくして必要になった
スケールアップの容易さ
オンプレミス + SQL Server と比べるとより顕著
冗長性の構成/運用の簡素化
バックアップ/復元の容易さ
Always On 等の冗長性の構成を組まなくても良い
セキュリティ面での比較
SQL Server/SQL DB でほぼ同じもの
接続の暗号化
プリンシパル(ログイン/ユーザー/ロール 等) 単位でリソース(DB/Table/ストアド 等) への権限(GRANT/DENY)
データの暗号化(アプリケーションレベルで対応)
ENCRYPTBYPASSPHRASE/DECRYPTBYPASSPHRASE
Transparent Data Encryption(TDE:透過的なデータ暗号化)
SQL Server では Enterprise のみ
SQL DB では coming soon
監査(Augit) ※ SQL Server と SQL DB で仕組みは違う
Standard/Express でも監査可能。Enterprise だとより詳細に
SQL DB では Service Tier での機能差は無い
セキュリティ機能での比較
SQL Server
2つの認証モードをサポート
Windows 認証:Windows のユーザーアカウントで認証 (SQL Server のみ)
SQL Server認証:ユーザー/パスワード での認証 (SQL DB はこちらだけ)
接続ポートの変更
SQL DB ではポート固定
他ソフトでの制御
Windows にインストール出来るソフトなら使える
例:IP指定のFirewall
SQL Database
Firewall
IP指定のホワイトリスト
Row Level Security(RLS)
行レベルでのセキュリティ
現在のユーザー等を使って、データのフィルタリングをするイメージ
Dynamic Data Masking
権限のないユーザーの場合、対象列はマスクされたデータが返る感じ
まだ触れないので動作が違うかも
個人的なお薦め
なるべくお金を掛けない方向で
Express Edition で足りるなら Express Edition
運用面で負担がある場合は SQL DB にする事も検討
SQL DB で足りるなら SQL DB
運用面では一番利点がある
オンプレミス / Azure VM はどっちでも
環境/状況によりけり
利用する期間:10年使う or 短期で使わなくなるかも…
物理ハードの有無:十分なスペックのサーバー有無
閑散期/繁忙期:年1回だけピークとか