こんにちは。CData Software Japan リードエンジニアの杉本です。
今回は Alteryx を使って、Azure Analysis Servciceのデータをロードする方法を紹介します。
Alteryx とは?
Alteryx アナリティクス・データプレパレーション用のツールです。
https://www.alteryx.com/ja
以下のようなGUIベースで様々なデータソースからデータを集約し、アナリティクスにつなげるためのクレンジングや集計、項目調整といったデータ処理を実装することができます。
ちなみに 以前 CData Driverとの組み合わせ記事を Qiita で掲載しているので、こちらも参考にしてみてください。
qiita.com
Azure Analysis Servcice とは?
SQL Server Analysis Serviceをベースとした Azure PaaS で提供されている分析データエンジンです。
docs.microsoft.com
この記事のシナリオ
今回はこのAzure Analysis ServiceとAlteryxを組み合わせてデータプレパレーションを行います。
なお、Alteryxは以下のように様々なデータソース・RDBやDWHからのデータ取得をサポートしていますが、現在Azure Analysis Serviceには接続できません。
しかしながら、ODBCの標準インターフェースが使えるので、このボトルネックを CData Azure Analysis Services ODBC Driver を利用して解決します。
https://www.cdata.com/drivers/azureanalysisservices/odbc/
手順
それでは実際に接続する手順を紹介していきたいと思います。
必要なもの
必要なものは以下のとおりです。すべてトライアルが提供されているので、とりあえず試してみることが可能です。
- Alteryx Designer (こちら でトライアルを取得できます。)
- Azure Account
- CData Azure Analysis Services ODBC Driver
Azure Analysis Servciceの構成
まず最初に Azure Analysis Servcice を構成してみましょう。
Azure Portalにログインして、新しいリソースとして Analysis Servcice を構成します。
構成に必要な Server nameなどは任意のものを選択してください。
今回は検証用途のため、Pricing tierは一番低いD1を選択しました。なお、Administratorは後ほど認証時に利用するので間違えないようにしましょう。
構成後、ServerNameが表示されるので、この値を控えておきます。後ほどODBC設定の部分で使用します。
なお、今回はテストデータとして、Azure Analysis Servcice が標準で提供する Sample Dataを使用します。「+ New Model」をクリックし
「Sample Data」を選んで追加します。
以下のようにAdventureworksのモデルが追加されればOKです。
また、デフォルト状態ではFirewallが有効化されていないので、セキュリティのために有効化しておきましょう。
Azure Analysis Servcice ODBC Driverの準備
次に、Azure Analysis Servcice ODBC Driverをインストールしています。以下のURLからBeta版をダウンロードして、インストールを行ってください。
https://www.cdata.com/drivers/azureanalysisservices/odbc/
インストール後、ODBC DSNの構成画面が立ち上がるので、「URL」のプロパティに先程構成した Azure Analysis Servciceの Server Nameを入力し、「Test Connection」をクリックします。
Test Connectionをクリックすると、ブラウザが立ち上がり、Azureへのログインが求められます。ここで予め Azure Analysis Servciceの Admin Userとして指定したユーザーでログインしましょう。
ログインが完了すると、アクセス許可の画面が出てくるので、内容を確認し「承諾」をクリックします。
承諾後、以下のようにメッセージが表示されればOKです。
あとは設定を保存するだけで、ODBCの準備は完了です。
Alteryx Designer でワークフローを構成
それでは、Alteryx Designer でワークフローを構成していきましょう。
Alteryx では外部からのデータの取り込みに「Input Data」という機能を使います。Alteryx Designer を立ち上げたら、まずこの「Input Data」を配置します。
配置後、「Connect a File or Database」のプルダウンボタンをクリックして
「Data sources」を選択します。
ここで取り込みたい外部のRDBやDWHのサービスを選択します。前述の通り、Azure Analysis Servciceは提供されていないので、標準のODBCインターフェースを用います。
一覧の中から「Generic Connection」のODBCを選択してください。
ODBC Connectionを選択すると、以下のようにDSNの選択画面が表示されるので、ここで先程構成したODBC DSNを選択し、「OK」をクリックします。
続いて、データ取得のクエリを記述します。
Azure Analysis Servciceからのデータ取得は若干特殊なため、SQL Editorを使います。
ここで少し CData Azure Analysis Servcice の機能について解説します。
なお、詳しくはヘルプに含まれる以下のページも参照してみてください。
Retrieving Analysis Services Data
Azure Analysis Services is an OLAP database that exposes data as cubes,
CData Azure Analysis Servcice Driver はCubeやMeasureなどの要素を以下のように Driverの機能としてマッピングして提供します。
- Catalog - Displayed in the driver as a Catalog.
- Cube - Displayed in the driver as a Schema.
- Measure - Available in the driver under the special Measures view.
- Dimension - Each dimension is exposed as a view.
- Level - Each individual level of a hierarchy is exposed as a column on the appropriate dimension view.
この構成要素は ODBC DSNの画面で、「Tables」のタブを使うとわかりやすいです。
ここで今回ポイントとなるのは、メジャーとディメンションがそれぞれ別なビューとして定義され、提供されるということです。
Tableとして標準的に提供されるものは、そのまま CData Driverでも個別のテーブル(ビュー)として、定義されますが、このテーブルにはメジャーとなる数値などの項目は含まれません。
では、どのように提供されているのか? というと、以下のように「Measures」というビューで独自に定義され、クエリできるようになっています。
そのため、最終的にSQLベースでAzure Analysis Servciceからデータを取得したい場合、CData Driverでは基本的にこの「Measures」と各ディメンションのテーブルをJOINして、結果を取得するようになっています。
例えば、Customerテーブルに含まれる「Gendar(性別)」ごとの、「Internet Total Sales」の集計を見たい場合、以下のように Customerテーブルに対して、MeasuresテーブルをJOINして、必要となる項目をSELECTし、集計結果を取得します。
SELECT m."Internet Total Sales", c."Gender"
FROM "adventureworks"."Model"."Customer" c
INNER JOIN "adventureworks"."Model"."Measures" m;
これをAlteryxでも同じ様に、SQL Editorを使って以下のように指定します。
記述したら、実際にデータを取得してみましょう。一度「Run」ボタンをクリックして、「Input data」の処理結果を見てみると、以下のようにGenderごとの集計結果を得られていることがわかります。
このように、CData Azure Analysis Servcice Driver のクエリ特性を理解して、SQLを記述する必要があるので、注意しましょう。
もしヘルプでもわからない、こんなクエリを書きたい場合はどうすればいいのか? といった点がありましたら、サポートフォームまでご連絡ください。
クエリできることが確認できたら、あとは出力を作成します。
今回は単純にExcelファイルに集計結果を出してみたいと思います。
「Output Data」を配置して
「プルダウン」ボタンをクリックします。
Filesの一覧から「Microsoft Excel」を選択し、任意のフォルダ・ファイル名を指定します。
これで構成は完了です。再度「Run」をクリックしてみましょう。
正常に処理が完了とすると、以下のようにExcelファイルが生成されます。
中身を見てみると、正常にAzure Analysis Servcice から取得したデータをロードできていました。
おわりに
CData では、 Azure Analysis Servcice Driver以外にも、200種類以上のデータソースに接続できるODBC Driverを提供しています。
今回のようなアナリティクス用のサービスだけでなく、HubSpotやkintone、SansanといったSaaSにも接続できるODBCも提供しているので、是非社内で利用しているサービスに合わせて、Alteryxと一緒に活用してみてください。
関連コンテンツ