OpenMetadata SaaSのBigQuery Connectorを試してみた

2023.02.06

さがらです。

OpenMetadata SaaSで、BigQueryのメタデータを抽出するためのBigQuery Connectorを試してみたので、本記事でまとめてみます。

前提

基本的には、このドキュメントの手順に沿って行っていきます。

また、「OpenMetadata SaaS」とは言っていますが、中身はOSSのOpenMetadataと全く一緒です。クラスタの構築や運用周りをすべて担ってくれるのがSaaS版となっております。

OpenMetadata SaaSのフリートライアル開始手順については、こちらのブログをご覧ください。

各製品のバージョン

  • OpenMetadata SaaS
    • Tokyoリージョン
  • OpenMetadata
    • 0.13.2

BigQuery上での事前準備

まず、事前にBigQuery上で行うことがありますので、その内容について記述していきます。

Data Catalog APIを有効化する

まず、対象のGoogle Cloudのプロジェクトにおいて、Google Cloud Data Catalog APIを有効化する必要があります。

公式Docにも記載があるこのリンクから、メタデータを抽出したいデータセットを持つプロジェクトを選択した上で、Google Cloud Data Catalog APIを有効化すればOKです。

対象のサービスアカウントに対する権限付与

OpenMetadataからBigQuery上のメタデータを取得するには、サービスアカウントの連携が必要となります。

下図は公式Docからの引用ですが、対象のサービスアカウントには2023年2月6日時点で以下の権限が必要のため、これらの権限を付与したサービスアカウントを準備しましょう。

また、対象のサービスアカウントで接続するために、キーも生成しておきましょう。

下図はJSONで生成した場合の例ですが、この鍵ファイルに記載された各値がOpenMetadataからBigQueryに接続するために必要となります。

OpenMetadata上でのConnectorの設定

では、OpenMetadata上からSnowflake Connectorの設定をしていきます!

まず、Settings➟Databases➟Add New Database Serviceを順番に押します。

接続先の一覧からBigQueryを選択し、Nextを押します。

Service NameDescriptionを記入し、Nextを押します。

続いて、BigQueryに接続するための各種情報を入れる画面になります。先程生成したサービスアカウントのキーファイルを用いて、各情報を入力していきます。※今回は、GCS Credentials ConfigurationGCS Credentials Valuesに設定した上で最低限必要な項目を設定していきます。

  • Credentials Type:キーファイルのtypeの値を入力
  • Project ID:1つのプロジェクトを連携するか、複数のプロジェクトを連携するか、選ぶことが出来ます。※ここではSingle Project IDで進めていきます。
  • Single Project ID:キーファイルのproject_idの値を入力
  • Private Key ID:キーファイルのprivate_key_idの値を入力
  • Private Key:キーファイルのprivate_keyの値を入力
  • Client Email:キーファイルのclient_emailの値を入力
  • Client ID:キーファイルのclient_idの値を入力
  • Authentication URI:キーファイルのauth_uriの値を入力 ※デフォルトで入力されている値で問題ないことが多いと思います。
  • Token URI:キーファイルのtoken_uriの値を入力 ※デフォルトで入力されている値で問題ないことが多いと思います。
  • Authentication Provider X509 Certificate URL:キーファイルのauth_provider_x509_cert_urlの値を入力 ※デフォルトで入力されている値で問題ないことが多いと思います。
  • Client X509 Certificate URL:キーファイルのclient_x509_cert_urlの値を入力

これらの情報を入力後、画面下部のTest Connectionを押し、問題なければSaveを押します。

これでコネクタは完成ですが、続けてIngestion、つまりはメタデータの抽出に関する設定を行う必要があります。Add ingestionを押します。

すると、Ingestionに関する情報の入力画面が出てきます。オプションとしては、このようなものがあります。

  • Name:この抽出処理の名称を入力、このOpenMetadataのアカウント内でユニークである必要があります
  • Database/Schema/Table Filter Pattern:正規表現で抽出対象のオブジェクトを絞り込める
  • Include Views:Viewも抽出対象に含めるかを切り替える
  • Include Tags:Snowflake上で定義されたタグも抽出対象に含めるかを切り替える
  • Mark Deleted Tables:抽出対象のテーブルが削除されていたら、OpenMetadata上でも削除するかどうかを切り替える

これらの設定を終えたら、右下のNextを押します。

続いて、抽出のスケジュールを選択します。設定を終えたら、Add & Deployを押します。

下図のように表示されたら、抽出の設定は完了です!

ちなみに、対象のIngestionsを手動実行することも出来ます。対象のIngestionのActions列にてRunを押せばOKです!

一度Ingestionをしてみたところ、オンデマンド契約のBigQueryにおいて、30個のテーブル・ビューの取得に1分ほどかかりました!

最後に

OpenMetadata SaaSで、BigQueryのメタデータを抽出するためのBigQuery Connectorを試してみました。

個人的には、同期速度が非常に速いことが好印象でしたね!