【AutoML】チュートリアルを使って分類モデルを作ってみる【Azure】

今回はAutoMLのチュートリアルをやってみたいと思います。
この記事ではAzureMLStudio上での操作で実行をしていきます。

ワークスペースやクラスターの作成、実行方法等は最初の記事を参考にしてください。

データの追加

それではまずはAutoMLのジョブを作成していきます。
image.png

左上の新規機械学習ジョブを開きます。

次にデータの選択、登録です。
image.png

今回はtitanicのデータを用意してみたいと思います。
以前の記事でデータストアに登録しているのでそちらを持ってきたいと思います。
image.png
データセットの名前を決めて
image.png
データを選択して
image.png
データの設定をします。
この時データ内に複数行(改行してるデータ)があるかを指定します。
存在する場合は別途処理をするようなので速度が低下するようです。

image.png

その後学習に利用するデータの設定をします。
学習に含めるか、データの型の指定を行えるようです。
また日付型の場合は形式の設定ができるみたいですね。
データの型は初期値としておおむね正しいものが設定されているようなのであまり気にしなくてもよさそうです。
今回はSurvivedの項目を整数からブールに変更してみました。
image.png
最後に確認して登録します。
image.png
ちゃんと追加できました。

ジョブの構成

続いてジョブを設定していきます。
image.png
実験の名前と予測対象のカラム名を指定し、学習に用いるコンピューティング先を指定します。

タスクと設定の選択

ここではどのアルゴリズムで学習させるかを選択できるようです。
image.png

予測対象から自動で最適なものを選んでくれてるようです。
異なるものが選択されていればここで修正できますね。
今回はこのまま分析で行います。
ディープラーニングの有無も選べます。
今回はなしで行きましょう。

検証とテストの種類を選択

ここでは検証方法とテストデータの設定ができます。
image.png

検証にはいくつか種類があるようですが自動という項目があるので今回はこれで行きたいと思います。
image.png

テストデータについては、自分で指定するか分割するかを選べるようです。
今回はテストデータ30%で分割してもらいましょう。
その後実行します。

image.png
実行できました。
完了まで待ってみましょう。

結果の確認

実行終了までに55 分 48.33 秒かかりました。
全部で58個のモデルが作られているようです。
image.png
一番良かった結果には説明がついてるようです。
こちらを確認してみましょう。

説明プレビュー

説明タブではデータについてが可視化されているようです。
重要度やデータの分布が確認できるようです。
image.png

メトリック

メトリックでは精度指標が可視化されて確認できるようです。
image.png

データ変換

データ変換タブではどのようにデータが処理されているかを可視化してくれています。
image.png

テスト結果

テスト結果タブではテストデータを用いた結果を可視化してくれています。
表示内容はメトリックと同じようですね。
image.png

成果物

出力とログを確認してみたところ、model.pklというモデルファイルがありました。
このモデルが使えると思ったなら、これを利用して運用することができるのかなと思います。
image.png

デプロイ

作成したモデルをデプロイします。
リアルタイムエンドポイントとwebサービスへの配置がありますが、今回はwebサービスへの配置を行ってみたいと思います。
モデルのページからデプロイを選択します。
image.png

名前等の設定を行うとデプロイができます。
image.png

デプロイしたモデルのテストを行ってみます。
image.png

実行結果がjsonで帰ってきてますね。今回はfalseになったようです。

まとめ

今回はAutoMLをStudio上で実行してみました。
58個もモデルを作ってるためか時間はかかってしまいましたね。
このモデルの作成数についてですが、ジョブの作成時にタスクと設定の項目に追加の構成設定をする項目がありました。
中身を見てみると、終了の目標閾値や実行したいモデルの種類を選択できるようです。
image.png

こちらを設定することで短時間で任意のモデルを確認することができるようになりますね。
次回はこれらをpythonから実行してみたいと思います。


【AutoML】AzureAutoMLをpythonから操作してみる【python】

今回は前回やったAutoMLをpythonのコード上から操作して学習、デプロイまでやってみたいと思います。
バージョンだったりで踏んだり蹴ったりだったので割と細かく書き残しておきます。
スクリプトだけ知りたい方は最後にまとめて書いてあるのでそちらをご確認ください。

バージョン
windows 10
python Python 3.6.7
pip 21.3.1
azure-cli 2.39.0

※必要モジュールを再度洗いなおしたので修正しました。
これで完璧です。

インストールしたモジュールとバージョンの一覧
[crayon-633f8fbc3def5925505226/]

モジュールのインストール

azureのモジュールをインストールしていきますが、その前に準備が必要です。
まずRustのコンパイラが必要です。こちらからインストールしましょう。

pipは最新版にしましょう。私はこれのせいでエラーはいてました。
これでこけてるときはopensslがどうのこうのというエラーが出てきました。

[crayon-633f8fbc3defd311650370/]

準備ができたらazureのモジュールと必要モジュールをインストールします。
これにはめちゃくちゃ時間がかかっていたので、時間に余裕があるときにやっておくことをお勧めします。
20分以上はかかったと思います。

[crayon-633f8fbc3deff386555550/]

ワークスペースへの接続

それではAutoMLを操作していきましょう。

まずは利用するワークスペースに接続します。
ディレクトリ配下にconfig.jsonがある場合は

[crayon-633f8fbc3df01422361442/]

ない場合は、

[crayon-633f8fbc3df03942346717/]

とすることで接続ができます。

クラスタの登録

続いて学習時に利用するクラスタを用意します。
今回はすでに作成されているクラスタを持ってきます。

[crayon-633f8fbc3df05123101455/]

データの準備

次に学習に用いるデータをデータストアに登録します。
学習データはTabularという型に変換することで利用ができるようです。
今回のデータはlocalに用意したタイタニックの生存予測データを用いたいと思います。

[crayon-633f8fbc3df07592679106/]

これで学習に用いるデータの準備ができました。

AutoMLの設定

続いてAutoMLの設定をしていきます。
まずは実際のコードを確認しましょう。

[crayon-633f8fbc3df09378924870/]

パラメータについては今回利用しているものについてのみ説明していきます。
task: 学習の種類を決めます。今回は分類になるのでclassificationを選択しています。ほかにはregression(回帰)、forecasting(時系列)があります。
iterations: 実行するパラメータとアルゴリズムの組の数を設定します。指定しない場合は1000回実行されるようです。今回は5個だけやってみます。
primary_metric: 何を基準にしてモデルを選択していくかの設定です。設定できる項目についてはこちらに記載されています。今回はAUCを使いましょう。
compute_target: 学習を実行するクラスターの指定です。先ほど取得したクラスターを設定しています。
experiment_timeout_minutes:実験終了までにかかる最大時間を設定します。リファレンスではexperiment_timeout_hoursになっていますが、自分が利用したバージョンではこのようになっていました。分単位で設定します。今回は60分にしました。
blocked_models: 実行しないアルゴリズムを設定できます。ここに設定することで学習から省くことができるので相性の悪いものは除くことができます。
training_data: 学習データを選択します。先ほど登録したデータを設定します。
test_size: 学習データのうちテストに使うデータの割合を設定できます。設定しない場合はモデルの作成終了後にテストを行わず、テスト結果を確認できません。今回は30%をテストに利用します。
label_column_name: 予測対象を指定します。今回はSurvivedです。
n_cross_validations: 検証データを指定しなかった場合に実行する交差検証の回数です。今回は2回にしました。

AutoMLの実行

これでAutoMLの実行設定ができたので実行してみましょう。

[crayon-633f8fbc3df0c758911156/]

こちらでAutoMLを実行することができます。

[crayon-633f8fbc3df0e946655016/]

このように実行結果が返ってきます。
ポータルを見に行くと実行が始まってることが分かります。
image.png

コード上から実行状況を確認してみましょう。

[crayon-633f8fbc3df10014829670/]

実行IDは先ほど出力されたIDの値になります。
返ってくる値の種類は結構あるのでこちらのリファレンスから確認するといいと思います。

ちなみにIDだけが欲しい場合は実行時に返ってきたrunに対してrun.idのようにすることで取得できます。

モデルのメトリックの取得

実行の終了が確認できたら結果を見ていきたいと思います。
まずは複数作成されたモデルから最も良かった結果を取得していきます。

[crayon-633f8fbc3df14112870511/]

これで最も良いモデルを取得できました。
早速メトリックを確認してみたいと思います。

[crayon-633f8fbc3df16094641930/]

こちらを実行するとメトリックのデータが辞書形式で取得できます。

[crayon-633f8fbc3df18145036638/]

このように帰ってきました。この中から必要な情報を取得して評価に利用することができますね。

テスト結果の取得

今回はテストデータを分割して設定しているので実行後にテストが行われています。
そのテスト結果を確認してみたいと思います。

[crayon-633f8fbc3df1a555360068/]

まず最適なモデルから子実行を取り出します。
子実行のうちテストの実行のみ取得したいのでタグを利用してフィルターします。
取得したデータからパスを指定してファイルをダウンロードし、実行結果を確認することができます。
image.png
こちらが実行結果の一部です。
Survived_predictedが予測結果、0_predicted_proba1_predicted_probaがそれぞ0と1の確率になります。

これで実行結果を確認することができました。

モデルの登録

さて、いいモデルが作れたのでデプロイしてAPIとして利用していきたいですね。
デプロイする前にまずはこのモデルを登録する必要があります。

[crayon-633f8fbc3df1d608402896/]

ワークスペースから特定の実験を取得し、実行内容を取得します。
そこから最も良かった子実行を取得し、それをモデルとして登録します。
こちらを実行したらポータルのモデルの項目を確認してみましょう。
image.png
このように登録できていれば成功です。

モデルのデプロイ

登録したモデルをデプロイしていきます。
今回行うのはポータル上ではwebサービスに配置となっているデプロイ方法になります。

[crayon-633f8fbc3df1f357627574/]

まず、ワークスペースから登録したモデルを取得します。
その後、デプロイ時、リクエスト取得時に実行する内容を書いたスクリプトファイルを登録します。
デプロイするスペックを指定し、デプロイを開始します。

スクリプトファイルについても確認しておきましょう。

[crayon-633f8fbc3df21113585640/]

initにはデプロイ時にモデルを登録するスクリプトが書かれています。
runにはリクエスト時に実行されるスクリプトが書かれています。
runの中を少し見てみましょう。
まずリクエスト時に送られてくるbodyが引数に入ります。
データをjson.loadsで辞書型に戻し、その中からkeyがdataのデータを取得します。
今回はこれがcsv形式のテキストであると想定しています。
なのでそのcsvテキストデータをpandasを使ってDataFrame形式に変更します。
その後predictに対してDataFrameを投げることで予測結果を取得することができます。
predictの返り値は予測結果のみのlistになっているので、わかりやすい様に予測時に投げたデータに追記し、そのデータを返すようにしました。

それではこちらを実行してみましょう。
ディレクトリの構造やファイル名によってはsrc/score.pyの部分を変更する必要がある点に注意してください。
またdeployにはそこそこ時間がかかります。
今回は約10分かかりました。
デプロイができたかポータルで確認してみましょう。
image.png
デプロイ状態がちゃんとHealthyになっていますね。
この状態であればテストすることが可能です。

デプロイしたモデルを使ってみる

それでは実際に利用してみましょう。
ポータル上からテストすることも可能ですが、今回はpythonから実際にAPIをたたいてみたいと思います。

[crayon-633f8fbc3df25523956971/]

コードのほとんどはポータルの使用タブに記載されてるものとおんなじです。
今回テストに利用するデータにはSurvivedの項目がないものを利用します。

image.png
このようなデータですね。

スクリプト内の変えている部分についてのみ見てみましょう。
まずcsvデータをpandasを用いて読み取ります。
その後辞書の形でdataの中にcsvのテキストデータを入れ込んでます。
それをjson.dumbsを用いて文字列にし、エンコードします。
そのデータをリクエストに投げるという形ですね。
実際に実行してみましょう。

[crayon-633f8fbc3df27903992266/]

このように帰ってきました。
返ってきた内容をそのままprintしているので見ずらいですが、Survivedという項目が追加されており、その項目に予測結果の値が入っていることが分かりますね。

まとめ

今回はpythonからAutoMLでの学習、評価、デプロイ、利用を行ってみました。
pythonからも一通りの実行ができたので、サービスに組み込んだり自動でモデルの更新がしていけそうですね。

最後に今回利用したスクリプトをファイルごとに載せて終わりにします。

利用スクリプト

[crayon-633f8fbc3df2a878412144/]
[crayon-633f8fbc3df2c853649313/]
[crayon-633f8fbc3df2e004148996/]
[crayon-633f8fbc3df30287153974/]
[crayon-633f8fbc3df32263477671/]
[crayon-633f8fbc3df34962564525/]

Azure Databricks とは?使用するメリットや基本的な使い方について解説

はじめに

本記事では Azure Databricks についてまだ馴染みのないデータに関わるエンジニア向けに、Databricksについての概要の解説や基本的な操作方法について説明していきます。

少々ボリュームはありますが、本記事のみで Azure Databricks が一通り使えるような内容となっております。

注意点について

  • Azure Databricks のワークスペースは既に準備されているという前提のもと進めていきます。ワークスペースの準備がまだお済でない場合、こちらに Azure databricks ワークスペースの作成方法が記載されていますので参考にしていただければと思います。
  • Databricks は大規模データの分析時に真価を発揮するサービスにはなりますが、今回はチュートリアルとして小さなサンプルデータを使用します。
  • Python や SQL の知識があると本記事の内容はより理解が深まります。
  • 今後のアップデート状況などにより一部 Databricks 上の UI が変更される可能性があることをご了承ください。

本記事のゴール

以下を理解することを想定しております。

  • Azure Databricks とは
  • Databricks を使用するメリット
  • 基本的な Azure Databricks の操作手順
    • クラスターの作成
    • DBFS 内にデータのアップロード
    • ノートブックの立ち上げ
    • データの簡単なETL処理(読み込み-加工-DBへ保存)
    • 作成したテーブルの可視化

Azure Databricks とは

Databricks は Databricks 社によって開発された統合データ分析プラットフォームです。
このプラットフォームを Azure のクラウドサービスとして最適化して利用できるものにしたのが Azure Databricks になります。

Azure Blob Storage を中心としたデータの ETL 処理や、機械学習モデルの開発・管理、Redash という BI ツールの機能を用いた可視化など、すべて Databricks 内で作業が完結できるのが主な特徴になります。

image.png

Databricks を利用するメリット

Databricks には今までデータを扱う上で問題となっていた点を解決するような様々な機能を利用できることがメリットとなります。

  • 分析用途による他サービスとの連携が必要なく Databricks で完結可能
  • Apache Spark による分散処理をベースにしており、大規模なデータを高速で処理することが可能
  • Delta lake を利用した信頼性の高いデータ処理が可能(後ほど解説 *1)
  • ノートブック上で複数の言語(Python, R, SQL, Scala)を使い分けられる
  • 複数人でワークスペースを利用できるので共同開発が可能
  • ノートブックのバージョン管理、ジョブの実行にも対応

本記事ではすべてのメリットについて解説できるわけではありませんが、Azure Databricks を使い始める上で重要になる基本的な使い方の部分を解説できればと思います。

基本的な Azure Databricks の操作手順

クラスターの作成

クラスターとは

クラスターとはノートブックで行う処理やデータベースの操作などを行うために必要な計算リソースになります。
実際に処理は裏側で VM によって行われ、クラスターなしにデータを扱うことはできません。
まずはデータを扱う前にクラスターの作成から始めます。

クラスターの作成

Azure Databricks のワークスペースを開き、左側の項目にある「Compute」とあるのでクリックします。
image.png

「Create Cluster」をクリックします。
image.png
クラスターの詳細を決める画面になりますが、以下の画像のように設定しました。
上から順に解説をおこなっていきます。
image.png

  1. クラスター名
    任意で指定してください。こちらでは「test」としております。

  2. Multi node と Single node
    分散処理をするには 「Multi node」を選択します。

  3. Access mode と Single user access
    Access mode では クラスターを対象者を1人に絞る、もしくは共同メンバーと共有できるようにするのかを決定します。また扱える言語も限定することができます。

    本記事では筆者のみしかクラスターを使用しないため「Single user」と指定しています。
    必要に応じて変更してください。

    「Single user」と指定した場合のみ、Single user access でクラスターを扱う対象者を指定できます。

  4. Databricks runtime のバージョン
    バージョンですが、デフォルトのままで特に問題ありません。

  5. Use Photon Acceleration
    より高速なクエリパフォーマンスを実現したい場合に Photon エンジンを利用できます。
    今回必要ないのでチェックは入れません。

  6. Worker type と Driver type
    クラスターには Worker type と Driver type の2種類が存在します。

    Spark において Driver type は処理を細かなタスクへと分解していき、実行するために計算リソースのリクエストを送るなど処理を管理するような役割を持ちます。
    対して Worker type は実際に割り当てられたタスクを実行する役割を持ちます。

    Spark の内部処理についての詳細はこちらの Spark 公式ドキュメントに記載されております。

    クラスターのスペックについてですが、用途によって種類は非常に多いです。
    今回は大きなデータは扱いませんので小さな「Standard_F4」を選択しました。
    今後もし大きなデータを扱う場面で処理の重さを感じればスペックをあげるなどの検討が必要になってきます。

    Worker と Driver で種類を変えることもできます。
    今回は「Same as worker」を選択することによって同じにスペックにしました。

    Driver は 1つのみしか設定できませんが、Worker は複数にすることができます。
    数が多いほどタスクをそれぞれの Worker に分散させていることになります。
    今回は オートスケーリング機能(後ほど解説 *2)を使って Woker 数の最小を1、最大を2にしました。

  7. Enable autoscalling
    オートスケーリング機能 *2 は処理の重さによって自動で Worker 数を調整してくれる機能になります。
    処理に対して必要以上の Worker が起動することを防ぎます。
    コストを抑えることができる便利な機能なのでチェックを入れました。

  8. Terminate after [ ] minutes of inactivity
    こちらはクラスターの操作が一定時間ない場合にクラスターを自動で停止する機能になります。
    Azure Databricks ではクラスターが起動している時間の分だけ課金されていく仕組みです。
    クラスターを使用していないにも関わらず、クラスターの停止を怠ると思わぬ課金が発生することになります。
    そのような思わぬ課金を防ぐためにも自動停止機能は必ずチェックを入れましょう。

    [ ] の中には10から10000の間の数字を入れ、自動停止までの時間を分単位で指定します。
    今回は15分操作がなければ自動停止するように設定しました。

最後に「Create cluster」をクリックするとクラスターの作成完了となります。
クラスター作成の完了には数分かかるため少々お待ちください。
成功すればクラスターを作成する直前の「Compute」の画面から以下の画像のように確認できるようになります。

クラスター名(test)の左に緑のチェックマークがついていればクラスターが起動している状態です。
クラスター名をクリックすると、クラスターの起動、停止、設定の変更なども行えます。

クラスターの作成はこれで以上です。

image.png

DBFS 内にデータのアップロード

DBFS とは

DBFS(Databricks File System の略) とは Databricks のワークスペースにマウントされた 分散ファイルシステムのことです。
実は DBFS にアップロードしたファイルは Azure Blob Storage へ格納されます。
Databricks のワークスペースのユーザーであればワークスペース上から追加の認証情報なしに DBFS へアクセスすることが可能です。

データの準備

これから DBFS 内にデータのアップロードを行っていきます。

アップロードする前に使用するデータの準備から始めます。
こちらから CSV データ(c01.csv)をダウンロードしようと思います。

CSV ファイルを開けてみると時系列に沿って全国と都道府県別の人口の推移が男女別と総数で記録されてるようなデータが確認できました。
image.png

データのアップロード

データが準備できたので DBFS へアップロードしていきましょう。
左のサイドバーから「Data」をクリックし、「Create Table」をクリックします。
image.png

次の画面に進むと、まずファイルを格納する場所を指定します。
DBFS 内は始めからデフォルトでデータの用途別にフォルダ構成がいくつかされてます。
それらのフォルダ構成は DBFS ルートと呼ばれます。

「FileStore/tables」はDBFS ルートのひとつになります。
この画面から新しいデータのアップロードする際は、アップロード先に上記のDBFS ルート上のどこかでなければいけません。

今回は画像の赤枠内に「sample」と記述し、「FileStore/tables」直下に新たなフォルダを作成して CSV データの格納場所に指定しました。
赤枠の中に何も書かなければ「FileStore/tables」直下に新しいファイルがアップロードがされます。
データの整理ができるフォルダ構成になっていれば任意の場所にアップロードしていただいて問題ありません。

次に2つめの赤枠の部分をクリックします。
するとローカルファイルが開くのでダウンロードした CSV データを指定します。
クリックベースで行えるので特に問題なく操作できると思います。

3つ目の赤枠のような文がでたらアップロードの成功となります。
この章での操作は以上になります。

「Create Table with UI」や「Create Table in Notebook」をクリックすると、アップロードしたファイルをテーブルとしてデータベースに書き出すこともできます。
しかし、後にノートブック上でテーブル作成を行うのでこの章では飛ばします。

image.png

ノートブックの立ち上げ

ノートブックではデータの読み込み、加工、データベースへの書き込みなど様々な操作をコードベースで行うことができます。
早速ノートブックを立ち上げていきましょう。

左のサイドバーから、「Workspace」、「Users」とクリックしていきます。
ユーザーご自身のメールアドレスにカーソルを合わせて右クリックします。
すると複数の項目が出てくるので「Create」、「Notebook」とクリックしてください。
image.png
ノートブック名を任意に指定してください。
こちらでは「test1」としております。

次にデフォルトで使用するプログラミング言語を選択します。
選択できる対象は Python、SQL、R、Scala です。
基本は選択した言語でコードを記述します。
しかしノートブック上では選択した以外の言語もマジックコマンドにより使用できます。

今回は Python を指定します。

最後に作成したクラスターを指定して「Create」をクリックしましょう。
image.png

ノートブックが作成できました。
ノートブックを使用する際にクラスター名の左にある丸の色が灰色であれば、クラスターは起動していないので赤枠の部分から起動しましょう。
image.png

作成したノートブックはご自身のメールアドレスの配下に存在しています。
作業を終えて閉じたノートブックは次の作業時に再びここから開くことができます。
複数人で開発する場合でも、共同メンバーのメールアドレスの配下にある他メンバーが作成したノートブックを開くことが可能です。
image.png

ノートブックの作成はこれで終了です。
次の章では実際にノートブックを触っていきます。

データの簡単なETL処理(読み込み-加工-DBへ保存)

ノートブックを使用して、アップロードした CSV データを扱っていきます。

ここからは Python で PySpark のデータフレームを利用したコーディングが中心になってきます。
PySpark は Spark の Python 用 API を使用して、Spark を Python で扱えるようにしたものです。
分散処理を用いて大容量のデータを分析するためのフレームワークである Spark を Python の文法で記述することができます。

Databricks では PySpark がデフォルトで使用できるようになっています。
今回扱うのは少量のデータなので PySpark を使うメリットはあまり感じられません。
ですが今後大きなデータを使うことも想定して PySpark を使っていきます。

データの読み込み

ノートブックを開き、クラスターを起動し終えた状態から進めていきます。
データを読み込みましょう。

以下のコードをセル内に記述します。

[crayon-633f8fbc3e6be765826801/]

まずデータ型を定義するためのモジュールをインポートします。
次に対象データのパスを指定します。
読み込むデータのスキーマの定義もします。

そして「spark.read ~」でデータを読み込んでいきます。
読み込むデータの形式を「csv」と指定、1行目をヘッダー、そして日本語の文字化けを防ぐためのオプションを付けます。
対象データのパスと定義したスキーマを「load」の引数に指定して変数の「df」に読み込みましょう。

読み込んだデータは「display」で出力することができます。
セルの実行は「Ctrl + Enter」で行えるので実行しましょう。

すると以下の画像の下の部分のように読み込んだデータが出力されていることが確認できます。
image.png

データ加工

データが読み込めたので加工に入っていきます。今回はカラム名だけ英語に変更しましょう。
次のセルで以下のコードを実行します。

[crayon-633f8fbc3e6c7938955797/]

image.png

カラム名が変更できたことを確認できました。
今回は Azure Databricks の基本的な操作手順の流れが理解できることを目標としているので加工をここまでにします。
もちろん実現したい要件によってはより複雑なデータ加工が必要とされます。
今後ノートブックで複雑なデータ加工をしていく場合、Databricks というよりは PySpark を深く学んでいく必要があるかと思います。

データの保存

加工が終わったのでデータをデータベースへと保存していきます。

新しいデータベースの作成とデータベースへの移動は SQL で行いましょう。
Databricksではセルの始めにマジックコマンド「%sql」と打つことにより SQL 文を記述できます。
処理によって言語の特性をいかした記述しやすい言語での使い分けが可能になります。

CREATE DATABASE で 「test_db」 という名前のデータベースを作成しました。
そして USE を使用して作成したデータベースに移動しました。

[crayon-633f8fbc3e6cb383828629/]
[crayon-633f8fbc3e6cd299049687/]

image.png
次に作成したデータベースにテーブルを書き出していきます。
まず保存先のパスとテーブル名を決めます。
書き出しには write を使います。
format に「delta」と指定し、先ほど決めた保存先のパスとテーブル名を入れればデータベースに保存可能です。

[crayon-633f8fbc3e6cf232897003/]

image.png

Delta lake について

ここで format に指定した「delta」とは何なのでしょうか。
まず Databricks では、テーブルを保存する際に Delta lake *1 と呼ばれる オブジェクトストレージ上で構築されるストレージレイヤーを利用することができます。

Delta lake の利点は従来の Data lake では実現できていなかった信頼性の高い読み書きを可能にします。
信頼性の高い読み書きとは何かを理解するために、Delta lake に保存された Delta 形式のテーブルの構造を実際に確認してみましょう。

以下の画像は先ほど保存した Delta 形式のテーブルの構造です。
parquet ファイル + ログが記録されたフォルダ という構造で成り立っています。
image.png
Delta 形式のファイルはテーブルのトランザクションをログで管理しているのが大きな特徴になります。

トランザクションが管理されていることによって、

  • 処理に問題が起きたことによるデータ破損の防止
  • 複数の人数で同時にテーブルを操作してもデータの整合性を保つ

といった信頼性の高い読み書きを実現しているのです。

ログをたどることによってテーブルの過去の任意の時点にロールバックすることも可能です。

他にも

  • オブジェクトストレージに構築されるのでストレージコストが安価
  • 構造化・半構造化・非構造化に関わらずデータの集約が可能
  • 高速なクエリの実行
  • バッチ処理、ストリーミング処理を同時に行える

など Delta lake には Data lake と DWH を良いとこ取りしたようなメリットが含まれています。

Delta lake を利用するにはテーブルを保存する際に format を「delta」とすることで Delta 形式のテーブルとして保存することができるのです。

Delta lake について、より詳細な情報はこちらを参照ください。

データベースとテーブルの確認

作成したデータベースやテーブルは Databricks の ワークスペースで確認することができます。
サイドバーの「Data」から作成したデータベースの名前とテーブルの名前があるのがわかります。
image.png

以上でこの章の工程はすべて終了です。

作成したテーブルの可視化

前章で作成した Delta 形式のテーブルを可視化していきましょう。

まず新しいノートブックを立ち上げて、クラスターを起動してください。

必ずしも新しいノートブックを使う必要があるわけではありません。
しかし、ノートブックを用途によって使い分ける方が整理されるのでおすすめです。
image.png

データの中身の確認

作成したテーブルをデータベースからSQLクエリで呼び出してみましょう。

[crayon-633f8fbc3e6d4451088953/]
[crayon-633f8fbc3e6d6102379449/]

問題なく出力されていそうです。
image.png

クエリの実装

可視化に必要な情報だけをクエリで抽出します。
今回は、時系列に沿って全国の人口の推移を総人口、男女別で抜き出してみました。

[crayon-633f8fbc3e6d9540643601/]

結果は以下の画像のようなテーブルが出力されます。
ここから抽出した情報の可視化の作業に入ります。
image.png

可視化

先ほどクエリで必要な情報を抽出した時のテーブルから、赤枠にある「Visualization」をクリックします。
image.png

次の画面では GUI ベースで自由度のあるビジュアルを作成することができます。
「General」のタブではグラフの種類を選択し、X 軸のカラム、Y 軸のカラムを選んでいきます。
Y 軸のカラムは複数選ぶことも可能です。
image.png
「Series」など他のタブではラベル名を自由に決めることができるといった細かな設定を行えます。
設定がし終えたら右下にある「Save」をクリックしましょう。
image.png
ビジュアルが完成しました。
昔から年々増えていた人口が、近年は増えなくなっている。男性よりも女性の人口の方が若干多いことがわかりますね。
image.png

ちなみにビジュアルは「+」から複数作成することも可能です。
試しに別のグラフでビジュアルを作成してみました。

ビジュアル作成画面で「Stacking」という機能を有効にして、男女の人口を棒グラフで積み上げて総人口を表現することも可能です。
作成したビジュアルはノートブックのダッシュボードに張り付けることもできます。
image.png

作成したビジュアルを2つともダッシュボードに並べることができました。

注意点としてダッシュボードで共有できるビジュアルは同じノートブック内で作成したビジュアルのみになります。
また、Databricks SQL にも同じようにテーブルを可視化してダッシュボード機能を構築できる機能はありますが、今回ご紹介したものとは別物になります。
image.png

以上でテーブルの可視化は完了しました。

まとめ

本記事では Azure Databricks について、利用するメリットや実際に使ってみながら基本的な機能についてノンストップで解説しました。

長い記事にはなってしまいましたが、実際に手を動かしながら最後まで読んでいただくと確実に Azure Databricks の使用感が掴めるようにはなっているかと思います。

まだまだ紹介しきれていない機能はたくさんありますが、本記事で今後 Azure Databricks を使いこなせるようになるきっかけとなれば幸いです。


【AzureML】自動車価格の予測チュートリアルをやってみた

MLStudioが2024年に廃止するようです。
https://docs.microsoft.com/en-us/azure/machine-learning/migrate-overview

Support for Machine Learning Studio (classic) will end on 31 August 2024. We recommend you transition to Azure Machine Learning by that date.

これを機にほかのサービスへの移行を考えていたのですが、AzureMLにデザイナーという機能があり、MLStudioのようにブロックで操作できるようでした。
サンプルがいくつかあるので、いくつか試していこうと思います。
今回は自動車価格の予測チュートリアルをやっていきたいと思います。

ワークスペース作成

まず初めにAzureMLワークスペースを作成します。

image.png
リソースの作成からAzureMachineLeaningを検索します。
image.png
出てきたページの作成を押し、必要情報を入力して作成しましょう。
詳しい内容はこちらにあります。

ワークスペースが作成されると、このように表示されてると思います。
image.png
作成したワークスペースを開いてみるとスタジオの起動と真ん中に出てくるのでこちらをクリックして起動しましょう。
image.png

スタジオを起動するとこのようなページに移動すると思います。
image.png

デザイナーでモデルを作る

今回はブロックでモデルを作成できるデザイナーという機能を利用していきたいと思います。
左のタブからデザイナーの項目をクリックして開いてみましょう。
image.png
このような画面になると思います。
新しいパイプラインの項目にはいくつかサンプルが並んでいます。
これらはすでにサンプルのブロックが組みあがっているものになります。
今回利用するAutomobile Price Predictionについてもすでに出来上がったものが提供されています。
今回は一通りの流れを確認したいので一から作っていきたいと思います。
空のパイプラインを作りたいので左にある+ブロック(使いやすい事前構築済み...)をクリックします。
開くとこのような画面になります。
image.png

MLStudioで見慣れた画面で安心しますね…
それではブロックを投入しながらモデルを構築していきます。

サンプルデータの取得

まずはサンプルデータを持ってきます。
左の検索窓に「Automobile」と入れて検索します。
この時「データ」と「コンポーネント」タブがありますが、データのほうを選択しておきましょう。
image.png

このようにブロックが出てきます。これを右にドラッグ&ドロップして配置します。
これでデータの準備ができました。データの内容を確認してみたいので配置したブロックを右クリックして「データを表示する」を押下して表示してみましょう。
image.png
このようにデータの内容が可視化されていますね。

続いてデータの前処理をしていきましょう。
今回は列の削除と欠損の補完を行います。

不要データの削除

まずは列の削除をしていきましょう。先ほど「データ」を選択したタブを「コンポーネント」にして、「Select Columns in Dataset」を検索します。
出てきたブロックをドラッグドロップして配置しましょう。
配置できたらAutomobileブロックの下にある○とSelectColumnsの上にある○をドラッグしてつなげます。
image.png

SelectColumnsのブロックをだプルクリックすると右に項目が表示されます。
項目内にある列の編集をクリックし、ポップアップを表示します。
含めるではすべての列を選択します。
右の+ボタンをクリックしてルールを追加します。
左の項目を含まないにして、次に列の名前を選択します。
すると列の名前を入力する項目が表示されます。今回は「normalized-losses」という項目を除去したいのでこちらを入力します。
その後保存をクリックしましょう。
image.png

欠損データの処理

続いて欠損データの処理を行います。
検索から「Clean Missing Data」を検索し、ブロックを配置しましょう。
配置したらSelectColumnsとCleanMissingDataを繋げます。
image.png

また、項目内のCleaningModeを「Remove entire row」にしましょう。
image.png

先ほど同様ブロックをダブルクリックして右の項目から列の編集を選び、ポップアップの含むの項目をすべての列にしましょう。
image.png

データの分割

前処理できたので、こんどはデータの分割をします。
片方を学習に、もう片方をテストに使います。
検索から「Split Data」を調べ、ブロックを配置します。
CleanMissingDataブロックの左のCleaned datasと書いてある○からSplitDataに線を繋げます。
image.png

SplitDataをダブルクリックして項目を表示したら「Fraction of rows in the output dataset ...」の項目を0.7にしましょう。
これは分割する際のデータの割合で、初めに出力するデータを全体の70%にすることを指定しています。
image.png

学習アルゴリズムの追加

続いて学習するためのアルゴリズムを配置します。今回は「LinerRegression」を利用したいと思います。
検索して出てきたブロックを配置します。
image.png

学習させるためにはTrainModelブロックが必要です。こちらも検索して配置しましょう。
配置したら、左上の○とLinerREgressionを、右上の○はSplitDataの左下の○とを繋げましょう。
image.png

このままだと予測する値が決まっていないので、TrainModelをダブルクリックして項目を開き、LabelColumn横にある列の編集から指定します。
今回は「price」を予測したいのでこちらを選択します。その後保存します。
image.png

モデルのテストと評価

作成したモデルのテストを行うために「ScoreModel」ブロックを追加します。
左上の○とTrainModelの○を、右上の○とSplitDataの右下の○を繋げます。
また、テスト結果をもちいてモデルの評価を行いたいので「EvaluteModel」ブロックを追加します。
左上の○とScoreModelの○を繋げましょう。
image.png

ジョブの実行

ジョブの実行をするため、クラスターの作成をしましょう。
画面右上にある設定を開き、「AzureMLコンピューティングクラスター...」から作成を行います。
image.png

クラスタの種類によってコストが変わってくるので、データ量などを確認しながら選ぶといいかなと思います。
今回は一番上のものを作成します。
image.png

選択後コンピューティング名を設定し、作成します。
image.png

先ほどの設定画面に戻り、「AzureMLコンピューティングクラスタを選択する」から作成したクラスターを選びます。
image.png

クラスタが設定できたら上部にある「送信」をクリックしてジョブを開始させます。
パイプラインの設定で新規作成から実験名を記入し送信します。
image.png

左にサービスからの応答を待機してますという項目が出ます。
少し経つと表示が変わり、このようになるのでジョブの詳細をクリックしましょう。
image.png

実行内容が確認できますね。
実行中のブロックは左に縞模様ができているみたいです。
この画面で実行の確認や結果の確認をすることができます。
image.png

実行が完了したら結果を見てみたいと思います。
まずはテストの結果を見ましょう。ScoreModelを右クリックして「データを表示する」を押下し、ScoredDatasetをクリックしましょう。
すると右に項目が表示されます。
項目内のScoredLabelsの項目が予測結果になります。
image.png

モデルの評価についても同様に確認してみましょう。
EvaluteModelをダブルクリックして項目を表示します。項目上部のタブでメトリックを選択しましょう。
すると評価指標を確認することができます。
image.png

モデルの運用

実際にこのモデルを運用する際にはAPIを通して実行したり、バッチ処理を行うなどが考えられます。
今回はAPIを利用するリアルタイム推論パイプラインを利用したいと思います。
実行画面右上にある推論パイプラインをクリックして、「リアルタイム推論パイプライン」を選択しましょう。
推論パイプラインの項目がない場合は左にある「最新の情報に更新」をクリックすると表示されました。
image.png

こちらをクリックすると自動でパイプラインの形が変化します。
変化後、送信をクリックして再度パイプラインを実行します。この時既存の実験を選択することで、後で確認する際に実験ごとに確認できわかりやすくなると思います。
image.png

先ほど同様少し時間がたつと左側のサービスの応答を待っていますという項目が変わるので、ジョブの詳細をクリックして開きましょう。
image.png
先ほど同様に実行の状況が確認できます。
実行が終了したら最新の情報に更新してみましょう。右上にデプロイの表示が出ると思います。
こちらの設定には推論用のコンピューティングを作成する必要があります

左のタブからコンピューティングを選択し、推論クラスターの項目を開きます。
image.png

新規をクリックして作成を始めます。
場所は利用地点に近いものを選ぶといいかなと思います。
その後VMのサイズを選択します。一番上のものを選ぶとエラーが出てしまったので、2つ目のものを選ぶことにしました。
image.png

設定後は作成をクリックしましょう。
作成には少し時間がかかります。
image.png

作成が終了したら、元の画面に戻りましょう。
jobから先ほど設定した実験をクリックして開きます。実行したパイプラインが表示されてると思います。後ろにRealtime...とくっついているものを選びましょう。
image.png

戻ったら右上にあるデプロイをクリックしてセットアップを行いましょう。
名前を設定し、コンピューティング名の箇所に先ほど作成したクラスターを選択します。
その後デプロイしましょう。
image.png

作成されたエンドポイントを確認してみましょう。
左の項目からエンドポイントを選択すると確認ができます。
image.png

作成したエンドポイントを開いてみると、Restエンドポイントが表示されてると思います。
こちらに対してPOSTすることで推論結果を取得することができます。

エンドポイントのテスト

参考にしているチュートリアルではweb上でテストができるようなのですが、自分の環境だとできなかったため、pythonから実行してエンドポイントを確認してみたいと思います。
実行するにはデプロイ状態がhealthyである必要があるため、準備が整うまで待機しましょう。

準備ができたら詳細、デプロイログのタブに「テスト」と「使用」のタブが追加されます。
使用では利用する際に用いるエンドポイントとキー、コードが載っています。
今回はこのコードのpythonを用いたいと思います。
image.png

ではpythonコードをコピーしてコードの修正をしていきます。
修正箇所はAPIに投げるデータの部分です。投げるデータの概要は

[crayon-633f8fbc3eb2d726659016/]

このような形式である必要があります。
また、入れ込むデータの形は、

[crayon-633f8fbc3eb36611033449/]

のように{"カラム名": データ}である必要があります。
また、実験時に用いたデータの型、カラムをすべてそろえてあげる必要があるので注意しましょう。(この辺も前処理でどうにかできるかもしれませんね)

では実際のコードです。

[crayon-633f8fbc3eb39742453682/]

こちらを実行すると下記のような結果が返ってきました。
「Scored Labels」が追加されていますね。

[crayon-633f8fbc3eb3c733073700/]

これで作成したエンドポイントの確認ができました!

まとめ

今回はAzureMLのデザイナー機能を使ったモデルの作成からエンドポイントの実行までやってみました。
最後の確認ではコードを触ったものの、モデルの実装からエンドポイントの作成まではノーコードでできたのではないでしょうか。
今回はすべて手作業で作成してみましたが、次回以降はすでにあるサンプルを動かしつつ、AzureMLでできることを探っていけるといいかなと思います。


【Azure】AzureAutoMLをFunctionsから実行してみた【AutoML】

前回まででAutoMLをコード上から実行することが確認できています。
今回はこれをAzureFunction上から実行してみたいと思います。

この記事では細かい実行内容にはあまり触れず、実装方法をメインに解説していきたいと思います。
実行内容につては前回の記事を参考にしてみてください。

実行環境

バージョン
windows 10
python Python 3.7.9

リソース作成

まずはリソースを作成していきます。AzureMLのワークスペースの作成については終わっているものとして考えます。
こちらについてはこの記事で記載しているので参考にしてみてください。

最初にFunctionsのリソースを作成します。
ローカルからライブラリをアップロードしたいので、今回はVSCodeの拡張機能を利用してリソースの作成を行っていきます。
VSCodeにこちらをインストールしてください。

インストールが終わるとツールバーにアイコンが表示されるのでクリックしてウィンドウを開きます。
image.png
開いたら画像右上にあるをクリックします。
image.png

すると画面上部にCreate FunctionApp in Azure...という項目が出るので選択しましょう。
次に利用するサブスクリプションを選択します。
続いて関数名を作成します。これは一意の名前である必要がある点に注意しましょう。
image.png
次にpythonのバージョン選択です今回は3.7を利用します。
image.png
最後にリソースのロケーションを選択します。今回はEastUSにしてます。

こちらで関数の作成は完了です。
また、RESOURCEタブの特定リソースの中にあるFunctionAppを右クリックして(Advanced)のついている項目を選択することで、詳細設定を行いつつリソースを作成できます。
image.png

権限の設定

次にAutoMLを実行させるための権限設定を行っていきます。
まず作成した関数に権限を設定したいので、関数アプリの項目を開きタブ内のIDを開きます。
image.png
開いたページの状態の項目がオフになっているのでオンにします。
これでマネージド ID に対して権限を付与できるようになります。

それではワークスペースの権限を付与しましょう。
AzureMLを開き、IAMの項目を開きます。
image.png

画面上部の+追加をクリックし、ロールの割り当ての追加を開きます。
image.png

開いたら、所有者を選択し、メンバーを開きます。
image.png
マネージドIDを選択してメンバーを選択するをクリックします。

画面右にタブが出てくるので、マネージドIDの項目ですべてのシステム割り当てマネージドIDを選びます。
ここで出てくるAzureMLとFunctionsを選択し、下部の選択ボタンをクリックします。
image.png

その後レビューと割り当てをクリックして設定を終わります。
同様にリソースグループとFunciotnsにも権限の設定をします。
こちらは同様の操作になるため割愛します。

ローカルに関数を作成

デプロイをする関数をローカルに作成していきます。
AzureタブのWORKSPACEの右にあるをクリックしてCreateFunctionを選びます。
image.png

画面上部に設定が出てくるのでこれらを設定します。
まずトリガーの設定です。今回はHTTPtrigerを使います。
image.png

次に関数名を付けます。
最後に権限のレベルです。今回はAnonymousを設定しました。
image.png

作成が終わるとフォルダ内にファイルがいくつか生成されています。この中の__init__.pyが実行される関数になります。

利用するライブラリの設定

今回で一番詰まったところです。
まず、windowsマシンを利用している場合、モジュールのインストールはlinuxの仮想環境等を作成して行うようにしましょう。
私はVagrantでUbuntを立ててライブラリを入れました。
次に、フォルダに対してライブラリをインストールします。
インストール先は.python_packages\lib\site-packagesにしましょう。

[crayon-633f8fbc3ef9e892041503/]

続いて一部のモジュールを削除していきます。
これはバージョンの問題やPython3.7では必要ないものがありエラーになってしまうために行います。

  • dataclassesとついているフォルダ、およびdataclasses.pyの削除
  • cryptographyとついているフォルダの削除

また、cryptographyのインストールについてはローカルでのインストールではだめでしたが、デプロイによるインストールだと問題がなかったため、requirements.txtに入れておきましょう。

[crayon-633f8fbc3efa5205829104/]

AzureFunctionsでは一時ファイルは/tmp/フォルダにのみ作成可能で、それ以外のディレクトリはReadOnryとなりエラーになってしまいます。
AutoMLの関数では一時ファイルやLogの出力を行っているのでこれらを修正していきます。

まずset_log_fileと記述されている個所を修正していきます。
logについては出力しなくていいと思ったのでコメントアウトで対応しました。

.python_packages\lib\site-packages\azureml\automl\core\automl_base_settings.py 756行目
.python_packages\lib\site-packages\azureml\automl\core\_logging\log_server.py 267,8行目
.python_packages\lib\site-packages\azureml\automl\core\shared\log_server.py 12行

次に一時ファイルの出力先です。こちらは生成する必要があるのでパスを変更しました。

76行目付近

[crayon-633f8fbc3efa8675225031/]

56行目付近

[crayon-633f8fbc3efaa739397412/]

これでライブラリについては一通り完了です。

関数の設定

関数のランタイムのバージョンを変更する必要があったので修正します。
image.png

関数の「構成」タブにあるFUNCTIONS_EXTENSION_VERSIONの値を~3に変更します。
また、vscodeからデプロイする場合は.vscode/settings.jsonにあるazureFunctions.projectRuntimeの値も~3にしておきましょう。

[crayon-633f8fbc3efac796788452/]

デプロイするコード

実際にモデルを作成するコードになります。
__init__.pyに記述することで動作します。
いくつかコードを紹介するので、それぞれ別の関数に設定したり、組み合わせて利用することをお勧めします。

モデル作成

一つ目はモデルの作成を開始するコードになります。
クラスタやデータストアの作成、データの配置はすでにできていると想定しています。

[crayon-633f8fbc3efae136057507/]

モデル作成の実行状況の取得

モデル作成の実行状況を取得します。
これを利用することでモデルの作成終了まで待機したりできると思います。
POSTのときに受け取るデータとしてjobのIDと実験名を受け取るようにしてます。

[crayon-633f8fbc3efb1450729041/]

テスト結果の取得

一つ目に提示したモデルではテストを行うように設定をしています。
なのでテスト結果を受け取る関数を用意しました。
先ほどと同様に、POSTでjobIDと実験名を取得します。

[crayon-633f8fbc3efb3913677759/]

特定の実行データを取得後、最高値のモデルを取得します。その後、そのモデルの子実行のうち、特定のタグを持つ実行を取得します。
これがテストを行ってる実行になるので、その実行データからテスト結果をダウンロードする、といった流れになります。

モデルの登録

作成したモデルを登録するための関数を作成します。
デプロイ時に登録が必要になるので、デプロイの準備として用意しました。
POSTの入力データには先ほどのものに加えてモデル名を追加しました。

[crayon-633f8fbc3efb6661236784/]

モデルのデプロイ

登録したモデルをデプロイします。
エントリポイントに利用するpythonファイルが必要なのでコード上で生成し、それを設定しています。
また、POST入力には上記に加え予測対象のカラム名を追加しています。

[crayon-633f8fbc3efb9007596299/]

また、デプロイ完了したモデルのエンドポイントがコードから取得したいこともあるとおもいます。
そちらについてのコードも併せて載せておきます。
Functionsの形式にはなっていないのでここを参考に利用するようにしてください。

[crayon-633f8fbc3efbc025972158/]

service.serialize()によってデプロイした情報を取得し、その中にあるエンドポイントのデータを持ってきている形になります。

エンドポイントから予測を行う

こちらはAutoMLを実行するわけではありませんが、一連の流れとして載せておこうと思います。
発行したエンドポイントを利用して予測を行う関数になります。
内容のほとんどはAzureML上にあるサンプルコードと同様です。Functionsの形式に合わせて修正した形になります。
また、POSTの入力としてエンドポイントと予測用データ(CSV)を受け取ります。
これにより汎用的に利用できるようになっています。

[crayon-633f8fbc3efbf305549055/]

まとめ

今回はAzureFunctionsからAutoMLを実行してみました。
モジュール関係でかなりてこずってしまったのでもしかすると断念した方もいるかもしれません。
モジュールに手を加えることでFunctionsから実行でき、これにより様々なところでモデル作成を行えるようになると思います。

AutoML自体とても簡単に良いモデルを作成できるので、FuncionsでAPIを作成しモデルと共存した開発を行っていきたいですね。


【Databricks Data+AI Summit 2022】KeyNote 2日目 日本語訳

2022/6/27(月)~2022/6/30(木)の4日間、サンフランシスコと Web 会場で Data+AI Summit 2022 が開催されました!
Data+AI Summit 2022 で発表された Databricks 最新情報をお知らせします。

Data+AI Summit 2022 とは?

Databricksは、データ収集、加工、AI・データ分析、可視化までクラウド上でのデータ利活用に必要なあらゆる機能を備えたデータ分析統合プラットフォームです。
Databricks 社が主催する Data+AI Summit 2022 では、Databricks のユースケースや、事例、新機能などに関する情報が発表されています。

ログインページはこちら!
※メールアドレスの登録が必要です

https://dataaisummit.com

Data+AI Summit 2022 KeyNote 2日目

目次

  • Serverless Model Endpoints プライベートプレビュー公開
  • Integrated Model Monitoring プライベートプレビュー公開
  • MLflow Pipelines が公開
  • MLflow 2.0 が 近日公開
  • Databricks Workflows が公開

Serverless Model Endpoints がプライベートプレビュー公開

概要

  • モデルのデプロイをせずに、Databricks 上に登録したモデルの推論が実施できる機能です。Databricks 上で推論サーバを管理しているため、推論に使用する VM の数やコア数、GPU の数をスケーリングさせるといったことができます。

モデル推論管理画面
モデルバージョンごとの管理もできます。
image.png

  • スケーリングを自由に行えるため、使用しない推論モデルがある場合は、0までリソースをスケールダウンすることで推論のコストを大幅に削減することができます。

  • その他にも、Serverless Model Endpoints を使用すると、Databricks でトレーニング済みのモデルに対し、ボタンをクリックするだけで、高い SLA とスケーラビリティを提供している本番環境にデプロイすることができます。

コンピューティングスケーリング画面
以下のように、推論に使用するインスタンスタイプ、コア数、スケーリングの設定ができるようです。
image.png

Integrated Model Monitoring がプライベートプレビュー公開

概要

  • Serverless Model Endpoints とセットで使用できる機能で、機械学習モデルのドリフト(精度)検知が行える機能です。
  • しきい値を設定して、モデルの精度がしきい値より下がったらアラートを特定のメールアドレスに送信する、といったことが可能になりました。

モデルドリフト設定画面
これらのモデルに対するモニタリング機能を内蔵しているので、前に見たデータ統合タスクでは、本番環境からログに記録されたリクエストを取得
image.png

MLflow Pipelines (MLflow 1.27 でベータ版) の公開

概要

image.png

  • MLOps の問題を解決するための新機能が MLflow Pipelines として公開されました。
  • パイプラインテンプレート、パイプラインエンジン、Opnionated structure の3つの機能が特長です。
  • MLflow Pipelines は coming soon の MLflow 2.0 で利用可能になります。

パイプラインテンプレート

  • 機械学習モデル管理をスタートするために必要な、機械学習モデルのトラッキングやMLflow modelsへの登録などのコードと設定がパイプラインテンプレートとして公開されました。
  • MLflow のコードを一から書かなくていいのは便利だと思います。
  • yaml でパイプラインテンプレートを管理できるようになっています。

パイプラインエンジン

  • 構築した機械学習モデルに対して、コード変更した部分のみを再実行してくれる機能です。
  • 機械学習モデル構築のステップを MLflow 上で保持してくれます。

オピニオンストラクチャ - Opnionated structure

  • モデル開発用の Notebook とは別にオーケストレーション用 Notebook を用意し、その Notebook からモデルの操作ができるようになりました。
  • 以下のように、Pipeline .run("train") を Notebook で実行すると、モデルの評価指標などを確認できるようになっています。これは便利。

image.png
image.png

Databricks Workflows が公開されました

概要

  • Databricks Lakehouse のフルマネージドオーケストレーションサービスで、Databricks UI 上でジョブ管理ができるようになりました。
  • 機械学習モデルをトレーニングするためのデータ取り込み~モデルトレーニング~推論の一連の流れを Databricks Workflows を使用して管理することができるようになりました。
  • 構築したモデルのドラフトを検知したら→モデルの再トレーニングを行う、といったことも Databricks Workflows で管理が可能です。
  • 以下のように UI 上で機械学習モデルのフローを管理できるようになります。

image.png

まとめ

ここまでご覧いただきありがとうございました!
KeyNote を見て、個人的に便利だと思った機能は Databricks Workflows です。
構築したモデルのドラフトを検知したら→モデルの再トレーニングを行う、といったことができるようになったのが便利だと思いました。
Databricks Data&AI Summit 2022 最新情報を引き続き更新していきますので、
他の記事も是非ご覧いただければと思います。

Data+AI Summit 2022 最新情報更新中!

Data+AI Summit 2022ナレコム特設サイト
https://www.knowledgecommunication.jp/product/DataAISummit2022.html
Databricks導入ご相談申し込み受付中です!

Twitterではナレコム最新情報を更新中です。
https://twitter.com/KnowComInc


【Databricks Data+AI Summit 2022】FutureMetrics:ディープラーニングを使用して経済戦略計画のための多変量時系列予測プラットフォームを作成する

2022/6/27(月)~2022/6/30(木)の4日間、サンフランシスコと Web 会場でData+AI Summit 2022が開催されました!

Data+AI Summit 2022 で発表された Databricks 最新情報をお知らせします。

■公式URL

https://databricks.com/jp/dataaisummit/

 

image.png

Data+AI Summit 2022 とは?

Databricksは、データ収集、加工、AI・データ分析、可視化までクラウド上でのデータ利活用に必要なあらゆる機能を備えたデータ分析統合プラットフォームを提供する会社です。

そのDatabricks 社が主催する世界最大規模のデータ&AIのカンファレンスである、Data+AI Summit 2022が開催されました!

今年は、Databricks のユースケースや、事例、新機能などに関する情報が発表されています。

ログインページは下記になります。

https://dataaisummit.com

※メールアドレスの登録が必要です

セッション 概要

Data+AI Summit 2022 FutureMetrics:ディープラーニングを使用して経済戦略計画のための多変量時系列予測プラットフォームを作成する の内容を翻訳し、まとめました。

・Future metricsとは
・多変量モデルを作成するにあたっての課題
・多変量モデルの優秀性

セッション 詳細

Future metricsとは

Future metricsとは未来を予測する方法のひとつになります。
今回では経済データを使って未来を予測し、ビジネス戦略を決定する方法です。

統計的な分析手法を用いて上昇曲線を示しながら、未来の予測を行うといったビジネスアナリティクスという手法はこれまでも存在しているのですが、目指しているのはその先にあるAIを利用したビジネス戦略です。

このプレゼンテーションに登壇されている方はエンタープライズアナリティクスと呼ばれるコンサルティングを行う会社に属しており、企業全体のビジネス上の問題点の解決に従事されています。

例えば住宅ローンであればどのようにローンを決めるのか、どのようなリスクがあるのか、何をもってリスクと判断するのか、優先的に考える残高のポートフォリオは何なのかを数か月という短い期間で解決などです。

本記事ではプレゼンターがAIを利用したビジネス戦略に向けて、多変量モデルの構築に至った経緯や過程、結果について説明していきます。

多変量モデルを作成するにあたっての課題

1. 一変量の先へ

左側はローンの貸し出し高を示すグラフになりますが、モデルの予測(水色)の精度は非常に高いことがわかります。
このモデルでは一変数でも高いパフォーマンスを出すことができます。
image.png

対して預金高を示す右側のグラフではモデルの予測にずれが生じていることが見て取れるかと思います。
これは一変数であるとモデルが予測を行うための参照する情報がただひとつしかないので、グラフのとっさの動きに対してモデルの予測が追い付かないためです。

つまり一変量モデルで得られるパフォーマンスには限界があると考えられます。
よって一変量ではなく多変量を扱うモデルの構築を行う必要があると考え、ディープラーニングへの移行を決めました。

2. クラス構造のパイプライン

当初はクラス構造のパイプラインを持っていませんでした。
当時多くのチームでJupyter noteookで作業することを基本としており、分析自体も容易に行うことができていたのですが、5、6人が同じプロジェクトで同じコードに同時に取り組むことができませんでした。

Databricks環境では5、6人が同時に同じモデルで作業できます。
共有しているモデルやコードの中身ついて、利用する人がそれぞれ理解しておけば各自が与えられた仕事を行うのみになります。

ある部分で問題が起きたとしても、ミスをすべてオープンに共有できるようになり、解決がスムーズになりました。

3. 浅いデータ

モデルに学習させる際に、求められるデータ量に対して実際に用意できるデータ量は浅いことがほとんどです。
なぜならば必要なデータを集めることのできる期間は非常に限られているからです。

ディープラーニングを行う際に、データが浅いことは大きな問題点になりますが、このような場合でもうまく機能するモデルを用意する必要があります。

ここでスライディングウィンドウを利用しました。
スライディングウィンドウはデータ量が少ないときに行う一般的な処理になり、今回のケースで利用しました。

※スライディングウィンドウとはデータをウィンドウと呼ばれる単位で複数に区切り特徴量を計算していく手法になります

以下の画像ではこれらの問題以外にも発生した課題などがまとめられています。

image.png

多変量モデルの優秀性

将来予測をするにあたって2種類の出来事が存在します。
それらは予測可能な事象と不可能な事象です。

例えばカナダ政府がある日、突然余剰な現金を国民全員に配ったとします。
このような突発的な事象に関しては決して予測できるものではありません。

対して、基本的な経済については適切なデータがあれば予測することができますし、モデルに取り入れることができます。

多変量モデルでは予測不可能な事象を含む長期的なパフォーマンスについては高い結果を得られています。
コロナウイルスが流行し、経済が大きく変化した2022年の4月から1年間を予測したところ、流動性の成長と変化をある程度的中させることができました。これは一変量モデルとの違いになります。
以下の画像が多変量モデルの予測(水色)になります。
image.png

セッション まとめ

データサイエンティストは単にモデルを作成するだけでなく他のたくさんの仕事の理解する必要があります。
例えばソフトウェアエンジニアがどのように働くのか、ビジネスの仕組み、住宅ローンの仕組みについてもです。
開発環境の中に身を置けば必然とたくさんの人と関わってコミュニケーションをとっていくこととなります。

これらすべての環境を統合する手段として、クラウド、Databricksを利用してコンテナ化された環境を作成しました。

モデルやJupyter Notebookでゼロからすべてを作り直すのではなく、コンテナ化された環境で複雑に絡み合うプロセスを最小することによってシンプルに、簡単に、リソースを最大限に有効活用していくことを考えていかないといけないでしょう。

Data+AI Summit 2022 最新情報更新中!

■Data+AI Summit 2022ナレコム特設サイト
https://www.knowledgecommunication.jp/product/DataAISummit2022.html
Databricks導入ご相談申し込み受付中

Twitterではナレコム最新情報を更新中です。
https://twitter.com/KnowComInc


【Databricks Data+AI Summit 2022】マネーボール時代のビックデータ-翻訳記事

はじめに

2022/6/27(月)~2022/6/30(木)の4日間、サンフランシスコと Web 会場で Data+AI Summit 2022が開催されました!
Data+AI Summit 2022 で発表された Databricks 最新情報をお知らせします。
■公式URL
https://databricks.com/jp/dataaisummit

MicrosoftTeams-image (9).png

Data+AI Summit 2022 とは?

Databricks社は、データ収集、加工、AI・データ分析、可視化までクラウド上でのデータ利活用に必要なあらゆる機能を備えたデータ分析統合プラットフォームを提供する会社です。

そのDatabricks 社が主催する世界最大規模のデータ&AIのカンファレンスである、Data+AI Summit 2022が開催されました!
今年は、Databricks のユースケースや、事例、新機能などに関する情報が発表されています。

ログインページは下記になります。
https://dataaisummit.com/login/
※メールアドレスの登録が必要です

本記事ではその中の「マネーボール時代のビックデータ 」のセッションについて翻訳、解説したいと思います。

マネーボール時代のビックデータ 概要

Data+AI Summit 2022 マネーボール時代のビックデータ の内容を翻訳し、まとめました。
要約した内容は以下になります。

  • マネーボールの時代と、それが野球の試合にどのように革命をもたらしたか
  • レンジャーズがDatabricksを使用して、すべてのデータパイプラインに流入する膨大な量のビッグデータを分析する方法
  • 機械学習とビッグデータを使用してヒットしたボールがどのように落ちるかを予測する方法と、予測を使用してバッティングを最適化する方法

 

マネーボール時代のビックデータ 詳細

Databricksを利用したユーザー企業概要

メジャーを代表する球団「テキサス・レンジャ-ズ」のシニアアナリストとデータエンジニアの2名が登壇してくださいました。

image.png

野球ファンであれば一度は聞いたことがある大球団ですが、一応紹介文を以下に記載しておきます。

テキサス・レンジャーズは、テキサス州アーリントンに本拠地を置くアメリカンリーグの西地区の球団です。
レンジャーズは2018年現在グローブライフ・フィールドを本拠地としておりますが、現在、同じアーリントン市内に新スタジアムを建設中となり、2020年のシーズンからは新スタジアムへの移転になります。
https://mlbtours.jp/?select_team=tex

マネーボールの時代と、それが野球の試合にどのように革命をもたらしたか

マネーボールとはマイケル・ルイスが書いた書籍で、2011年にはブラッド・ピットとジョナ・ヒルがオークランドAの幹部を演じ、映画化もされました。
image.png

題材であるビル・ジェームズはメジャーリーグでデータ分析から成功へのアプローチを見出した第一人者になります。
野球では打率が高いことが得点につながると思われがちですが、マネーボールで書かれているのは打率よりも出塁率の方が総得点と高い相関があるということでした。
結局のところ、野球では得点を取ることが勝つ手段なので、上記は重要な相関関係になるわけです。
つまりは打率が高い選手よりも出塁率を高い選手を安く起用することで、低価格かつより多くの試合に勝つことができるようになると解釈できます。

データの傾向から分析してスポーツをハックすることが当たり前となった現代のMLB(メジャー)では、球場に多くのカメラを様々な角度で設置し、スイング、ヒット速度、角度、スピン率、走塁タイムなど様々なデータを蓄積し、ビックデータとして活用しております。

image.png

テキサス・レンジャースが抱えていた課題

情報の統一化

他の企業野球のフロントと同様に、レンジャーズにも組織を前進させるための様々な分野に特化した内部部門があります。

情報の統合における問題は、レンジャーズが利用するすべてのテクノロジーが互いに統合されているかどうかによって、さらに難しくなっています。
また、5年後にどうなっているか、長い目で見てどのようなソフトウェアを選択するのがベストなのか、未来を予測することは不可能ではないにしても、これらを判断するには簡単には判断できない材料となっております。

データサイロ化

テキサス・レンジャーでは、API FTPのデータベース、外部と内部の両方のクラウドバケットからデータを取得しておりデータ形式も様々なため、効率的にデータを収集、処理をする必要がありました。
またデータがサイロ化された状態も散見し、様々な言語で書かれたスクリプトがオンプレミスやクラウドベースの異なるサーバー上で動作していた為、それぞれに適用した形のデータベースに保存されておりました。

image.png

解決方法

上記で紹介されているような課題の解決方法として採用されたのがDatabricksです!
DatabricksのノートブックでDelta Lakeに保存することで、あらゆるソースからデータを抽出する取り込みスクリプトを一元管理できるようになりました。

データを変換し、クレンジングをした上でステージテーブルに保存し、最終的にエンタープライズデータウェアハウスに取り込むことができるのです。
koalasとPysparkに新たに統合されたkoalasを使うことで、分散抽出も実行することができます。
image.png

機械学習オペレーションによって、機械学習モデルが開発から生産に至るまで反復し、変化する様子を追跡することができます。さらに、ML運用をデータと同じ統合された分析プラットフォームで行うことで、機械学習モデルを追跡することができます。

エンジニアリングでは、データが処理されているのと全く同じ場所でモデルとデータを結びつけることができ、これによりデータが抽出され変換されると同時にスコアを付け予測を生成することができるようになります。

こうすることで、選手や監督を含むステークホルダーに、超高速で洞察を伝えることができるようになりました。以前は、試合が終わってから選手に予測や指標を伝えるまで、最大で24時間かかっていましたが、今では数時間後には予測結果を提供できるようになっています。

まとめ

今回は野球でのデータ活用という切り口でDatabricksがどのように使用されているのか、どのようなベネフィットをもたらすのかという観点で話をされておりました。
本記事には詳細は記載しておりませんが、当日の審判のジャッジ傾向や縫い目のコンディションによる打球への影響など興味深いことも話されていました。

オンデマンドで視聴をすることができますので、公式ページをチェックしてみてください!

Data+AI Summit 2022 最新情報更新中!

■Data+AI Summit 2022ナレコム特設サイト
https://www.knowledgecommunication.jp/product/DataAISummit2022.html

Databricks導入ご相談申し込み受付中

Twitterでは現地の様子を随時更新中です。
https://twitter.com/KnowComInc


【Databricks Data+AI Summit 2022】 Keynote最新情報

2022/6/27(月)~2022/6/30(木)の4日間、サンフランシスコと Web 会場で Data+AI Summit 2022 が開催されてます!
Data+AI Summit 2022 で発表された Databricks 最新情報をお知らせします。

Data+AI Summit 2022 最新情報更新中!

Data+AI Summit 2022ナレコム特設サイトでは、Data+AI Summit 2022 の最新情報を公開中です!

→ 【DataAISummit2022】PoCから本番運用まで幅広くサポートするAWS AI/MLソリューション

Twitterでは現地の様子を随時更新中です!

Data+AI Summit 2022 とは?

Databricksは、データ収集、加工、AI・データ分析、可視化までクラウド上でのデータ利活用に必要なあらゆる機能を備えたデータ分析統合プラットフォームです。
Databricks 社が主催する Data+AI Summit 2022 では、Databricks のユースケースや、事例、新機能などに関する情報が発表されています。

ログインページはこちら
※メールアドレスの登録が必要です

Data+AI Summit 2022 KeyNote 最新情報目次

  • Spark Connect の発表
  • Project Lightspeed の発表
  • Delta Lake 2.0 の発表
  • Unity Catalog が間もなく GA
  • Delta Sharing が間もなく GA
  • Databricks Marketplace の発表
  • Databricks Cleanrooms の発表

 

Apache Spark 新機能 - Spark Connect の発表

  • 環境ごとにインストールが必要だった Spark のドライバーを不要として、API経由で参照できるようにするサービスです。
  • Spark Connect を使用して、ipad 上から Spark のコードを実行するライブデモも公開されています。
    image.png
    image.png

 

Project Lightspeed の発表

  • ストリーミングデータに対してより早くシンプルに使えるようにするサービス、Project Lightspeed が発表されました。

image.png

Project Lightspeed 公式記事:

Delta Lake 新機能 - Delta Lake 2.0 の発表

Delta Lake の機能である Optimize、Table Restore 等の機能が Delta Lake 2.0 として統合されOSS化されました。
これにより、すべての Delta の機能がオープンソースプラットフォーム上で利用可能になりました。

Unity Catalog 間もなく一般提供が開始

  • Notebookからインポート・エクスポートしたデータを階層ごとで追えるようになりました。
  • 複数の Notebook でデータを加工していても、加工前の元データまで辿ることができるようになりました。
  • さらにそのデータに対してタグ(例:Bronze・Sliver・Goldなど)を付与することが出来るのでうまく管理すれば結構簡単にデータカタログっぽいものが作れるようになりました。今回の発表の中で個人的No.1です。

Unity Catalog 公式記事:

Databricks Marketplace の発表

  • Finance、industry など、様々な業種や目的に合わせたデータを Open データとして使えるサービスです。

image.png
image.png

  • Notebook と Open データがセットになって、様々な分析のコードや可視化ダッシュボードも提供されているので、データがないけどデータ分析をはじめたい、と考えている担当者の方でも、同業種のサンプルを活用することで最初からイメージがある状態でデータ分析を進めることが可能です。

image.png

  • Unity Catalog によって Notebook 等で様々な処理をかけても元データがどこの何かをたどることが出来ます。

Databricks Marketplace 公式記事:

Delta Sharing 間もなく一般提供が開始

  • Databricks 上にあるデータを、権限やアクセス制限などをかけてシェアできるサービスです。
  • 開発会社や社内ても限定したシェアをする時に活用できるサービスです。
  • この機能も Unity Catalogで管理出来るようになっています。

Data Cleanrooms の発表

  • 集めたデータを整形し、データ分析にかけやすくするサービスです。
  • Data Cleanrooms と Delta Sharing を利用することで、クラウドやリージョン間でデータをレプリケーションすることなく、データを安全に共有できます。
  • SQL、R、Scala、Java、Python から好きな言語でデータ加工が行なえます。
  • この機能も Unity Catalogで管理出来るようになっています。

image.png

Data Cleanrooms 公式記事:
https://databricks.com/blog/2022/06/28/introducing-data-cleanrooms-for-the-lakehouse.html

まとめ

ここまでご覧いただきありがとうございました!
個人的には、Databricks Marketplace がとても便利なサービスだと思いました。
データ分析に必要なデータとコードが用意されているので、はじめからゴールが見える状態でデータ分析を進めることができるのが大きいメリットだと思います。

Databricks Data&AI Summit 2022 最新情報を引き続き更新していきますので他の記事も是非ご覧ください。


Data Lake Storage Gen2 からAzure Synapse Analytics へ接続する方法

今回の記事ではData Lake Storage Gen2 からAzure Synapse Analyticsへ接続する手順をご案内します。本内容は Azure Learn のAzure Storage Explorer を使用してデータをアップロード、ダウンロード、管理する/
https://docs.microsoft.com/ja-jp/learn/modules/upload-download-and-manage-data-with-azure-storage-explorer/

を元に作成しています。

私は入社2ヶ月目で研修として本記事の作成を進めました。Azure Learn や公式ドキュメントを参考にすることで接続確認ができたので記事にしています。

以下のステップで手順をまとめました。

・Azure portalからAnalyticsのワークスペースを作成する
・Synapse Analyticsへ移行
・リンク済みの場所からData Lake Storage Gen2を選択する

なお、本記事で取り上げているAzure Synapse Analytics 等のサービスは2022年5月時点での情報になります。

Azure Synapse Analytics、Data Lake Storage Gen2のサービス概要はこちらの記事をご覧ください。(Azure Synapse Analyticsと Data Lake Storage Gen2の概要URL)

Data Lake Storage Gen2 からAzure Synapse Analytics へ接続する方法

image.png

まずはData Lake Storage Gen2 をAzure portalで作成します。 ここでは接続するために必要なData Lake Storage Gen2の作成方法、Data Lake Storage Gen2へのデータの入れ方、Data Lake Storage Gen2からAzure Synapse Analyticsワークスペースの作成方法、リンクの仕方を流れに沿って紹介します。

Data Lake Storage Gen2の作成方法

image.png

 次にAzure portal の左側のメニューからストレージアカウントを選択し、リージョン等を選択したうえで作成します。この際にData Lake Storage Gen2 の階層型名前空間にチェックを入れる必要があります。

image.png

 階層型名前空間にチェックを入れたらネットワークやデータ保護をカスタマイズし、確認・作成に進みます。これで作成することができました。

Data Lake Storage Gen2にデータを配置する方法

 本手順ではData Lake Storage Gen2にデータを配置するためにStorage Explorerを使用します。Storage Explorerをインストールした後、Azureアカウントでサインインし、接続文字列を使用することで特定のAzure Storageアカウントにアクセスします。接続文字列を使用する場合は以下のドキュメントを参照してください。
https://docs.microsoft.com/ja-jp/azure/storage/common/storage-configure-connection-string 
ストレージアカウント名とアクセスキーを使用し、同様のサブスクリプションを選択します。すると、サブスクリプションから使用できるストレージ領域の中に、自分のストレージアカウントが表示されます。
image.png

上記キャプチャの表示確認をした後、Storage Explorerでファイルシステムを作成します。ストレージコンテナーでフォルダーを作成後、使用するデータを配置します。フォルダーを作成するためには、ストレージを選択後に出てくるBlobを右クリックし、Blobコンテナーの作成を選択し、名前をつけえることで作成することができます。
なお名前の付け方やサンプルテキストファイルに関しては以下のドキュメントを参照してください。
https://docs.microsoft.com/ja-jp/learn/modules/upload-data-to-azure-data-lake-storage/3-upload-data-using-explorer
以上をもってStorage Explorerで直接データをアップロードすることができます。アップロードを選択した後、さらにファイルのアップロードを選択し、アップロードしたいファイルを選択します。
image.png

 この一連の流れを行うことで、Data Lake Storage Gen2にデータを入れることができました。

Azure Synapse Analyticsワークスペースの作成方法

Data Lake Storage Gen2 をAzure Synapse Analyticsへ接続するためには、まずはデータをData Lake Storage Gen2と、Azure Synapse Analyticsのワークスペースを作成することで接続できます。
Azure Synapse Analyticsワークスペースを作成するためには、まずはAzure portalでAzure Synapse Analytics を作成したいサブスクリプションを選択します。そこから使用したいリソースグループを選択すると画面上部に作成という項目があるのでそこを選択します。

image.png

するとリソースを作成することができるので、検索窓からSynapseを入れることでSynapse Analyticsが出てくるので、Azure Synapse Analyticsの作成を選択し、各項目をカスタマイズした状態で作成します。

image.png

Azure Synapse Analyticsを作成する際に、Data Lake Storage Gen2と同じリソースグループで作成していることが条件になります。
ワークスペースを作成すると、下部に作業の開始の部分にSynapse Analyticsを開くと出てくるので、そこからオープンします。
image.png

自動的にSynapse Analyticsを開くことができるので、そうしたら横のタブからデータを選択し、リンク済みを選択します。また、データの横にある+マークを押すことで外部のリソースと接続することが可能です。
その後外部データに接続を選択し、Data Lake Storage Gen2を選択します。リソースグループやサブスクリプションを選ぶことで、先ほど作成したData Lake Storage Gen2と接続できることができます。
image.png

Synapse AnalyticsとData Lake Storage Gen2の接続方法

 今回はリンク済みのものから接続する方法を紹介しましたが、今回の方法だけではなくSQLエンドポイントからの接続などがあります。Synapse AnalyticsやData Lake Storage Gen2は使用頻度も高く、高機能性を備えるリソースになるのでぜひ本記事で接続方法を実践してみてください。次回はAzure Synapse AnalyticsからPower BI への接続方法について紹介します。