MySQL からメタデータをインポートする

このドキュメントでは、Knowledge Catalog コネクタを使用して、MySQL から Knowledge Catalog(以前の Dataplex Universal Catalog)にメタデータをインポートする方法について説明します。

このコネクタは、オンプレミス、Cloud SQL、または他のクラウド環境でホストされている MySQL インスタンスをサポートします。

MySQL からメタデータをインポートする前に、次のタスクを完了します。

  1. 必要なロールと権限を付与します。
  2. Knowledge Catalog API と BigQuery Data Transfer Service API を有効にします
  3. MySQL の前提条件を満たします。
  4. ネットワークの前提条件を満たします。

IAM のロールと権限

Knowledge Catalog コネクタ ジョブを作成して管理するには、Knowledge Catalog と BigQuery Data Transfer Service の権限を付与する Identity and Access Management(IAM)ロールが必要です。

MySQL コネクタの構成に必要な権限を取得するには、管理者に次の IAM ロールを付与するよう依頼してください。

また、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 を有効にします。

API を有効にする

MySQL の前提条件

MySQL 転送の前提条件を満たしていることを確認します。詳細については、BigQuery Data Transfer Service のドキュメントの MySQL の前提条件をご覧ください。

BigQuery Data Transfer Service の前提条件に加えて、MySQL データベースはメタデータ抽出に関して次の要件を満たしている必要があります。

  • 最小バージョン: MySQL バージョン 8.0 以降。
  • 必要な最小権限: 抽出ツールが INFORMATION_SCHEMA を正常にクエリしてメタデータを収集するには、特定の権限が必要です。

これらの権限により、次のメタデータが確実にカバーされます。

  • インスタンスとデータベースの情報: ホスト名、ポート、バージョン、スキーマ構成。
  • テーブルと列: コア構造、データ型、運用メタデータ(サイズや行数など)。
  • インデックスとパーティション: セカンダリ インデックス、パーティション メソッド、式。
  • ビュー: 仮想テーブルの構造と定義。
  • ルーティン: ストアド プロシージャ、関数、およびそれらのパラメータ。
  • 制約: 主キー、外部キー、一意、チェックの制約の詳細。
  • トリガー: トリガーの定義とイベントのタイミング。

これらの権限を付与するには、次の SQL スクリプトを実行します。

  1. ユーザーを作成します。

    CREATE USER 'USERNAME'@'%'
    IDENTIFIED BY 'PASSWORD';
    
  2. メタデータへのアクセス権を付与します。単一のターゲット データベースまたはインスタンス上のすべてのデータベースへのアクセス権を付与できます。

    単一のターゲット データベースまたはスキーマへのアクセス権を付与するには:

    GRANT SELECT, SHOW VIEW, REFERENCES, EXECUTE, TRIGGER
    ON DATABASE_NAME.*
    TO 'USERNAME'@'%';
    

    または、インスタンス上のすべてのデータベースに対するアクセス権を付与するには:

    GRANT SELECT, SHOW VIEW, REFERENCES, EXECUTE, TRIGGER
    ON *.*
    TO 'USERNAME'@'%';
    
  3. 抽出ツールがインスタンスで使用可能なすべてのデータベースを一覧表示できるようにします。

    GRANT SHOW DATABASES ON *.* TO 'USERNAME'@'%';
    
  4. 変更を適用します。

    FLUSH PRIVILEGES;
    

次のように置き換えます。

  • USERNAME: 構成するデータベース ユーザー。
  • PASSWORD: データベース ユーザーのパスワード。
  • DATABASE_NAME: アクセスする MySQL データベースの名前。

ネットワーキングの前提事項

プライベート ネットワーク内のプライベート IP アドレスを使用して外部データベースまたはサードパーティのクラウド データソースに安全に接続し、BigQuery Data Transfer Service がデータベースにアクセスできるようにするには、Private Service Connect を介した接続用のネットワーク アタッチメントが必要です。

パブリック IP アドレスを使用してオンプレミス環境またはクラウドホスト型インスタンスに接続する場合は、ネットワーク アタッチメントは必要ありません。

MySQL コネクタを構成する

Google Cloud コンソールまたは API を使用して MySQL コネクタを構成します。

コンソール

  1. Google Cloud コンソールで、[Knowledge Catalog] ページに移動します。

    Knowledge Catalog に移動

  2. ナビゲーション メニューの [管理] セクションで、[コネクタ] をクリックします。

  3. [Add connection] をクリックします。

  4. [コネクタ] リストで、[MySQL] カードを選択します。

  5. [データソースの詳細] セクションで、MySQL インスタンスの接続の詳細を指定します。

    • [ネットワーク アタッチメント] で、必要に応じて既存のネットワーク アタッチメントを選択するか、作成します。
    • ホストポートデータベース名ユーザー名パスワードを入力します。
    • TLS を使用する場合は、[TLS Mode] を選択し、[Trusted PEM Certificate] を指定します。
    • [MySQL metadata objects to import] で、[参照] をクリックしてオブジェクトを選択します。
  6. [宛先の設定] セクションで、次の操作を行います。

    • [参照] をクリックし、インポートしたメタデータを保存する既存の Knowledge Catalog エントリ グループを選択するか、[新しいエントリ グループを作成] をクリックします。
    • エントリ グループの権限を今すぐ設定するか、後で設定するかを選択します。ユーザーがインポートされたメタデータを表示できるように権限を設定します。プロジェクト レベルで BigQuery Data Transfer Service サービス エージェント(service-PROJECT_NUMBER@gcp-sa-bigquerydatatransfer.iam.gserviceaccount.com)に Dataplex エントリ グループ インポーターroles/dataplex.entryGroupImporter)ロールまたは dataplex.entryGroups.import 権限を付与していない場合は、エントリ グループ レベルで付与する必要があります。
  7. [コネクタ構成名] セクションの [表示名] に、メタデータ インポート ジョブの名前を入力します。

  8. [スケジュール オプション] セクションで、メタデータ インポート ジョブの頻度を構成します。[オンデマンド] を選択した場合、ジョブは手動でトリガーしたときにのみ実行されます。

  9. 省略可: [通知オプション] セクションで、ジョブの失敗に関するメール通知または Pub/Sub 通知を構成します。

  10. 省略可: [詳細オプション] セクションで、暗号化の設定を行います。顧客管理の暗号鍵(CMEK)を選択した場合、この鍵は Knowledge Catalog メタデータ インポート ジョブを開始する前にステージングされた一時データの暗号化に使用されます。宛先の Knowledge Catalog エントリ グループのメタデータの暗号化には使用されません。

  11. [保存] をクリックします。

REST

projects.locations.transferConfigs.create メソッドを使用します。TransferConfig リソースで、次のフィールドを構成します。

  • dataSourceId フィールドを "mysql" に設定します。
  • metadataDestination フィールドに、ターゲット Knowledge Catalog エントリ グループのリソースパスを含む dataplexConfiguration オブジェクトを入力します。projects/<var>PROJECT_ID</var>/locations/<var>LOCATION</var>/entryGroups/<var>ENTRY_GROUP_ID</var>

ジョブを作成すると、Knowledge Catalog は構成に従って最初の実行をスケジュールします。または、手動で開始することもできます。

次のステップ