OpenMetadata SaaSのBigQuery Connectorを試してみた
さがらです。
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 Name
とDescription
を記入し、Next
を押します。
続いて、BigQueryに接続するための各種情報を入れる画面になります。先程生成したサービスアカウントのキーファイルを用いて、各情報を入力していきます。※今回は、GCS Credentials Configuration
をGCS 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を試してみました。
個人的には、同期速度が非常に速いことが好印象でしたね!