排定 Snowflake 轉移作業

BigQuery 資料移轉服務提供的 Snowflake 連接器可讓您排定及管理自動移轉工作,使用公開 IP 允許清單將資料從 Snowflake 移轉至 BigQuery。

總覽

Snowflake 連接器會與 Google Kubernetes Engine 中的遷移代理程式相互通訊,並觸發從 Snowflake 傳輸至暫存區的載入作業,而暫存區與 Snowflake 位於同一個雲端供應商。如果是 AWS 代管的 Snowflake 帳戶,資料會先暫存在 Amazon S3 值區,然後透過 BigQuery 資料移轉服務移轉至 BigQuery。

下圖顯示如何將資料從 AWS 代管的 Snowflake 資料倉儲移轉至 BigQuery。

從 Snowflake 遷移至 BigQuery 時的資料流。

限制

使用 Snowflake 連接器進行資料轉移時,須遵守下列限制:

  • 資料移轉僅支援 AWS 代管的 Snowflake 帳戶。不支援從 Google Cloud 或 Microsoft Azure 代管的 Snowflake 帳戶轉移資料。
  • Snowflake 連接器不支援增量資料移轉。
  • Snowflake 連接器僅支援從單一 Snowflake 資料庫和結構定義中的資料表轉移資料。如要從具有多個 Snowflake 資料庫或結構定義的資料表轉移資料,可以分別設定每項轉移工作。
  • 從 Snowflake 將資料載入 Amazon S3 值區的速度,取決於您為這項移轉作業選擇的 Snowflake 倉儲。
  • 系統會先以 Parquet 資料格式從 Snowflake 擷取資料,再載入至 BigQuery:

    • 系統不支援下列 Parquet 資料類型:
    • 系統不支援下列 Parquet 資料類型,但可以轉換:

      • TIMESTAMP_NTZ

      使用全域類型轉換設定 YAML,在產生中繼資料並執行翻譯引擎時,將 DATETIME 轉換為 TIMESTAMP,藉此覆寫預設行為。

      設定 YAML 可能類似下列範例:

      type: experimental_object_rewriter
      global:
        typeConvert:
          datetime: TIMESTAMP
      

事前準備

設定 Snowflake 轉移作業前,請務必先完成本節列出的所有步驟。以下列出所有必要步驟。

  1. 準備專案 Google Cloud
  2. 必要 BigQuery 角色
  3. 準備 Amazon S3 值區
  4. 建立具備必要權限的 Snowflake 使用者
  5. 新增網路政策
  6. 產生中繼資料並執行翻譯引擎
  7. 評估 Snowflake 是否有任何不支援的資料類型
  8. 收集轉移資訊

準備專案 Google Cloud

請按照下列步驟建立及設定 Google Cloud 專案,以便轉移 Snowflake 資料:

  1. 建立 Google Cloud 專案或選取現有專案。

  2. 確認您已完成啟用 BigQuery 資料移轉服務的一切必要動作。

  3. 建立 BigQuery 資料集來儲存資料。您無須建立任何資料表。

須具備的 BigQuery 角色

如要取得建立移轉作業所需的權限,請要求管理員授予您 BigQuery 管理員 (roles/bigquery.admin) 身分與存取權管理角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

這個預先定義的角色具備建立轉移作業所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:

所需權限

如要建立移轉作業,必須具備下列權限:

  • bigquery.transfers.update 使用者或服務帳戶建立轉移設定
  • bigquery.datasets.get 使用者或服務帳戶建立轉移設定
  • bigquery.datasets.update 使用者或服務帳戶建立轉移設定

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

準備 Amazon S3 bucket

如要完成 Snowflake 資料移轉作業,您必須建立 Amazon S3 儲存空間,然後設定允許 Snowflake 寫入存取權。

  1. 建立 Amazon S3 值區。 Amazon S3 值區用於暫存資料,再載入至 BigQuery。

  2. 建立及設定 Snowflake 儲存空間整合物件,允許 Snowflake 將資料寫入 Amazon S3 儲存空間,做為外部階段。

如要允許 Amazon S3 儲存空間的讀取權限,您也必須執行下列操作:

  1. 建立專屬的 Amazon IAM 使用者,並授予 AmazonS3ReadOnlyAccess 政策。

  2. 為 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_NAMESnowflake 儲存空間整合物件的名稱。

新增聯播網政策

如果是公開連線,Snowflake 帳戶預設允許使用資料庫憑證進行公開連線。不過,您可能已設定網路規則或政策,導致 Snowflake 連接器無法連線至帳戶。在這種情況下,您必須將必要的 IP 位址加入許可清單。

下表列出用於公開轉移的區域和多區域位置 IP 位址。您可以只加入與資料集位置相對應的 IP 位址,也可以加入表格中列出的所有 IP 位址。這些是 Google 為 BigQuery 資料移轉服務資料移轉作業保留的 IP 位址。

如要將 IP 位址加入許可清單,請按照下列步驟操作:

  1. 建立網路規則,其中 type = IPV4。BigQuery 資料移轉服務會使用 JDBC 連線連至 Snowflake 帳戶。
  2. 建立網路政策,並使用您先前建立的網路規則和下表中的 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 資料轉移,請先產生用於轉換的中繼資料,然後執行轉換引擎:

  1. 執行 Snowflake 的 dwh-migration-tool。詳情請參閱「產生翻譯和評估用的中繼資料」。
  2. 將產生的 metadata.zip 檔案上傳至 Cloud Storage bucket。翻譯引擎會將 metadata.zip 檔案做為輸入內容。
  3. 執行批次翻譯服務,並將 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.getstorage.objects.list 權限。

如果服務帳戶來自 Google Cloud 與建立 BigQuery 資料移轉作業的專案不同的專案,則您也必須啟用跨專案服務帳戶授權

詳情請參閱「BigQuery IAM 角色和權限」。

評估 Snowflake 資料

BigQuery 會將 Snowflake 的資料寫入 Cloud Storage,並儲存為 Parquet 檔案。Parquet 檔案不支援 TIMESTAMP_TZTIMESTAMP_LTZ 資料類型。如果資料包含這些類型,您可以將資料匯出至 Amazon S3 做為 CSV 檔案,然後將 CSV 檔案匯入 BigQuery。詳情請參閱 Amazon S3 移轉作業總覽

收集轉移資訊

收集所需資訊,以便使用 BigQuery 資料移轉服務設定遷移作業:

設定 Snowflake 轉移作業

選取下列選項之一:

主控台

  1. 前往 Google Cloud 控制台的「資料移轉」頁面。

    前往「資料移轉」

  2. 按一下 「建立移轉作業」

  3. 在「來源類型」部分,從「來源」清單中選取「Snowflake 遷移」

  4. 在「Transfer config name」(轉移設定名稱) 區段中,於「Display name」(顯示名稱) 欄位輸入移轉作業的名稱,例如 My migration。顯示名稱可以是任意值,日後需要修改移轉作業時,能夠據此識別即可。

  5. 在「Destination settings」(目的地設定) 部分,從「Dataset」(資料集) 清單中選擇您建立的資料集

  6. 在「Data source details」(資料來源詳細資料) 部分執行下列操作:

    1. 在「帳戶 ID」中,輸入 Snowflake 帳戶的專屬 ID,也就是機構名稱和帳戶名稱的組合。這個 ID 是 Snowflake 帳戶網址的前置字元,而非完整網址。例如:ACCOUNT_IDENTIFIER.snowflakecomputing.com
    2. 在「Username」(使用者名稱) 中,輸入 Snowflake 使用者名稱。系統會使用該使用者的憑證和授權,存取資料庫並轉移 Snowflake 資料表。建議您使用為這項轉移作業建立的使用者
    3. 在「Password」(密碼) 中輸入 Snowflake 使用者的密碼。
    4. 在「Warehouse」中,輸入用於執行這項資料移轉作業的倉庫
    5. 在「服務帳戶」中,輸入要用於這項資料移轉作業的服務帳戶。服務帳戶應屬於建立移轉設定和目的地資料集的相同Google Cloud 專案。服務帳戶必須具備 storage.objects.liststorage.objects.get 必要權限
    6. 在「Database」(資料庫) 中,輸入包含此資料移轉作業所含資料表的 Snowflake 資料庫名稱。
    7. 在「結構定義」部分,輸入包含此資料移轉作業所含資料表的 Snowflake 結構定義名稱。
    8. 在「Table name patterns」(資料表名稱格式) 部分,輸入符合結構定義中資料表名稱的名稱或格式,指定要移轉的資料表。您可以使用規則運算式指定模式,例如 table1_regex;table2_regex。此格式必須遵循 Java 規則運算式語法。例如,假設使用者要求系統 將文字從英文翻譯成法文

      • lineitem;ordertb 會比對名為 lineitemordertb 的資料表。
      • .* 會比對所有資料表。
    9. 在「Translation output GCS path」(翻譯輸出 GCS 路徑) 中,指定包含翻譯引擎的結構定義對應檔案的 Cloud Storage 資料夾路徑。

      • 路徑應採用下列格式: gs:/translation_target_base_uri/metadata/config/db/schema/ 且必須以 / 結尾。
    10. 在「Storage integration object name」(儲存空間整合物件名稱) 中,輸入 Snowflake 儲存空間整合物件的名稱。在這種情況下,S3

    11. 在「雲端服務供應商」部分,選取 AWS

    12. 如要使用 GCS URI、Azure 儲存體帳戶名稱、Azure 容器名稱、Azure SAS,請將這些欄位留空。

    13. 在「Amazon S3 URI」部分,輸入將做為暫存區使用的 S3 值區的 URI

    14. 在「Access key ID」(存取金鑰 ID) 和「Secret access key」(存取密鑰) 部分,輸入存取金鑰組

  7. 選用:在「Notification options」(通知選項) 專區,執行下列操作:

    1. 按一下啟用電子郵件通知的切換開關。啟用此選項後,移轉作業管理員會在移轉作業失敗時,收到電子郵件通知。
    2. 在「Select a Pub/Sub topic」(選取 Pub/Sub 主題),選擇您的主題名稱,或點按「Create a topic」(建立主題)。這個選項會針對移轉作業設定 Pub/Sub 執行通知
  8. 按一下 [儲存]

  9. 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.liststorage.objects.get 必要權限
  • database:輸入包含此資料轉移作業所用資料表的 Snowflake 資料庫名稱。
  • schema:輸入包含這個資料移轉作業所含資料表的 Snowflake 結構定義名稱。
  • table_name_patterns:輸入名稱或符合結構定義中資料表名稱的格式,指定要轉移的資料表。您可以使用規則運算式指定模式,例如 table1_regex;table2_regex。此格式必須遵循 Java 規則運算式語法。例如,假設使用者要求系統 將文字從英文翻譯成法文

    • lineitem;ordertb 會比對名為 lineitemordertb 的資料表。
    • .* 會比對所有資料表。

      您也可以將這個欄位留白,用以遷移所有來自指定結構定義的資料表。

  • 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時,須支付跨雲端輸出費用。

後續步驟