テンプレートを使用して取り込む

Dataplex Universal Catalog は、データの取り込み、処理、データ ライフサイクルの管理などの一般的なデータ処理タスクを実行するための(Dataflow が供給する)テンプレートを提供します。このガイドでは、JDBC 接続を使用してデータを取り込むテンプレートを構成して実行する方法について説明します。

始める前に

Dataplex Universal Catalog タスク テンプレートは、Dataflow によって提供されます。テンプレートを使用する前に、Dataflow API を有効にします。

Dataflow API を有効にする

テンプレート: JDBC 接続を使用して Dataplex Universal Catalog にデータを取り込む

Dataplex Universal Catalog JDBC 取り込みテンプレートは、リレーショナル データベースから Dataplex Universal Catalog アセット ターゲットにデータをコピーします。Dataplex Universal Catalog アセットは、Cloud Storage アセットまたは BigQuery アセットにすることができます。

このパイプラインは、JDBC を使用してリレーショナル データベースに接続します。保護をさらに強化するために、Cloud KMS 鍵で暗号化された Base64 でエンコードされたユーザー名、パスワード、接続文字列パラメータを渡すこともできます。

テンプレートは、さまざまなアセットタイプを透過的に処理します。Cloud Storage アセットに格納されたデータは、Hive スタイルのパーティション分割であり、Dataplex Universal Catalog Discovery により、Data Catalog(非推奨)、BigQuery(外部テーブル)のテーブルまたは接続された Dataproc Metastore インスタンスとして自動的に利用可能になります。

テンプレートのパラメータ

パラメータ 説明
driverJars カンマを使用して、JDBC ドライバ用に Cloud Storage パスを分割します。
例: gs://your-bucket/driver_jar1.jargs://your-bucket/driver_jar2.jar.
connectionURL JDBC ソースに接続する URL 接続文字列。
例:jdbc:mysql://some-host:3306/sampledb
接続 URL は、書式なしテキストとして、または Cloud KMS によって暗号化された Base64 エンコード文字列として渡すことができます。
driverClassName JDBC ドライバのクラス名。
例: com.mysql.jdbc.Driver
connectionProperties JDBC 接続に使用するプロパティ文字列。
例: unicode=true&characterEncoding=UTF-8
query データを抽出するためにソース上で実行されるクエリ。
例: select * from sampledb.sample_table
outputAsset 結果が保存される Dataplex Universal Catalog 出力アセット ID。ID には projects/your-project/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name></code> の形式を使用します。outputAsset は、 Google Cloud コンソールの Dataplex Universal Catalog アセットの [詳細] タブで確認できます。
username JDBC 接続に使用するユーザー名。ユーザー名は、書式なしテキストとして、または Cloud KMS によって暗号化された Base64 エンコード文字列として渡すことができます。
password JDBC 接続に使用するパスワードパスワードは、書式なしテキストとして、または Cloud KMS によって暗号化された Base64 エンコード文字列として渡すことができます。
outputTable 出力を書き込む BigQuery テーブルのロケーションまたは Cloud Storage の最上位フォルダ名。BigQuery テーブルのロケーションの場合、テーブルのスキーマはソースクエリ スキーマと一致している必要があり、some-project-id:somedataset.sometable の形式であるべきです。Cloud Storage の最上位のフォルダの場合は、最上位のフォルダ名を指定します。
KMSEncryptionKey 省略可: KMSEncryptionKey パラメータを指定する場合は、passwordusernameconnectionURL が Cloud KMS によって暗号化されていることを確認します。Cloud KMS API 暗号化エンドポイントを使用してこれらのパラメータを暗号化します。例: projects/your-project/locations/global/keyRings/test/cryptoKeys/quickstart
writeDisposition (省略可)ターゲット ファイル / テーブルが存在する場合に使用する戦略。サポートされている形式は、WRITE_APPEND(テーブルが存在する場合は行が追加されます)、WRITE_TRUNCATE(テーブル / ファイルが上書きされます)、WRITE_EMPTY(出力テーブルは空である必要があります / 出力ファイルは存在してはなりません)、SKIP(存在する場合はファイルへの書き込みをスキップします)です。BigQuery では、WRITE_APPEND WRITE_TRUNCATEWRITE_EMPTY の形式を使用できます。Cloud Storage の場合、使用できる形式は SKIPWRITE_TRUNCATEWRITE_EMPTY です。デフォルト: WRITE_EMPTY
partitioningScheme (省略可)ファイル書き込み時のパーティション スキーム。このパラメータのデフォルト値は DAILY です。パラメータの他の値は MONTHLY または HOURLY となりえます。
partitionColumn (省略可)パーティションのベースとなるパーティション列。列の種類は timestamp/date 形式にする必要があります。partitionColumn パラメータが指定されていない場合、データはパーティション分割されません。
fileFormat 省略可: Cloud Storage の出力ファイル形式。ファイルは、デフォルトの設定である Snappy 圧縮で圧縮されます。このパラメータのデフォルト値は PARQUET です。パラメータの別の値は AVRO です。
updateDataplexMetadata

省略可: 新しく作成されたエンティティの Dataplex Universal Catalog メタデータを更新するかどうか。このパラメータのデフォルト値は false です。

有効にすると、パイプラインによりスキーマがソースからコピー先の Dataplex Universal Catalog エンティティに自動的にコピーされ、自動化された Dataplex Universal Catalog Discovery は Dataplex エンティティに対して実行されません。このフラグは、ソースでスキーマを管理している場合に使用します。

Cloud Storage の宛先でのみサポートされます。

テンプレートを実行する

コンソール

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

    Dataplex Universal Catalog に移動

  2. [プロセス] ビューに移動します。

  3. [タスクを作成] をクリックします。

  4. [JDBC を Dataplex に取り込む] で、[タスクの作成] をクリックします。

  5. Dataplex Universal Catalog レイクを選択します。

  6. タスク名を指定します。

  7. タスクの実行に使用するリージョンを選択します。

  8. 必要なパラメータを入力します。

  9. [続行] をクリックします。

gcloud

シェルまたはターミナルで、次のテンプレートを実行します。

gcloud beta dataflow flex-template run JOB_NAME \
--project=PROJECT_ID \
--region=REGION_NAME \
--template-file-gcs-location=gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_JDBC_Ingestion_Preview \
--parameters \
driverJars=DRIVER_JARS,\
connectionUrl=CONNECTION_URL,\
driverClassName=DRIVER_CLASS_NAME,\
connectionProperties=CONNECTION_PROPERTIES,\
query=QUERY\
outputAsset=OUTPUT_ASSET\

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

JOB_NAME: a job name of your choice
PROJECT_ID: your template project ID
DRIVER_JARS: path to your JDBC drivers
CONNECTION_URL: your JDBC connection URL string
DRIVER_CLASS_NAME: your JDBC driver class name
CONNECTION_PROPERTIES: your JDBC connection property string
QUERY: your JDBC source SQL query
OUTPUT_ASSET: your Dataplex Universal Catalog output asset ID

REST API

HTTP POST リクエストを送信します。

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION_NAME/flexTemplates:launch
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "driverJars": "DRIVER_JARS",
          "connectionUrl": "CONNECTION_URL",
          "driverClassName": "DRIVER_CLASS_NAME",
          "connectionProperties": "CONNECTION_PROPERTIES",
          "query": "QUERY"
          "outputAsset": "OUTPUT_ASSET"
      },
      "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_JDBC_Ingestion_Preview",
   }
}

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

PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
JOB_NAME: a job name of your choice
DRIVER_JARS: path to your JDBC drivers
CONNECTION_URL: your JDBC connection URL string
DRIVER_CLASS_NAME: your JDBC driver class name
CONNECTION_PROPERTIES: your JDBC connection property string
QUERY: your JDBC source SQL query
OUTPUT_ASSET: your Dataplex Universal Catalog output asset ID

次のステップ