これから Sql server をはじめるには

Preview:

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回だけピークとか

Recommended