SQL Azure

SQL Server をコマンドラインで操作するためのコマンドsqlcmdとデータのバルクインサートをするためのコマンドラインツールbcpをLinuxで使用するための手順について説明します。

前提条件

  • コマンド操作元として、Ubuntu 14.04
  • 接続先として、SQL ServerかAzure SQL Database

インストール手順

インストールスクリプトをダウンロードします。

wget https://gallery.technet.microsoft.com/scriptcenter/SQLCMD-and-BCP-for-Ubuntu-c88a28cc/file/142121/1/Ubuntu%2014.04%20MSFT%20ODBC%20Driver.sh

SQLCMDとBCP、Linux ODBCドライバーをインストールします。

sudo bash Ubuntu\ 14.04\ MSFT\ ODBC\ Driver.sh 

ライセンス確認があるので、「YES」とタイプしておしまい。

image

利用手順

普通に使います。

image

sqlcmd -S xxxxxx.database.windows.net -U xxx -P xxxxxxxxx

bcp も同じですね。

imageimage

参考リンク

SQL Azure

SQL Server Data Tools (SSDT)は、Visual Studioに統合されたデータベースの開発支援ツールです。SQL Server Data Toolsのプレビュー更新2015年8月版では、インストーラーの変更とBusiness Intelligence(BI)ツールをVisual Studioに統合する機能追加がされました。

ダウンロード

概要

インストーラーが変更されてます

データベースツールは、SQL Server 2015からSQL Server 2016、Azure SQL Databasesをサポートしています。Business Intelligenceツールについては、SQL Server 2016には限定的な対応となっていますが、RTM時には対応します。

DBとBIに対応するインストーラーは、Visual Studio 2015のみの提供です。Visual Studio 2013に両方インストールするには、別々のインストーラー(SSDTとSSDT-BI)を使用してください。

参考サイト

SQL Azure

Azure SQL Elastic Database Poolでは、性能の下限と上限を選択し、突発的な負荷にも対応できるように柔軟な性能を得ることができます。詳細については、「Azure SQL DB – Elastic Database Poolについて」で紹介しています。

T-SQLでデータベースを作成する際に、Elastic Poolを指定できるようになりましたので紹介します。

SQL Elastic Database Poolの作成

今のところ、Elastic Database Pool事態は、事前にPortalで作成しておく必要がありそうです。T-SQLで、Elastic Database Poolを作成する構文はなさそう。

image

データベースの作成

CREATE DATABASE database_name
{
   ( [, ...n]) 
}
 ::= 
{
      MAXSIZE = { 100 MB | 500 MB | 1 | 5 | 10 | 20 | 30 … 150…500 } GB  
    | EDITION = { 'web' | 'business' | 'basic' | 'standard' | 'premium' } 
    | SERVICE_OBJECTIVE = { 'shared' | 'basic' | 'S0' | 'S1' | 'S2' | 'P1' | 'P2' | 'P3' | { ELASTIC_POOL(name = ) } } 
}

Elastic Database Poolに新しいデータベースを作成するためには、SERVICE_OBJECTIVEで、ELASTIC_POOL でプール名を指定します。次の例では、hogeがプール名となっており、「’」で括らずに指定します。

image

データベースの設定変更

ALTER DATABASE database_name 
{
    MODIFY NAME =new_database_name
  | MODIFY (  [, ... n] ) 
  | COLLATE collation_name
  | SET {  } 
}

 ::= 
{
      MAXSIZE = { 100 MB | 500 MB |1 | 5 | 10 | 20 | 30 … 150 … 500 } GB  
    | EDITION = { 'web' | 'business' | 'basic' | 'standard' | 'Premium' } 
    | SERVICE_OBJECTIVE = { 'shared' | 'basic' | 'S0' | 'S1' | 'S2' | 'P1' | 'P2' | 'P3' | { ELASTIC_POOL(name = ) } } 
}

Elastic Poolリソースの確認

論理サーバー上にあるすべてのElastic Database Poolの私用統計情報を返します。Elastic Database Pool毎に、5分間のCPU、IO、Log、ストレージ、リクエスト数、レスポンス数を提示します。

SELECT * FROM sys.elastic_pool_resource_stats 
ORDER BY end_time DESC;

image

参考サイト

SQL Azure

Azure SQL Database を使用する場合の推奨事項に、リトライロジックを組み込み、クエリ発行に失敗しても複数回リトライをするというものがあります。

実装方法としては、Entity Framework のリトライ機構を使用するか、自分自身で実装する方法の2種類あります。

今回紹介するのは、Azure のドキュメントに掲載されたサンプルです。MSDNのサンプルは、そこで説明したいことが明確になることを目的としていることが多く、そのまま使用できないことが多いです。しかし、今回紹介するのは、そのまま利用しやすいようになっています。

(発行クエリの定義方法については書き換えないと使えませんが。)

SQL Azure

Azure SQL Data Warehouse (プレビュー版)がレジストされたので、こちらのファーストガイドを参照しながら、環境構築をして触り始めました。Azure SQL Data Warehouse については、概要を一度紹介済みなのでそちらを見てください。

もしくは、MSエヴァの井上さんがスライドにまとめているので、そちらを参照しても良いと思います。

レジスト完了のメール通知

Azure SQL Data Warehouseの登録が完了すると、メールが届きます。
プレビュー版では、レジストする Azure SQL Database のサーバーを個別指定して、レジストしてもらう流れになっています。

image

Azure SQL Data Warehouse サービスのプロビジョニング

次にポータルから、SQL Data Warehouse を追加します。

image

 

個別レジストなので、使用できるAzure SQL Database サーバーも限定されています。

image

SQL Data Warehouse が作成できたら、次に先ほど指定した Azure SQL Database サーバーのファイアーウォールにIPを指定して、アクセスできるようにします。

image

SQL Data Warehouse への接続

Azure SQL Data Warehouse に接続するには、SQL Server Data Tools (SSDT)のバージョン12.0.50623移行が必要です。

Visual Studio のSQL Serverオブジェクトエクスプローラーから、Azure SQL Data Warehouseに接続します。

image

資格情報を入力すると、接続できます。

image

 

もしくは、Azure PortalのVisual Studioで開くから、簡単に接続することもできます。

image

サンプルデータのインポート

サンプルデータをインポートします。

ここからサンプルデータをダウンロードします。ダウンロードしたAdventureWorksPDW2012.zipファイルを解凍します。解凍したファイルの中にある「aw_create.bat」を修正し、資格情報を入力します。

image

バッチをダブルクリックして実行します。
1分ぐらいはコマンドウィンドウに何も表示されませんが、気にせず待っていてれば進行します。

バッチが終了したらクエリを実行して、データインポートが完了しているか確認します。

SELECT * FROM DimEmployee;