製品をチェック

無償トライアル:

無償トライアルへ

製品の情報と無償トライアルへ:

Azure Analysis Services JDBC Driver

Azure Analysis Services データに連携するJava アプリケーションを素早く、簡単に開発できる便利なドライバー。

データ連携でお困りですか?

お問い合わせ

ETL/ELT のEmbulk を使ってAzure Analysis Services データをDB にロードする方法


OSS のETL/ELT ツールEmbulk のJDBC Plugin を使って、Azure Analysis Services データを簡単にDM に同期する方法。


杉本和也
リードエンジニア

azureanalysisservices ロゴ画像

JDBC Driver

jdbc ロゴ画像
Embulk ロゴ画像

Embulk は、大量のデータをDB、クラウドデータストア、DWH にロードできるオープンソースETL ツールです。近頃のトレンドでは、1社で複数のオンプレアプリやSaaS を使っており、データ分析にはETL/ELT ツールを使ってデータを丸ごとDB/DWH にロードしてから、分析やビジュアライズをすることが主流になっています。Embulk には、いろいろなプラグインがあり、多様なInput とOutput 処理をサポートしています。この記事では、Embulk のJDBC Input Plugin と CData Driver for AAS を使って、Azure Analysis Services のデータを簡単にDB にロードします。この例ではロード先のDB にはMySQL を使います。

Embulk でCData JDBC Driver for AAS データをロード

  • CData JDBC Driver for AAS をEmbulk と同じマシンにインストールします。
  • 以下のパスにJDBC Driver がインストールされます。後ほどこのパスを使います。
    C:\Program Files\CData\CData JDBC Driver for AAS 2019J\lib\cdata.jdbc.aas.jar
  • 次に、EmbulkとCData JDBC Driverをつなぎこむための、JDBC Input Plugin をインストールします。
    https://github.com/embulk/embulk-input-jdbc/tree/master/embulk-input-jdbc
  • embulk gem install embulk-input-jdbc
  • 今回はロード先DB としてMySQL を使います。ほかにもSQL Server、PostgreSQL、Google BigQuery などを使うことも可能です。
    https://github.com/embulk/embulk-output-jdbc/tree/master/embulk-output-mysql embulk gem install embulk-output-mysql
  • config ファイルを作成し、Azure Analysis Services -> MySQL のジョブを作成します。aas-mysql.yml というファイル名で作成しました。
  •             
                    in:
                        type: jdbc
                        driver_path: C:\Program Files\CData\CData JDBC Driver for AAS 2019J\lib\cdata.jdbc.aas.jar
                        driver_class: cdata.jdbc.aas.AASDriver
                        url: jdbc:aas:URL=asazure://REGION.asazure.windows.net/server;InitiateOAuth=REFRESH
                        table: "Customer"
                    out: 
                        type: mysql
                        host: localhost
                        database: DatabaseName
                        user: UserId
                        password: UserPassword
                        table: "Customer"
                        mode: insert
                
            
  • ポイントはJDBC URLです。

    To connect to Azure Analysis Services, set the Url property to a valid server, for instance, asazure://southcentralus.asazure.windows.net/server, in addition to authenticating. Optionally, set Database to distinguish which Azure database on the server to connect to.

    Azure Analysis Services uses the OAuth authentication standard. OAuth requires the authenticating user to interact with Azure Analysis Services using the browser. You can connect without setting any connection properties for your user credentials. See the Help documentation for more information.

  • テーブル名は取得したいテーブル名を入れます。
  • これで準備完了です。あとは「embulk run」で実行するだけです。
  • embulk run aas-mysql.yml
  • 実行後、MySQL Workbenchからテーブルを確認してみると、データが取得できているはずです。

クエリ条件でフィルタリングしたデータのロード

ちなみに、上記の例ではテーブル名を直接指定しましたが、以下のようにSQL Queryを書いてもいいです。 Where句で作成日や修正日を指定すれば、最新のデータだけを対象にすることも可能です。

        
            in:
            type: jdbc
            driver_path: C:\Program Files\CData\CData JDBC Driver for AAS 2019J\lib\cdata.jdbc.aas.jar
            driver_class: cdata.jdbc.aas.AASDriver
            url: jdbc:aas:URL=asazure://REGION.asazure.windows.net/server;InitiateOAuth=REFRESH
                query: "SELECT Country, Education FROM Customer WHERE [RecordId] = 1"
            out: 
                type: mysql
                host: localhost
                database: DatabaseName
                user: UserId
                password: UserPassword
                table: "Customer"
                mode: insert
        
    

CData JDBC Driver for AAS をEmbulk で使うことで、Azure Analysis Services コネクタとして機能し、簡単にデータを取得して同期することができました。ぜひ、30日の無償評価版をお試しください。