tool

追記SQL Server Management Studio 2015年12月版リリースされています。

 

SQL Server Management Studio 2015年10月版がリリースされました。
今回のバージョンでは、9月リリースのすべての更新が含まれています。
さらに、新しいモダンなインストーラーの提供、Always Encrypted カラムウィザード、Stretchデータベースウィザードといくつかのバグフィックスが提供されます。

SQL Server Management Studioは従来、SQL Serverのメジャーバージョンに紐づいてリリースされてきました。
それでは、Azure SQL Databaseへの柔軟な対応がしにくいため、SQL Server製品から切り離されて、ツール単独でのリリースサイクルになりました。
最近では、月1回のペースで、○年○月版という形で、SQL Server Management Studioがリリースされています。

 

ダウンロード

Download SQL Server Management Studioから、ダウンロードできます。(数日以内に9月版から10月版に更新されます)

インストールウィザード

SQL Server Management Studio のダウンロードとインストールプロセスをシンプルにする、軽いモダンなWebインストーラーを提供します。

 

Always Encrypted カラムウィザード

特定の列のクライアントサイドでの暗号化、複合化を可能にします。
Windows証明書ストアーもしくはAzure Key Vaultに格納する、列マスターキーと新しい列の暗号化キーを作成します。
Always Encryptedの詳細はMSDNライブラリを参照してください。

 

新しい列マスターキー

データをセキュアに維持するために暗号化キーをローテーを簡単にできるAlways Encryptedデータベース用の列マスターキー(CMK)ローテートダイアログを用意しました。

 

Stretch データベースのモニタリング

Azureクラウドへのデータ転送のトラブルシュート、監視をするためのStretchデータベースモニタリングが追加されました。

 

Stretchデータベースウィザードの改善

既定のMicrosoft Azure サブスクリプションではない、Microsoft Azureサーバーを選択できるようになりました。

 

バグフィックス

Live 実行クエリプラン、データベースのスナップショットのスクリプト化、Query Datae Storeユーザーインターフェイスの表示バグを修正しました。

 

過去履歴

Windows Azure

image

MSDNに、Azure Active Directory を削除するための手順を説明したブログ「Delete an Azure Active Directory」が投稿されています。Azure Active Directory を削除するにはポータルで操作する前に、Azure Active Directory PowerShellを使用する必要があります。

課題

Azure Active Directory を削除しようとすると、イラッとするかもしれません。
消してみましょう。

 

エラーが出ます。

image

 

すべてのユーザーを消しても、まだエラーが出ます。

image

 

アプリケーション一覧からすべてのアプリケーションを削除しましょう。「自分の会社が所有するアプリケーション」を選択し、フィルター表示します。
アプリケーションはありません。

 

image

 

しかし、「自分の会社が使用するアプリケーション」には登録があります。

 

image

 

解決策

Azure Active Directory PowerShellを使用します。

image

 

Azure Active Directory Module for Windows PowerShell (64-bit version)からダウンロードして入手することができます。

 

deleteというユーザーを作成します。

 

image

 

image

 

image

 

image

 

パスワードを変更する必要があります。
https://login.microsoftonline.com/ にログインして、パスワードを変更します。

 

image

 

このユーザーは、PowerShellでログインするのに必要です。

 

Import-Module MSOnline
Connect-MsolService

ログインプロンプトが開きます。Global Adminのユーザー名とパスワードを入れます。

 

image

 

Get-MsolServicePrincipal | Remove-MsolServicePrincipal

大量のエラーがでますが無視してください。

 

image

 

ポータルにアクセスし、ユーザーを削除します。

今度こそ削除できます。

image

Windows Azure

Azure DSC 拡張機能

Azure DSCは、Microsoft Azure PowerShell SDKの一部で、Azure仮想マシン用のPowerShell Desired State Configuration拡張機能です。

Azure DSC Extension v2.8

エクステンションの依存関係を指定して、依存関係のマッピングに従って関連ファイルをダウンロードします。

Azure DSC Extension v2.7

Windows Management Framework 4.0の最新バージョンへのサポートを追加しました。JSONファイルで、「WmfVersion」プロパティでフレームワークのバージョンを指定(4.0、5.0PP、latest)します。(参考:How to use WMF 4 with Azure DSC Extension in Azure Cloud Service Manager (ASM)

Azure DSC Extension v2.6

いくつかのネットワークの問題を分析するのに役立つデバッグ情報を追加しました。今回のアップデートには追加機能はありません。

Azure DSC Extension v2.5

マイナーアップデートで機能追加はありません。

ネットワーク問題を解析するのに役立つデバッグ情報の追加といくつかの軽微な更新です。

Windows Management Framework 5.0 Production Previewに依存しています。

仮想マシンにインストールするには、「Set-AzureVMDscExtension -Version 2.5」を使用します。

Azure DSC Extension v2.4

機能追加はありません。

Windows Management Framework 5.0 Production Previewに対応しました。

仮想マシンにインストールするには、「Set-AzureVMDscExtension -Version 2.4」を使用します。

Azure DSC Extension v2.3

Windows Server 2016 Technical Previewに対応しました。

Windows Server 2016 で拡張機能を使うのに、WMFが不要になり、仮想マシンの再起動が不要になりました。そのため、拡張機能を使い始めるのにかかる時間がとても短くなりました。

Windows Management Framework 5.0 Preview April 2015に依存しています。

Azure DSC Extension V2.2

Publish-AzureVMDscConfigurationコマンドレットに新しい機能が追加されました。

Azure Resource Manager(ARM)で、Azure DSC拡張機能でデプロイするコマンドレッドセットが提供されます。

リリース履歴(リリースノート)

2015/10/21 Version 2.8

2015/10/01 Version 2.7

2015/09/20 Version 2.6

2015/09/16 Version 2.5

2015/09/01 Version 2.4

2015/08/22 Version 2.3

2015/08/17 Version 2.2

2015/07/21 Version 2.1

2015/06/17 Version 2.0

2015/05/15 Version 1.10.1

2015/04/29 Version 1.9

2015/04/28 Version 1.8

2015/02/24 Version 1.7

2015/02/23 Version 1.6.3

2014/11/20 Version 1.5

2014/10/23 Version 1.4

2014/10/13 Version 1.3

2014/10/07 Version 1.2

2014/09/08 Version 1.1

2014/08/01 Version 1.0

参考サイト

Windows Azure

image

Microsoft FEST 2015 で、砂金さんが実施した「今から始める Azure Machine Learning 最初の一歩」をまとめてみました。

How-old.net という写真から年齢を抽出するサイトがあります。
まだ見たことがない人はぜひ見てください。
見て欲しいのは、年齢ではなくて、The magic behind How-Old.net という、How-Oldの技術構成を説明したページがありますので、そこはぜひ見てください。

Machine Lerningは、何に使えるのでしょうか?

いろいろ使えます。

  • 異常検知(ログが流れていて、ぽっと異常なログが出た時に検知)
  • パターン認識(ルールに基づいてモデルを作って、そのモデルにあたるのは何%ですか?)
  • リコメーションシステム
  • 売上予測(人間よりはよほどうまくやれます)

 

image

Machine Learning は、Azure Machine Learningだけ詳しくてもダメで、周辺のデータの扱い方やほかのアプリからどうやってAPIでアクセスするのかを理解する必要があります。
VisualizeではPowerBI、データ送信にはDataLakeというテクノロジーも抑えておく必要があります。

 

image

Azure Machine Learning がやろうとしていることは、機械学習の民主化です。
今までも、SassやSPSSでもできたけど、誰でも簡単にできるようにしようと思っています。

Azure Machine Learning は、皆さんに世の中を変えるようなアルゴリズムを0から考えてもらおうとは思っていません。
誰かが作ってくれたアルゴリズムを気軽に使えるAzure ML Studioがあって、ここでうまくデータを扱えるサイエンティストがいてくれたら良いと思います。

Azure ML との3つのかかわり方

image

  • APIをただ叩くだけでいい人
  • テンプレートを利用し、カスタマイズして利用する人
  • ゼロからモデルを作成する人

 

APIをたたく

image

http://gallery.azureml.net というサイトがあります。

image

例えば、コンピュータービジョンAPIで、Face APIというものがあります。
これは、アダルト画像ではありませんという判定です。
単に肌色識別だけでやっていると、ご認識しそうですがちゃんと判定されています。

 

image

Face APIを使ってみました。
Face APIからは属性データが返ってきます。
アプリケーションからロジックとして属性データを利用して、加工・抽出することができます。

 

image

難しいことはマイクロソフトが裏側でやってくれるというのを信じてもらえるのなら、すでに多くのAPIが組み込み可能な状態で多くのAPIが提供されています。

 

image

まだ日本語に対応していませんが、英語の文章を与えると気分が上がったり下がったりしているのを分析しましょうというAPIです。
Happy Friday と書くと、95%ぐらいの確率で能天気ですね。
悪いことをかくと残念そうねと判定した結果が返ってきます。

 

テンプレートを使う

image

やろうと思うとそれなりに大変です。
一見便利そうなんですが、いろんな前提知識がないとうまく扱えない代物です。

 

image

モデルを作るという作業は決められたとおりに組めば終わりという代物ではなくて、モデルを作って、精度が悪いので、もう少し工夫をしてモデルを改良して精度をあげましょうという形で、ぐるぐる繰り返す作業が必要になります。

 

image

実際にやってみましょうか。
ギャラリーにいくつかのサンプルが提供されています。

 

image

異常検知をするパッケージを見てみましょうか。上のほうで、データを読み込んでいます。

 

image

このあたりで、One-Class Support Vectorを使って予測学習モデルを作成しています。

 

image

一番下のほうには、モデルを評価するEvaluate Modelがあります。

image

これを実行しデータをみると、Rとかをしている人には見慣れたグラフが表示されます。

 

image

言葉的にわかりやすいところで、Accuracyで確からしさが70%というの示してます。

データを読み込むデータセットがついているので実行することができます。
データを増やしたり減らしたりしたらどうなるか?モデルを変えたらどうなるのかというのを繰り返しテストして評価できます。

 

image

今度は売上予測モデルを見てみましょう。
Rスクリプトというのがあります。

 

image
これはRスクリプトをぺろっとはっつけてあります。これはマイクロソフトのAPIをあまり利用せず、自分たちがすでに持っているスクリプト、ライブラリをそのまま使えます。

 

学習方法

image

ビジネスシナリオはいったんおいておいて、もっと学習したいんだ!って場合は、サンプルがたくさん提供されています。このサンプルをまずはいじり倒してください。

 

アーキテクチャ

image

いろんなビジネスシナリオで使えるのなのですが、バッチなのかリアルタイムなのかを意識してください。
学習結果に基づいて、リアルタイムに予測することはできます。
学習をリアルタイムにするのは結構大変です。
モデルを書き換えるのは、週次、月次でやろう。モデルを変えていくのはバッチでやろう。
予測は一か月に待ってくださいてのはビジネスに合わないのでリアルタイムでやりましょう。

 

ゼロからモデルを作成する

image

機械学習という広いカテゴリををなんとなく2つに分けると、教師あり学習(スーパーバイゾン)か、教師無し学習かの2つに分けます。

教師あり学習はラベルが重要です。
正解をわかっているデータを用意できるのなら、そのサンプルの正解(こういう行動をしたらやめる/やめない、こういう顔立ちは日本人だ男性だ)がわかるのなら教師あり学習。

まったく正解がない場合は、どーんとあるデータから特徴量を見つけながら、その特徴量がなぜ発生しているのかを紐といていって、パターンが分かっていくという分析の場合は正解がなくてもできる。
ただ、やれることは限られるので、なんとかラベルリングしたデータを用意できるといいですね。

 

image

レコメンデーションしましょう!となると、いろんな方法があります。
いろんな方法がある中で、どれを選びましょうかというのは自分で選ばないといけません。

ルールベースというのは、If文でロジックを書くものですね。
協調フィルタリングはAmazonで有名になったもので、自分と似たような人を見つけて、そこから購買パターンを導き出すものですね。

 

image

結果の評価が一般人には大変なんですよね。
どの値をどう見たらいいのかがわかりにくいですもんね。何がどう正解なのかがわからない。

基本的にはROC曲線てのがあって、AUCの値が大きければ大きいほど正解率が高いモデルというふうに規定されます。
正解率が高いであって、100%ではないんですね。
機械学習を通して、ビジネス的問題を解決するときに、100%保障しないといけないシナリオでは使いにくいですね。
正解率が例えば91%だとしたら、9%は外れることを前提に、どこに適用するのかを考える必要があります。

 

image

砂金モデルがあります。
砂金モデルに投入するデータは、モビルスーツです。
このモデルは二項分類で、このモビルスーツは連邦っぽいか、ジオンっぽいかを判定するものです。

データを用意するのに面倒な作業が発生します。
きちんとしたデータを用意しないといけないのですが、それをやりきるだけのパッションを与えてくれるデータが必要になります。
自分で学ぼうというときには、自分が楽しめるものを選定するといいでしょ。
(お金好きなら株、ギャンブル好きなら競馬etc

 

image

まずは、Readerでデータの入り口を定義します。
この例では、Azure Blobからデータを取得してきています。

 

image

次はノイズを減らしています。
利用するデータカラムを4列から2列にし、Nullや0だったらスキップするなどを定義しています。
データのクレイジングと呼んでいます。

 

image

スプリットという処理をしています。
学習するデータと、予測だけするデータに分けています。

 

image

どの項目を正解と定義するかを定義します。

 

image

モデルをスコアリングします。このモデルがどれぐらいの制度があるのかをスコアリングします。

image

スコアの評価結果を確認します。

 

image

実際に実行してみましょう。どのステップを今処理しているのかが見えます。
AzureMLは、実行している時だけに課金されます。モデルを作成している時には課金されません。

 

image

Web Service output っというのを定義しています。
Webフロント用にWeb Serviceとしてさらしてくれます。

 

image

特徴的なのは、Excelマークですね。
これをクリックしてダウンロードして開いて、マクロを実行してみましょう。

 

image

インプットとアウトプットを定義されています。
値をいれると結果が表示されます。

 

image

RX-75といれると、連邦ですねっと結果がでてきますね。

 

image

実際にやってみたい人はレコメンデンションシステムの丁寧な手順書がありますので、やってみてください。

 

image

マシーンアルゴリズムチートシートがあります。
http://aka.ms/AzureMachineLearningCheatSheet

SQL Azure

Azure SQL Database で、elastic database query でいくつかの改善が発表されました。
今回の改善により、Azure SQL Database の elastic database quey は、垂直分割も水平分割も同じコンセプトで、同一表面上で実現できるようになりました。

  • データベースをまたがったクエリのサポート改善
  • Elastic Query がStandardとPremiumパフォーマンス帯で提供開始
  • リモートデータベースのテーブル名やスキーマ名にエイリアスを設定できるようになった
  • リモートテーブル参照時に、T-SQLパラメーターを含んだクエリ性能が改善
  • リモートテーブルから多くの行を参照するクエリの性能改善
  • sp_execute_fanoutプロシージャーでのパラメーターサポート

複数データベースへのクエリ発行

ローカルのテーブルとリモートのテーブルを結合して参照するクエリに対応しています。

Cross-database queries in Azure SQL Database

複数のデータベースを参照して、データを参照する次の図のような構成も可能になりました。

Querying remote databases in Azure SQL Database

従来から、Elastic Query が対応していた水平パーティ初認具のサポートも継続しています。

 

HorizontalPartitioning

リモートテーブルへのクエリ発行方法

リモートにあるテーブルを参照する方法として、外部データソースを経由して指定します。
イメージ的には、リンクテーブルと同じような感じですね。
外部データソースの作成にはDDLを使用し、一つのデータベースのみを指定します。

CREATE EXTERNAL DATA SOURCE RemoteReferenceData
WITH
(
    TYPE=RDBMS,
    LOCATION=’myserver.database.windows.net’,
    DATABASE_NAME=’ReferenceData’,
    CREDENTIAL= SqlUser
);

リモートテーブルは外部テーブルで定義します。外部テーブルの定義には、外部データソースを指定します。

CREATE EXTERNAL TABLE [dbo].[zipcode](
    [zc_id] int NOT NULL,
    [zc_cityname] nvarchar(256) NULL,
    [zc_zipcode] nvarchar(20) NOT NULL,
    [zc_country] nvarchar(5) NOT NULL
)
WITH
(
    DATA_SOURCE = RemoteReferenceData
);

image

外部テーブルは、すべての読み取り専用のクエリを発行することができます。