ETL/ELT のEmbulk を使ってGoogle Data Catalog データをDB にロードする方法

詳細情報をご希望ですか?

無償トライアル:

ダウンロードへ

製品の詳細情報へ:

Google Data Catalog JDBC Driver

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



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

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

※製品について詳しい情報をご希望の方は以下からお進みください。

Embulk でCData JDBC Driver for Google Data Catalog データをロード

  • CData JDBC Driver for Google Data Catalog をEmbulk と同じマシンにインストールします。
  • 以下のパスにJDBC Driver がインストールされます。後ほどこのパスを使います。
    C:\Program Files\CData\CData JDBC Driver for Google Data Catalog 2019J\lib\cdata.jdbc.googledatacatalog.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 ファイルを作成し、Google Data Catalog -> MySQL のジョブを作成します。googledatacatalog-mysql.yml というファイル名で作成しました。
  •             
                    in:
                        type: jdbc
                        driver_path: C:\Program Files\CData\CData JDBC Driver for Google Data Catalog 2019J\lib\cdata.jdbc.googledatacatalog.jar
                        driver_class: cdata.jdbc.googledatacatalog.GoogleDataCatalogDriver
                        url: jdbc:googledatacatalog:ProjectId=YourProjectId;InitiateOAuth=REFRESH
                        table: "Schemas"
                    out: 
                        type: mysql
                        host: localhost
                        database: DatabaseName
                        user: UserId
                        password: UserPassword
                        table: "Schemas"
                        mode: insert
                
            
  • ポイントはJDBC URLです。

    Google Data Catalog uses the OAuth authentication standard. Authorize access to Google APIs on behalf on individual users or on behalf of users in a domain.

    Before connecting, specify the following to identify the organization and project you would like to connect to:

    • OrganizationId: The ID associated with the Google Cloud Platform organization resource you would like to connect to. Find this by navigating to the cloud console.

      Click the project selection drop-down, and select your organization from the list. Then, click More -> Settings. The organization ID is displayed on this page.

    • ProjectId: The ID associated with the Google Cloud Platform project resource you would like to connect to.

      Find this by navigating to the cloud console dashboard and selecting your project from the Select from drop-down. The project ID will be present in the Project info card.

    When you connect, the OAuth endpoint opens in your default browser. Log in and grant permissions to the application to completes the OAuth process. For more information, refer to the OAuth section in the Help documentation.

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

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

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

        
            in:
            type: jdbc
            driver_path: C:\Program Files\CData\CData JDBC Driver for Google Data Catalog 2019J\lib\cdata.jdbc.googledatacatalog.jar
            driver_class: cdata.jdbc.googledatacatalog.GoogleDataCatalogDriver
            url: jdbc:googledatacatalog:ProjectId=YourProjectId;InitiateOAuth=REFRESH
                query: "SELECT Type, DatasetName FROM Schemas WHERE [RecordId] = 1"
            out: 
                type: mysql
                host: localhost
                database: DatabaseName
                user: UserId
                password: UserPassword
                table: "Schemas"
                mode: insert
        
    

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