使用範本擷取內容

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 金鑰,以及使用 Cloud KMS 金鑰加密的 Base64 編碼使用者名稱、密碼和連線字串參數。

範本會以透明方式處理不同資產類型。儲存在 Cloud Storage 資產中的資料會以 Hive 樣式分區,而 Dataplex Universal Catalog Discovery 會自動將資料做為資料目錄 (已淘汰)、BigQuery (外部資料表) 或已連結的 Dataproc Metastore 執行個體中的資料表。

範本參數

參數 說明
driverJars 以半形逗號分隔 JDBC 驅動程式的 Cloud Storage 路徑。
例如: gs://your-bucket/driver_jar1.jargs://your-bucket/driver_jar2.jar.
connectionURL 用於連線至 JDBC 來源的網址連線字串。
例如:jdbc:mysql://some-host:3306/sampledb
您可以傳遞連線網址做為純文字,或是以 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 控制台的 Dataplex Universal Catalog 資產「詳細資料」 Google Cloud 分頁中找到。
username JDBC 連線要使用的使用者名稱。您可以將使用者名稱以純文字或 Base64 編碼字串的形式傳遞,並使用 Cloud KMS 加密。
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。參數的其他值可以是 MONTHLYHOURLY
partitionColumn 選用:分區依據的分區資料欄。資料欄類型必須為 timestamp/date 格式。如果未提供 partitionColumn 參數,系統就不會分割資料。
fileFormat 選用:Cloud Storage 中的輸出檔案格式。檔案會以預設的 Snappy 壓縮設定壓縮。這個參數的預設值為 PARQUET。參數的另一個值是 AVRO
updateDataplexMetadata

選用:是否要更新新建立實體的 Dataplex Universal Catalog 中繼資料。這個參數的預設值是 false

啟用後,管道會自動將來源的結構定義複製到目的地 Dataplex Universal Catalog 實體,且系統不會為這些實體執行自動 Dataplex Universal Catalog 探索作業。如果是在來源端管理結構定義,請使用這個標記。

僅支援 Cloud Storage 目的地。

執行範本

控制台

  1. 前往 Google Cloud 控制台的 Dataplex Universal Catalog「Process」(程序) 頁面:

    前往「程序」

  2. 按一下「建立工作」

  3. 在「將 JDBC 擷取至 Dataplex」下方,按一下「建立工作」

  4. 選擇 Dataplex Universal Catalog 湖泊。

  5. 提供工作名稱。

  6. 選擇執行工作的區域。

  7. 填寫必要參數。

  8. 按一下「繼續」

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

後續步驟