排定 Snowflake 轉移作業
BigQuery 資料移轉服務提供的 Snowflake 連接器可讓您排定及管理自動移轉工作,使用公開 IP 允許清單將資料從 Snowflake 移轉至 BigQuery。
總覽
Snowflake 連接器會與 Google Kubernetes Engine 中的遷移代理程式相互通訊,並觸發從 Snowflake 傳輸至暫存區的載入作業,而暫存區與 Snowflake 位於同一個雲端供應商。如果是 AWS 代管的 Snowflake 帳戶,資料會先暫存在 Amazon S3 值區,然後透過 BigQuery 資料移轉服務移轉至 BigQuery。
下圖顯示如何將資料從 AWS 代管的 Snowflake 資料倉儲移轉至 BigQuery。
限制
使用 Snowflake 連接器進行資料轉移時,須遵守下列限制:
- 資料移轉僅支援 AWS 代管的 Snowflake 帳戶。不支援從 Google Cloud 或 Microsoft Azure 代管的 Snowflake 帳戶轉移資料。
- Snowflake 連接器不支援增量資料移轉。
- Snowflake 連接器僅支援從單一 Snowflake 資料庫和結構定義中的資料表轉移資料。如要從具有多個 Snowflake 資料庫或結構定義的資料表轉移資料,可以分別設定每項轉移工作。
- 從 Snowflake 將資料載入 Amazon S3 值區的速度,取決於您為這項移轉作業選擇的 Snowflake 倉儲。
系統會先以 Parquet 資料格式從 Snowflake 擷取資料,再載入至 BigQuery:
- 系統不支援下列 Parquet 資料類型:
TIMESTAMP_TZ
、TIMESTAMP_LTZ
OBJECT
、VARIANT
、ARRAY
- 詳情請參閱「評估 Snowflake 資料」。
系統不支援下列 Parquet 資料類型,但可以轉換:
TIMESTAMP_NTZ
使用全域類型轉換設定 YAML,在產生中繼資料並執行翻譯引擎時,將
DATETIME
轉換為TIMESTAMP
,藉此覆寫預設行為。設定 YAML 可能類似下列範例:
type: experimental_object_rewriter global: typeConvert: datetime: TIMESTAMP
- 系統不支援下列 Parquet 資料類型:
事前準備
設定 Snowflake 轉移作業前,請務必先完成本節列出的所有步驟。以下列出所有必要步驟。
- 準備專案 Google Cloud
- 必要 BigQuery 角色
- 準備 Amazon S3 值區
- 建立具備必要權限的 Snowflake 使用者
- 新增網路政策
- 產生中繼資料並執行翻譯引擎
- 評估 Snowflake 是否有任何不支援的資料類型
- 收集轉移資訊
準備專案 Google Cloud
請按照下列步驟建立及設定 Google Cloud 專案,以便轉移 Snowflake 資料:
建立 Google Cloud 專案或選取現有專案。
確認您已完成啟用 BigQuery 資料移轉服務的一切必要動作。
建立 BigQuery 資料集來儲存資料。您無須建立任何資料表。
須具備的 BigQuery 角色
如要取得建立移轉作業所需的權限,請要求管理員授予您 BigQuery 管理員 (roles/bigquery.admin
) 身分與存取權管理角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色具備建立轉移作業所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要建立移轉作業,必須具備下列權限:
-
bigquery.transfers.update
使用者或服務帳戶建立轉移設定 -
bigquery.datasets.get
使用者或服務帳戶建立轉移設定 -
bigquery.datasets.update
使用者或服務帳戶建立轉移設定
準備 Amazon S3 bucket
如要完成 Snowflake 資料移轉作業,您必須建立 Amazon S3 儲存空間,然後設定允許 Snowflake 寫入存取權。
建立 Amazon S3 值區。 Amazon S3 值區用於暫存資料,再載入至 BigQuery。
建立及設定 Snowflake 儲存空間整合物件,允許 Snowflake 將資料寫入 Amazon S3 儲存空間,做為外部階段。
如要允許 Amazon S3 儲存空間的讀取權限,您也必須執行下列操作:
建立專屬的 Amazon IAM 使用者,並授予 AmazonS3ReadOnlyAccess 政策。
為 IAM 使用者建立 Amazon 存取金鑰組。
建立具備必要權限的 Snowflake 使用者
在 Snowflake 轉移期間,Snowflake 連接器會使用 JDBC 連線連至 Snowflake 帳戶。您必須建立新的 Snowflake 使用者,並指派自訂角色,該角色僅具備執行資料移轉的必要權限:
// Create and configure new role, MIGRATION_ROLE GRANT USAGE ON WAREHOUSE WAREHOUSE_NAME TO ROLE MIGRATION_ROLE; GRANT USAGE ON DATABASE DATABASE_NAME TO ROLE MIGRATION_ROLE; GRANT USAGE ON SCHEMA DATABASE_NAME.SCHEMA_NAME TO ROLE MIGRATION_ROLE; // You can modify this to give select permissions for all tables in a schema GRANT SELECT ON TABLE DATABASE_NAME.SCHEMA_NAME.TABLE_NAME TO ROLE MIGRATION_ROLE; GRANT USAGE ON STORAGE_INTEGRATION_OBJECT_NAME TO ROLE MIGRATION_ROLE;
更改下列內容:
MIGRATION_ROLE
:您要建立的自訂角色名稱WAREHOUSE_NAME
:資料倉儲名稱DATABASE_NAME
:Snowflake 資料庫名稱SCHEMA_NAME
:Snowflake 結構定義的名稱TABLE_NAME
:此資料轉移作業中包含的 Snowflake 名稱STORAGE_INTEGRATION_OBJECT_NAME
:Snowflake 儲存空間整合物件的名稱。
新增聯播網政策
如果是公開連線,Snowflake 帳戶預設允許使用資料庫憑證進行公開連線。不過,您可能已設定網路規則或政策,導致 Snowflake 連接器無法連線至帳戶。在這種情況下,您必須將必要的 IP 位址加入許可清單。
下表列出用於公開轉移的區域和多區域位置 IP 位址。您可以只加入與資料集位置相對應的 IP 位址,也可以加入表格中列出的所有 IP 位址。這些是 Google 為 BigQuery 資料移轉服務資料移轉作業保留的 IP 位址。
如要將 IP 位址加入許可清單,請按照下列步驟操作:
地區位置
地區說明 | 地區名稱 | IP 位址 | |
---|---|---|---|
美洲 | |||
俄亥俄州哥倫布 | us-east5 |
34.162.72.184 34.162.173.185 34.162.205.205 34.162.81.45 34.162.182.149 34.162.59.92 34.162.157.190 34.162.191.145 |
|
達拉斯 | us-south1 |
34.174.172.89 34.174.40.67 34.174.5.11 34.174.96.109 34.174.148.99 34.174.176.19 34.174.253.135 34.174.129.163 |
|
愛荷華州 | us-central1 |
34.121.70.114 34.71.81.17 34.122.223.84 34.121.145.212 35.232.1.105 35.202.145.227 35.226.82.216 35.225.241.102 |
|
拉斯維加斯 | us-west4 |
34.125.53.201 34.125.69.174 34.125.159.85 34.125.152.1 34.125.195.166 34.125.50.249 34.125.68.55 34.125.91.116 |
|
洛杉磯 | us-west2 |
35.236.59.167 34.94.132.139 34.94.207.21 34.94.81.187 34.94.88.122 35.235.101.187 34.94.238.66 34.94.195.77 |
|
墨西哥 | northamerica-south1 |
34.51.6.35 34.51.7.113 34.51.12.83 34.51.10.94 34.51.11.219 34.51.11.52 34.51.2.114 34.51.15.251 |
|
蒙特婁 | northamerica-northeast1 |
34.95.20.253 35.203.31.219 34.95.22.233 34.95.27.99 35.203.12.23 35.203.39.46 35.203.116.49 35.203.104.223 |
|
北維吉尼亞州 | us-east4 |
35.245.95.250 35.245.126.228 35.236.225.172 35.245.86.140 35.199.31.35 35.199.19.115 35.230.167.48 35.245.128.132 35.245.111.126 35.236.209.21 |
|
奧勒岡州 | us-west1 |
35.197.117.207 35.199.178.12 35.197.86.233 34.82.155.140 35.247.28.48 35.247.31.246 35.247.106.13 34.105.85.54 |
|
鹽湖城 | us-west3 |
34.106.37.58 34.106.85.113 34.106.28.153 34.106.64.121 34.106.246.131 34.106.56.150 34.106.41.31 34.106.182.92 |
|
聖保羅 | southamerica-east1 |
35.199.88.228 34.95.169.140 35.198.53.30 34.95.144.215 35.247.250.120 35.247.255.158 34.95.231.121 35.198.8.157 |
|
聖地亞哥 | southamerica-west1 |
34.176.188.48 34.176.38.192 34.176.205.134 34.176.102.161 34.176.197.198 34.176.223.236 34.176.47.188 34.176.14.80 |
|
南卡羅來納州 | us-east1 |
35.196.207.183 35.237.231.98 104.196.102.222 35.231.13.201 34.75.129.215 34.75.127.9 35.229.36.137 35.237.91.139 |
|
多倫多 | northamerica-northeast2 |
34.124.116.108 34.124.116.107 34.124.116.102 34.124.116.80 34.124.116.72 34.124.116.85 34.124.116.20 34.124.116.68 |
|
歐洲 | |||
比利時 | europe-west1 |
35.240.36.149 35.205.171.56 34.76.234.4 35.205.38.234 34.77.237.73 35.195.107.238 35.195.52.87 34.76.102.189 |
|
柏林 | europe-west10 |
34.32.28.80 34.32.31.206 34.32.19.49 34.32.33.71 34.32.15.174 34.32.23.7 34.32.1.208 34.32.8.3 |
|
芬蘭 | europe-north1 |
35.228.35.94 35.228.183.156 35.228.211.18 35.228.146.84 35.228.103.114 35.228.53.184 35.228.203.85 35.228.183.138 |
|
法蘭克福 | europe-west3 |
35.246.153.144 35.198.80.78 35.246.181.106 35.246.211.135 34.89.165.108 35.198.68.187 35.242.223.6 34.89.137.180 |
|
倫敦 | europe-west2 |
35.189.119.113 35.189.101.107 35.189.69.131 35.197.205.93 35.189.121.178 35.189.121.41 35.189.85.30 35.197.195.192 |
|
馬德里 | europe-southwest1 |
34.175.99.115 34.175.186.237 34.175.39.130 34.175.135.49 34.175.1.49 34.175.95.94 34.175.102.118 34.175.166.114 |
|
米蘭 | europe-west8 |
34.154.183.149 34.154.40.104 34.154.59.51 34.154.86.2 34.154.182.20 34.154.127.144 34.154.201.251 34.154.0.104 |
|
荷蘭 | europe-west4 |
35.204.237.173 35.204.18.163 34.91.86.224 34.90.184.136 34.91.115.67 34.90.218.6 34.91.147.143 34.91.253.1 |
|
巴黎 | europe-west9 |
34.163.76.229 34.163.153.68 34.155.181.30 34.155.85.234 34.155.230.192 34.155.175.220 34.163.68.177 34.163.157.151 |
|
斯德哥爾摩 | europe-north2 |
34.51.133.48 34.51.136.177 34.51.128.140 34.51.141.252 34.51.139.127 34.51.142.55 34.51.134.218 34.51.138.9 |
|
杜林 | europe-west12 |
34.17.15.186 34.17.44.123 34.17.41.160 34.17.47.82 34.17.43.109 34.17.38.236 34.17.34.223 34.17.16.47 |
|
華沙 | europe-central2 |
34.118.72.8 34.118.45.245 34.118.69.169 34.116.244.189 34.116.170.150 34.118.97.148 34.116.148.164 34.116.168.127 |
|
蘇黎世 | europe-west6 |
34.65.205.160 34.65.121.140 34.65.196.143 34.65.9.133 34.65.156.193 34.65.216.124 34.65.233.83 34.65.168.250 |
|
亞太地區 | |||
德里 | asia-south2 |
34.126.212.96 34.126.212.85 34.126.208.224 34.126.212.94 34.126.208.226 34.126.212.232 34.126.212.93 34.126.212.206 |
|
香港 | asia-east2 |
34.92.245.180 35.241.116.105 35.220.240.216 35.220.188.244 34.92.196.78 34.92.165.209 35.220.193.228 34.96.153.178 |
|
雅加達 | asia-southeast2 |
34.101.79.105 34.101.129.32 34.101.244.197 34.101.100.180 34.101.109.205 34.101.185.189 34.101.179.27 34.101.197.251 |
|
墨爾本 | australia-southeast2 |
34.126.196.95 34.126.196.106 34.126.196.126 34.126.196.96 34.126.196.112 34.126.196.99 34.126.196.76 34.126.196.68 |
|
孟買 | asia-south1 |
34.93.67.112 35.244.0.1 35.200.245.13 35.200.203.161 34.93.209.130 34.93.120.224 35.244.10.12 35.200.186.100 |
|
大阪 | asia-northeast2 |
34.97.94.51 34.97.118.176 34.97.63.76 34.97.159.156 34.97.113.218 34.97.4.108 34.97.119.140 34.97.30.191 |
|
首爾 | asia-northeast3 |
34.64.152.215 34.64.140.241 34.64.133.199 34.64.174.192 34.64.145.219 34.64.136.56 34.64.247.158 34.64.135.220 |
|
新加坡 | asia-southeast1 |
34.87.12.235 34.87.63.5 34.87.91.51 35.198.197.191 35.240.253.175 35.247.165.193 35.247.181.82 35.247.189.103 |
|
雪梨 | australia-southeast1 |
35.189.33.150 35.189.38.5 35.189.29.88 35.189.22.179 35.189.20.163 35.189.29.83 35.189.31.141 35.189.14.219 |
|
台灣 | asia-east1 |
35.221.201.20 35.194.177.253 34.80.17.79 34.80.178.20 34.80.174.198 35.201.132.11 35.201.223.177 35.229.251.28 35.185.155.147 35.194.232.172 |
|
東京 | asia-northeast1 |
34.85.11.246 34.85.30.58 34.85.8.125 34.85.38.59 34.85.31.67 34.85.36.143 34.85.32.222 34.85.18.128 34.85.23.202 34.85.35.192 |
|
中東地區 | |||
達曼 | me-central2 |
34.166.20.177 34.166.10.104 34.166.21.128 34.166.19.184 34.166.20.83 34.166.18.138 34.166.18.48 34.166.23.171 |
|
杜哈 | me-central1 |
34.18.48.121 34.18.25.208 34.18.38.183 34.18.33.25 34.18.21.203 34.18.21.80 34.18.36.126 34.18.23.252 |
|
特拉維夫市 | me-west1 |
34.165.184.115 34.165.110.74 34.165.174.16 34.165.28.235 34.165.170.172 34.165.187.98 34.165.85.64 34.165.245.97 |
|
非洲 | |||
約翰尼斯堡 | africa-south1 |
34.35.11.24 34.35.10.66 34.35.8.32 34.35.3.248 34.35.2.113 34.35.5.61 34.35.7.53 34.35.3.17 |
多地區位置
多地區說明 | 多地區名稱 | IP 位址 |
---|---|---|
歐盟1成員國境內的資料中心 | EU |
34.76.156.158 34.76.156.172 34.76.136.146 34.76.1.29 34.76.156.232 34.76.156.81 34.76.156.246 34.76.102.206 34.76.129.246 34.76.121.168 |
美國資料中心 | US |
35.185.196.212 35.197.102.120 35.185.224.10 35.185.228.170 35.197.5.235 35.185.206.139 35.197.67.234 35.197.38.65 35.185.202.229 35.185.200.120 |
1 位於 EU
多地區的資料,不會存放在 europe-west2
(倫敦) 或 europe-west6
(蘇黎世) 資料中心。
生成中繼資料並執行翻譯引擎
將 Snowflake 資料表遷移至 BigQuery 時,Snowflake 連接器的 BigQuery 資料移轉服務會使用 BigQuery 遷移服務翻譯引擎進行結構定義對應。如要完成 Snowflake 資料轉移,請先產生用於轉換的中繼資料,然後執行轉換引擎:
- 執行 Snowflake 的
dwh-migration-tool
。詳情請參閱「產生翻譯和評估用的中繼資料」。 - 將產生的
metadata.zip
檔案上傳至 Cloud Storage bucket。翻譯引擎會將metadata.zip
檔案做為輸入內容。 執行批次翻譯服務,並將
target_types
欄位指定為metadata
。詳情請參閱「使用 Translation API 翻譯 SQL 查詢」。- 以下是為 Snowflake 執行批次翻譯的指令範例:
curl -d "{ \"name\": \"sf_2_bq_translation\", \"displayName\": \"Snowflake to BigQuery Translation\", \"tasks\": { string: { \"type\": \"Snowflake2BigQuery_Translation\", \"translation_details\": { \"target_base_uri\": \"gs://sf_test_translation/output\", \"source_target_mapping\": { \"source_spec\": { \"base_uri\": \"gs://sf_test_translation/input\" } }, \"target_types\": \"metadata\", } } }, }" \ -H "Content-Type:application/json" \ -H "Authorization: Bearer TOKEN" -X POST https://bigquerymigration.googleapis.com/v2alpha/projects/project_id/locations/location/workflows
- 您可以在 BigQuery 的 SQL 翻譯頁面中查看這項指令的狀態。
批次翻譯工作的輸出內容會儲存在
gs://translation_target_base_uri/metadata/config/
中。
必要的服務帳戶權限
在 Snowflake 移轉作業中,服務帳戶會用於從指定 Cloud Storage 路徑中的翻譯引擎輸出內容讀取資料。您必須授予服務帳戶 storage.objects.get
和 storage.objects.list
權限。
如果服務帳戶來自 Google Cloud 與建立 BigQuery 資料移轉作業的專案不同的專案,則您也必須啟用跨專案服務帳戶授權。
詳情請參閱「BigQuery IAM 角色和權限」。
評估 Snowflake 資料
BigQuery 會將 Snowflake 的資料寫入 Cloud Storage,並儲存為 Parquet 檔案。Parquet 檔案不支援 TIMESTAMP_TZ
和 TIMESTAMP_LTZ
資料類型。如果資料包含這些類型,您可以將資料匯出至 Amazon S3 做為 CSV 檔案,然後將 CSV 檔案匯入 BigQuery。詳情請參閱 Amazon S3 移轉作業總覽。
收集轉移資訊
收集所需資訊,以便使用 BigQuery 資料移轉服務設定遷移作業:
- 您的 Snowflake 帳戶 ID,也就是 Snowflake 帳戶網址中的前置碼。例如
ACCOUNT_IDENTIFIER.snowflakecomputing.com
。 - 具備適當權限的 Snowflake 資料庫使用者名稱和密碼。只要具備執行資料移轉作業的必要權限即可。
- 您要用於移轉的 Amazon S3 值區 URI,以及 AWS 使用者存取金鑰組。建議您為這個值區設定生命週期政策,避免產生不必要的費用。
- Cloud Storage 值區的 URI,您已在其中儲存從翻譯引擎取得的結構定義對應檔。
設定 Snowflake 轉移作業
選取下列選項之一:
主控台
前往 Google Cloud 控制台的「資料移轉」頁面。
按一下
「建立移轉作業」。在「來源類型」部分,從「來源」清單中選取「Snowflake 遷移」。
在「Transfer config name」(轉移設定名稱) 區段中,於「Display name」(顯示名稱) 欄位輸入移轉作業的名稱,例如
My migration
。顯示名稱可以是任意值,日後需要修改移轉作業時,能夠據此識別即可。在「Destination settings」(目的地設定) 部分,從「Dataset」(資料集) 清單中選擇您建立的資料集。
在「Data source details」(資料來源詳細資料) 部分執行下列操作:
- 在「帳戶 ID」中,輸入 Snowflake 帳戶的專屬 ID,也就是機構名稱和帳戶名稱的組合。這個 ID 是 Snowflake 帳戶網址的前置字元,而非完整網址。例如:
ACCOUNT_IDENTIFIER.snowflakecomputing.com
。 - 在「Username」(使用者名稱) 中,輸入 Snowflake 使用者名稱。系統會使用該使用者的憑證和授權,存取資料庫並轉移 Snowflake 資料表。建議您使用為這項轉移作業建立的使用者。
- 在「Password」(密碼) 中輸入 Snowflake 使用者的密碼。
- 在「Warehouse」中,輸入用於執行這項資料移轉作業的倉庫。
- 在「服務帳戶」中,輸入要用於這項資料移轉作業的服務帳戶。服務帳戶應屬於建立移轉設定和目的地資料集的相同Google Cloud 專案。服務帳戶必須具備
storage.objects.list
和storage.objects.get
必要權限。 - 在「Database」(資料庫) 中,輸入包含此資料移轉作業所含資料表的 Snowflake 資料庫名稱。
- 在「結構定義」部分,輸入包含此資料移轉作業所含資料表的 Snowflake 結構定義名稱。
在「Table name patterns」(資料表名稱格式) 部分,輸入符合結構定義中資料表名稱的名稱或格式,指定要移轉的資料表。您可以使用規則運算式指定模式,例如
table1_regex;table2_regex
。此格式必須遵循 Java 規則運算式語法。例如,假設使用者要求系統 將文字從英文翻譯成法文lineitem;ordertb
會比對名為lineitem
和ordertb
的資料表。.*
會比對所有資料表。
在「Translation output GCS path」(翻譯輸出 GCS 路徑) 中,指定包含翻譯引擎的結構定義對應檔案的 Cloud Storage 資料夾路徑。
- 路徑應採用下列格式:
gs:/translation_target_base_uri/metadata/config/db/schema/
且必須以/
結尾。
- 路徑應採用下列格式:
在「Storage integration object name」(儲存空間整合物件名稱) 中,輸入 Snowflake 儲存空間整合物件的名稱。在這種情況下,
S3
。在「雲端服務供應商」部分,選取
AWS
。如要使用 GCS URI、Azure 儲存體帳戶名稱、Azure 容器名稱、Azure SAS,請將這些欄位留空。
在「Amazon S3 URI」部分,輸入將做為暫存區使用的 S3 值區的 URI。
在「Access key ID」(存取金鑰 ID) 和「Secret access key」(存取密鑰) 部分,輸入存取金鑰組。
- 在「帳戶 ID」中,輸入 Snowflake 帳戶的專屬 ID,也就是機構名稱和帳戶名稱的組合。這個 ID 是 Snowflake 帳戶網址的前置字元,而非完整網址。例如:
選用:在「Notification options」(通知選項) 專區,執行下列操作:
按一下 [儲存]。
Google Cloud 控制台會顯示移轉設定的所有詳細資料,包括此移轉作業的「Resource name」(資源名稱)。
bq
輸入 bq mk
指令並加上移轉建立作業旗標 --transfer_config
。還需加上以下旗標:
--project_id
--data_source
--target_dataset
--display_name
--params
bq mk \ --transfer_config \ --project_id=project_id \ --data_source=data_source \ --target_dataset=dataset \ --display_name=name \ --service_account_name=service_account \ --params='parameters'
更改下列內容:
- project_id:您的 Google Cloud 專案 ID。如果未指定
--project_id
,系統會使用預設專案。 - data_source:資料來源
snowflake_migration
。 - dataset:移轉設定的 BigQuery 目標資料集。
- name:移轉設定的顯示名稱。移轉作業名稱可以是任意值,日後需要修改移轉作業時,能夠據此識別即可。
- service_account:(選用) 用於驗證轉移作業的服務帳戶名稱。服務帳戶應由用於建立移轉作業的
project_id
擁有,且應具備所有必要角色。 - parameters:已建立移轉設定的 JSON 格式參數。例如:
--params='{"param":"param_value"}'
。
Snowflake 移轉設定所需的參數如下:
account_identifier
:Snowflake 帳戶的專屬 ID,由機構名稱和帳戶名稱組成。這個 ID 是 Snowflake 帳戶網址的前置字元,而非完整網址。例如:account_identifier.snowflakecomputing.com
。username
:Snowflake 使用者的使用者名稱,系統會使用該使用者的憑證和授權,存取資料庫以轉移 Snowflake 資料表。password
:輸入 Snowflake 使用者的密碼。warehouse
:輸入用於執行這項資料移轉作業的倉儲。service_account
:輸入要用於這項資料移轉作業的服務帳戶。服務帳戶應屬於同一個 Google Cloud 專案,也就是建立移轉設定和目的地資料集的專案。服務帳戶必須具備storage.objects.list
和storage.objects.get
必要權限。database
:輸入包含此資料轉移作業所用資料表的 Snowflake 資料庫名稱。schema
:輸入包含這個資料移轉作業所含資料表的 Snowflake 結構定義名稱。table_name_patterns
:輸入名稱或符合結構定義中資料表名稱的格式,指定要轉移的資料表。您可以使用規則運算式指定模式,例如table1_regex;table2_regex
。此格式必須遵循 Java 規則運算式語法。例如,假設使用者要求系統 將文字從英文翻譯成法文lineitem;ordertb
會比對名為lineitem
和ordertb
的資料表。.*
會比對所有資料表。您也可以將這個欄位留白,用以遷移所有來自指定結構定義的資料表。
translation_output_gcs_path
:指定翻譯引擎的結構定義對應檔案所在的 Cloud Storage 資料夾路徑。- 路徑應採用下列格式:
gs:/translation_target_base_uri/metadata/config/db/schema/
且必須以/
結尾。
- 路徑應採用下列格式:
storage_integration_object_name
:輸入 Snowflake 儲存空間整合物件的名稱。在這種情況下,S3
。cloud_provider
:輸入AWS
。amazon_s3_uri
:輸入將做為暫存區使用的 S3 值區 URI。aws_access_key_id
:輸入存取金鑰組。aws_secret_access_key
:輸入存取金鑰組。
舉例來說,下列指令會建立名為 snowflake transfer config
的 Snowflake 移轉作業,其中目標資料集的名稱為 your_bq_dataset
,專案的 ID 為 your_project_id
。
PARAMS='{ "account_identifier": "your_account_identifier", "aws_access_key_id": "your_access_key_id", "aws_secret_access_key": "your_aws_secret_access_key", "cloud_provider": "AWS", "database": "your_sf_database", "password": "your_sf_password", "schema": "your_snowflake_schema", "service_account": "your_service_account", "storage_integration_object_name": "your_storage_integration_object", "staging_s3_uri": "s3://your/s3/bucket/uri", "table_name_patterns": ".*", "translation_output_gcs_path": "gs://sf_test_translation/output/metadata/config/database_name/schema_name/", "username": "your_sf_username", "warehouse": "your_warehouse" }' bq mk --transfer_config \ --project_id=your_project_id \ --target_dataset=your_bq_dataset \ --display_name='snowflake transfer config' \ --params="$PARAMS" \ --data_source=snowflake_migration
API
請使用 projects.locations.transferConfigs.create
方法,並提供 TransferConfig
資源的執行個體。
配額與限制
每個資料表之每個載入工作的 BigQuery 載入配額皆為 15 TB。Snowflake 會在內部壓縮資料表資料,因此匯出的資料表大小會大於 Snowflake 回報的資料表大小。如果您打算遷移大於 15 TB 的資料表,請與 dts-migration-preview-support@google.com 聯絡。
由於 Amazon S3 的一致性模型,您可以在移轉到 BigQuery 時不納入部分檔案。
定價
如要瞭解 BigQuery 資料移轉服務定價,請參閱定價頁面。
- 如果 Snowflake 倉庫和 Amazon S3 值區位於不同區域,執行 Snowflake 資料移轉作業時,Snowflake 會收取輸出費用。如果 Snowflake 倉儲和 Amazon S3 值區位於同一區域,則 Snowflake 資料移轉不會產生輸出費用。
- 從 AWS 移轉資料至 Google Cloud時,須支付跨雲端輸出費用。
後續步驟
- 進一步瞭解 BigQuery 資料移轉服務。
- 使用批次 SQL 轉譯功能遷移 SQL 程式碼。