このドキュメントでは、Knowledge Catalog コネクタを使用して、PostgreSQL から Knowledge Catalog(旧称: Dataplex Universal Catalog)にメタデータをインポートする方法について説明します。
このコネクタは、オンプレミス、Cloud SQL、または他のクラウド環境でホストされている PostgreSQL インスタンスをサポートしています。
始める前に
PostgreSQL からメタデータをインポートする前に、次のタスクを完了します。
- 必要なロールと権限を付与します。
- Knowledge Catalog API と BigQuery Data Transfer Service API を有効にします。
- PostgreSQL の前提条件を満たします。
- ネットワーキングの前提条件を満たします。
IAM のロールと権限
Knowledge Catalog コネクタ ジョブを作成して管理するには、Knowledge Catalog と BigQuery Data Transfer Service の権限を付与する Identity and Access Management(IAM)ロールが必要です。
PostgreSQL コネクタを構成するために必要な権限を取得するには、管理者に次の IAM ロールを付与するよう依頼してください。
- エントリ グループを作成、管理する: プロジェクトに対する Dataplex Catalog 管理者
(
roles/dataplex.catalogAdmin)、Dataplex Catalog 編集者 (roles/dataplex.catalogEditor)、または Dataplex エントリ グループ オーナー (roles/dataplex.entryGroupOwner)。 - BigQuery Data Transfer Service 転送ジョブを作成して管理する: BigQuery 管理者
(
roles/bigquery.admin)がプロジェクトに対して必要です。 - Cloud Logging でログを表示する: ログビューア
(
roles/logging.viewer)をプロジェクトに対して。
また、BigQuery Data Transfer Service サービス エージェント
(service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com)に
dataplex.entryGroups.import権限または Dataplex エントリ グループ
インポーター
(roles/dataplex.entryGroupImporter)ロールを付与する必要があります。このロールは、プロジェクト レベルまたはエントリ グループ レベルで付与できます。
ロールの付与の詳細については、アクセスの管理 をご覧ください。
API を有効にする
Knowledge Catalog API と BigQuery Data Transfer Service API を有効にします。
PostgreSQL の前提条件
PostgreSQL 転送の前提条件を満たしていることを確認します。詳細については、BigQuery Data Transfer Service のドキュメントの PostgreSQL の前提条件をご覧ください。
BigQuery Data Transfer Service の前提条件に加えて、PostgreSQL データベースはメタデータの抽出に関して次の要件を満たしている必要があります。
- 最小バージョン: PostgreSQL バージョン 15 以降。
- 必要な最小権限: 抽出ツールがメタデータを正常に収集するには、特定の権限が必要です。
これらの権限を付与するには、次の SQL ステートメントを実行します。
データベースへの接続を許可します。
GRANT CONNECT ON DATABASE DATABASE_NAME TO USERNAME;スキーマの使用権を付与します。
GRANT USAGE ON SCHEMA SCHEMA_NAME TO USERNAME;必要な読み取りロールをユーザーに付与します。
GRANT pg_read_all_data TO USERNAME; GRANT pg_read_all_settings TO USERNAME; GRANT pg_read_all_stats TO USERNAME;
次のように置き換えます。
DATABASE_NAME: アクセスする PostgreSQL データベースの名前。USERNAME: 構成するデータベース ユーザー。SCHEMA_NAME: アクセスするスキーマの名前。
ネットワーキングの前提事項
プライベート ネットワーク内のプライベート IP アドレスを使用して外部データベースまたはサードパーティのクラウド データソースに安全に接続する場合は、Private Service Connect を介した接続用のネットワーク アタッチメントが必要です。これにより、BigQuery Data Transfer Service がデータベースにアクセスできるようになります。
パブリック IP アドレスを使用してオンプレミス環境またはクラウド ホスト型インスタンスに接続する場合、ネットワーク アタッチメントは必要ありません。
PostgreSQL コネクタを構成する
コンソールまたは API を使用して PostgreSQL コネクタを構成します。 Google Cloud
コンソール
コンソールで、[Knowledge Catalog] ページに移動します。 Google Cloud
- ナビゲーション メニューの [管理] セクションで、[コネクタ] をクリックします。
- [Add connection] をクリックします。
- [コネクタ] リストで、[PostgreSQL] カードを選択します。
- [データソースの詳細] セクションで、PostgreSQL インスタンスの接続の詳細を指定します。
- [ネットワーク アタッチメント] で、必要に応じて既存のネットワーク アタッチメントを選択するか、作成します。
- [ホスト]、[ポート]、[データベース名]、[ユーザー名]、および [パスワード]を入力します。
- TLS を使用する場合は、[TLS モード] を選択し、[信頼できる PEM 証明書] を指定します。
- [**インポートする PostgreSQL メタデータ オブジェクト**] で、[**参照**] をクリックしてオブジェクトを選択します。
- [宛先の設定] セクションで、次の操作を行います。
- [参照] をクリックし、インポートしたメタデータを保存する既存のKnowledge Catalog エントリ グループ を選択するか、[新しいエントリ グループを作成] をクリックします。
- エントリ グループに権限を設定するかどうかを今すぐ選択するか、後で選択します。
ユーザーがインポートしたメタデータを表示できるように権限を設定することをおすすめします。プロジェクト レベルで BigQuery Data Transfer Service サービス エージェント
(
service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com) に Dataplex エントリ グループ インポーター (roles/dataplex.entryGroupImporter)ロールまたは dataplex.entryGroups.import 権限を付与していない場合は、エントリ グループ レベルで付与する必要があります。
- [**コネクタ構成名**] セクションの [**表示名**] に、メタデータ インポート ジョブの 名前を入力します。
- [スケジュール オプション] セクションで、メタデータ インポート ジョブの頻度を構成します。[オンデマンド] を選択した場合、ジョブは手動でトリガーしたときにのみ実行されます。
- 省略可: [通知オプション] セクションで、ジョブの失敗に関するメールまたは Pub/Sub 通知を構成します。
- 省略可: [詳細オプション] セクションで、暗号化の設定を構成します。顧客管理の暗号鍵(CMEK)を選択した場合、この鍵は Knowledge Catalog メタデータ インポート ジョブを開始する前にステージングされた一時データの暗号化に使用されます。宛先の Knowledge Catalog エントリ グループ内のメタデータの暗号化には使用されません。
- [保存] をクリックします。
REST
projects.locations.transferConfigs.create
メソッドを使用します。TransferConfig
リソースで、次のフィールドを構成します。
dataSourceIdフィールドを"postgresql"に設定します。metadataDestinationフィールドで、ターゲット Knowledge Catalog エントリ グループのリソースパスdataplexConfigurationを使用してprojects/<var>PROJECT_ID</var>/locations/<var>LOCATION</var>/entryGroups/<var>ENTRY_GROUP_ID</var>オブジェクトを設定します。
ジョブを作成すると、Knowledge Catalog は構成に基づいて最初の実行をスケジュールします。手動で開始することもできます。
次のステップ
- コネクタ ジョブを管理する方法を学習する。