「SourceDB 到 Spanner」範本是一個批次管道,可將資料從關聯資料庫複製到現有的 Spanner 資料庫,並且使用 JDBC 來連結關聯資料庫。這個範本可以讓您透過適用的 JDBC 驅動程式,將資料從關聯資料庫複製到 Spanner。這項功能僅支援部分 MySQL 類型
為了增加多一層安全防護,您也可以傳遞 Cloud KMS 金鑰,以及使用 Cloud KMS 金鑰加密的 Base64 編碼使用者名稱、密碼和連線字串參數。如要進一步瞭解如何加密使用者名稱、密碼和連線字串參數,請參閱 Cloud KMS API 加密端點。
管道相關規定
- 關聯資料庫的 JDBC 驅動程式必須可供使用。
- Spanner 資料表必須在管道執行前存在。
- Spanner 資料表必須具備相容的結構定義。
- 關聯資料庫必須可從 Dataflow 執行時所在的子網路存取。
範本參數
參數 | 說明 |
---|---|
sourceConfigURL |
JDBC 連線網址字串,例如 jdbc:mysql://127.4.5.30:3306/my-db?autoReconnect=true&maxReconnects=10&unicode=true&characterEncoding=UTF-8 或分片設定。 |
instanceId |
目標 Cloud Spanner 執行個體。 |
databaseId |
目的地 Cloud Spanner 資料庫。 |
projectId |
這是 Cloud Spanner 專案的名稱。 |
outputDirectory |
這個目錄用於在遷移作業中傾印失敗/略過/篩選的記錄。 |
jdbcDriverJars |
選用:以逗號分隔的驅動程式 JAR 檔案清單。例如:gs://your-bucket/driver_jar1.jar,gs://your-bucket/driver_jar2.jar 。預設為空白。 |
jdbcDriverClassName |
選用:JDBC 驅動程式類別名稱,例如:com.mysql.jdbc.Driver 。預設值為:
com .mysql.jdbc.Driver。 |
username |
選用:JDBC 連線要使用的使用者名稱。預設為空白。 |
password |
選用:JDBC 連線使用的密碼。預設為空白。 |
tables |
選用:要從來源遷移的資料表。預設為空白。 |
numPartitions |
選用:分區數量。這項資訊會與上下限一起形成分區步幅,用於產生的 WHERE 子句運算式,平均分割分區資料欄。如果輸入的值小於 1,系統會將該值設為 1。
預設值為 0 。 |
spannerHost |
選用:要在範本中呼叫的 Cloud Spanner 端點。例如:https://batch-spanner.googleapis.com 。預設值為 https://batch-spanner .googleapis.com。 |
maxConnections |
選用:在每個工作站上設定 JDBC 連線集區,並指定連線數量上限。如要設為無限制,請使用負數。例如:-1 。預設值為 0 。 |
sessionFilePath |
選填:Cloud Storage 中的工作階段路徑,內含 Spanner 遷移工具的對應資訊。預設為空白。 |
transformationJarPath |
選用:Cloud Storage 中的自訂 JAR 位置,內含用於處理記錄的自訂轉換邏輯。預設為空白。 |
transformationClassName |
選用:具有自訂轉換邏輯的完整類別名稱。如果指定 transformationJarPath,這個欄位就必須填寫。預設為空白。 |
transformationCustomParameters |
選用:包含要傳遞至自訂轉換類別的任何自訂參數的字串。預設為空白。 |
disabledAlgorithms |
選用:以半形逗號分隔要停用的演算法。如果將這個值設為「無」,系統就不會停用任何演算法。請謹慎使用這個參數,因為預設停用的演算法可能存在安全漏洞或效能問題。例如:
SSLv3, RC4 。 |
extraFilesToStage |
選用:以半形逗號分隔的 Cloud Storage 路徑或 Secret Manager 密鑰,用於在工作站中暫存檔案。這些檔案會儲存在每個工作站的 /extra_files 目錄中。例如:
gs://<BUCKET>/file.txt,projects/<PROJECT_ID>/secrets/<SECRET_ID>/versions/<VERSION_ID> 。 |
執行範本
控制台
- 前往 Dataflow 的「Create job from template」(透過範本建立工作) 頁面。 前往「依據範本建立工作」
- 在「工作名稱」欄位中,輸入專屬工作名稱。
- 選用:如要使用區域端點,請從下拉式選單中選取值。預設區域為
us-central1
。如需可執行 Dataflow 工作的地區清單,請參閱「Dataflow 位置」。
- 從「Dataflow template」(Dataflow 範本) 下拉式選單中選取 the Sourcedb to Spanner template。
- 在提供的參數欄位中輸入參數值。
- 按一下「Run Job」(執行工作)。
gcloud CLI
在殼層或終端機中執行範本:
gcloud dataflow flex-template run JOB_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/Sourcedb_to_Spanner_Flex \ --project=PROJECT_ID \ --region=REGION_NAME \ --parameters \ sourceConfigURL=SOURCE_CONFIG_URL,\ instanceId=INSTANCE_ID,\ databaseId=DATABASE_ID,\ projectId=PROJECT_ID,\ outputDirectory=OUTPUT_DIRECTORY,\
更改下列內容:
JOB_NAME
: 您選擇的不重複工作名稱VERSION
: 您要使用的範本版本您可以使用下列值:
latest
,使用範本的最新版本,該版本位於值區中非依日期命名的上層資料夾:gs://dataflow-templates-REGION_NAME/latest/- 版本名稱 (例如
2023-09-12-00_RC00
),用於指定範本版本,該版本會以巢狀結構存放在值區中依日期命名的上層資料夾中:gs://dataflow-templates-REGION_NAME/
REGION_NAME
: 您要部署 Dataflow 工作的地區,例如us-central1
SOURCE_CONFIG_URL
:用來連線至來源資料庫主機的網址。可以是 1. JDBC 連線網址,必須包含主機、通訊埠和來源資料庫名稱,且可選擇性包含 autoReconnect、maxReconnects 等屬性。格式:`jdbc:mysql://{host}:{port}/{dbName}?{parameters}`2. 分片設定路徑INSTANCE_ID
:Cloud Spanner 執行個體 ID。DATABASE_ID
:Cloud Spanner 資料庫 ID。PROJECT_ID
:Cloud Spanner 專案 ID。OUTPUT_DIRECTORY
:失敗/略過/篩選事件的輸出目錄
API
如要使用 REST API 執行範本,請傳送 HTTP POST 要求。如要進一步瞭解 API 和授權範圍,請參閱 projects.templates.launch
。
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "launchParameter": { "jobName": "JOB_NAME", "parameters": { "sourceConfigURL": "SOURCE_CONFIG_URL", "instanceId": "INSTANCE_ID", "databaseId": "DATABASE_ID", "projectId": "PROJECT_ID", "outputDirectory": "OUTPUT_DIRECTORY", }, "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/Sourcedb_to_Spanner_Flex", "environment": { "maxWorkers": "10" } } }
更改下列內容:
PROJECT_ID
: 您要執行 Dataflow 工作的專案 ID Google CloudJOB_NAME
: 您選擇的不重複工作名稱VERSION
: 您要使用的範本版本您可以使用下列值:
latest
,使用範本的最新版本,該版本位於值區中非依日期命名的上層資料夾:gs://dataflow-templates-REGION_NAME/latest/- 版本名稱 (例如
2023-09-12-00_RC00
),用於指定範本版本,該版本會以巢狀結構存放在值區中依日期命名的上層資料夾中:gs://dataflow-templates-REGION_NAME/
LOCATION
: 您要部署 Dataflow 工作的地區,例如us-central1
SOURCE_CONFIG_URL
:用來連線至來源資料庫主機的網址。可以是 1. JDBC 連線網址,必須包含主機、通訊埠和來源資料庫名稱,且可選擇性包含 autoReconnect、maxReconnects 等屬性。格式:`jdbc:mysql://{host}:{port}/{dbName}?{parameters}`2. 分片設定路徑INSTANCE_ID
:Cloud Spanner 執行個體 ID。DATABASE_ID
:Cloud Spanner 資料庫 ID。PROJECT_ID
:Cloud Spanner 專案 ID。OUTPUT_DIRECTORY
:失敗/略過/篩選事件的輸出目錄