安排 Snowflake 转移
借助 BigQuery Data Transfer Service 提供的 Snowflake 连接器,您可以安排和管理自动传输作业,以使用公共 IP 许可名单将数据从 Snowflake 迁移到 BigQuery。
概览
Snowflake 连接器会使用 Google Kubernetes Engine 中的迁移代理,并触发从 Snowflake 到托管 Snowflake 的同一云服务提供商内的暂存区域的加载操作。对于 AWS 托管的 Snowflake 账号,系统会先将数据暂存到您的 Amazon S3 存储桶中,然后再使用 BigQuery Data Transfer Service 将数据传输到 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 Data Transfer Service 所需的所有操作。
创建 BigQuery 数据集来存储数据。您无需创建任何表。
所需 BigQuery 角色
如需获得创建转移作业所需的权限,请让管理员向您授予 BigQuery Admin (roles/bigquery.admin
) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色可提供创建转移作业所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
创建转移作业需要以下权限:
-
创建转移配置的用户账号或服务账号上的
bigquery.transfers.update
-
创建转移配置的用户账号或服务账号上的
bigquery.datasets.get
-
创建转移配置的用户账号或服务账号上的
bigquery.datasets.update
准备 Amazon S3 存储桶
若要完成 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 Data Transfer Service 数据传输预留的 IP 地址。
如需将 IP 地址添加到许可名单,请执行以下操作:
- 创建网络规则,其中
type
=IPV4
。BigQuery Data Transfer Service 使用 JDBC 连接连接到 Snowflake 账号。 - 使用您之前创建的网络规则和下表中的 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 Data Transfer Service 连接器会使用 BigQuery 迁移服务转换引擎进行架构映射。如需完成 Snowflake 数据传输,您必须先生成要转换的元数据,然后运行转换引擎:
- 运行适用于 Snowflake 的
dwh-migration-tool
。如需了解详情,请参阅生成元数据以进行转换和评估。 - 将生成的
metadata.zip
文件上传到 Cloud Storage 存储桶。metadata.zip
文件将用作翻译引擎的输入。 - 运行批量翻译服务,将
target_types
字段指定为dts-mapping
。如需了解详情,请参阅使用 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": "dts-mapping", } } }, }"
-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/dts/config/
中。
- 以下是用于为 Snowflake 运行批量翻译的命令示例:
所需的服务账号权限
在 Snowflake 传输中,服务账号用于从指定 Cloud Storage 路径中的翻译引擎输出中读取数据。您必须向服务账号授予 storage.objects.get
和 storage.objects.list
权限。
如果服务账号来自与创建 BigQuery 数据传输的项目不同的项目, Google Cloud 则您还必须启用跨项目服务账号。
如需了解详情,请参阅 BigQuery IAM 角色和权限。
评估 Snowflake 数据
BigQuery 会将数据从 Snowflake 写入 Cloud Storage 作为 Parquet 文件。Parquet 文件不支持 TIMESTAMP_TZ
和 TIMESTAMP_LTZ
数据类型。如果您的数据包含这些类型,您可以将其作为 CSV 文件导出到 Amazon S3,然后将 CSV 文件导入 BigQuery。如需了解详情,请参阅 Amazon S3 转移作业概览。
收集转移信息
收集使用 BigQuery Data Transfer Service 设置迁移���需的信息:
- 您的 Snowflake 账号标识符,即 Snowflake 账号网址中的前缀。例如
ACCOUNT_IDENTIFIER.snowflakecomputing.com
。 - 对您的 Snowflake 数据库具有适当权限的用户的用户名和密码。它只需具有执行数据传输所需的权限即可。
- 您要用于转移作业的 Amazon S3 存储桶的 URI,以及 AWS 用户访问密钥对。我们建议您为此存储桶设置生命周期政策,以避免产生不必要的费用。
- 您存储从翻译引擎获取的架构映射文件的 Cloud Storage 存储桶的 URI。
设置 Snowflake 转移
从下列选项中选择一项:
控制台
前往 Google Cloud 控制台中的“数据传输”页面。
点击
创建转移作业。在来源类型部分中,从来源列表中选择 Snowflake Migration。
在转移配置名称部分的显示名字段中,输入转移作业的名称,例如
My migration
。显示名称可以是任何易于识别该作业的值,以便您以后在需要修改时找到作业。在目标设置部分中,从数据集列表中选择您创建的数据集。
在数据源详细信息部分,执行以下操作:
- 对于账号标识符,请输入您的 Snowflake 账号的唯一标识符,该标识符由组织名称和账号名称组成。标识符是 Snowflake 账号网址的前缀,而不是完整网址。例如
ACCOUNT_IDENTIFIER.snowflakecomputing.com
。 - 对于用户名,输入 Snowflake 用户的用户名。系统会使用该用户的凭据和授权访问您的数据库以传输 Snowflake 表。我们建议您使用为此传输创建的用户。
- 在密码中,输入 Snowflake 用户的密码。
- 在仓库中,输入用于执行此数据传输的仓库。
- 在服务账号中,输入要用于此数据传输的服务账号。该服务账号应与创建转移配置和目标数据集的Google Cloud 项目位于同一项目中。服务账号必须具有
storage.objects.list
和storage.objects.get
所需权限。 - 对于数据库,输入包含此数据传输中所含表的 Snowflake 数据库的名称。
- 在架构中,输入包含此数据传输中所含表的 Snowflake 架构的名称。
在表名模式字段中,输入与架构中的表名匹配的名称或模式,以指定要传输的表。您可以���用正则表达式指定模式,例如
table1_regex;table2_regex
。此模式应遵循 Java 正则表达式语法。 例如,lineitem;ordertb
匹配名为lineitem
和ordertb
的表。.*
匹配所有表。
对于转换输出 GCS 路径,请指定包含转换引擎中的架构映射文件的 Cloud Storage 文件夹的路径。
- 路径应采用
gs:/translation_target_base_uri/dts/db/schema/
格式,且必须以/
结尾。
- 路径应采用
在存储空间集成对象名称中,输入 Snowflake 存储空间集成对象的名称。在此示例中为
S3
。在云服务提供商部分,选择
AWS
。对于 GCS URI、Azure Storage 账号名称、Azure 容器名称、Azure SAS,请将这些字段留空。
在 Amazon S3 URI 字段中,输入要用作暂存区域的 S3 存储桶的 URI。
在 Access key ID 和 Secret access key 字段中,输入访问密钥对。
- 对于账号标识符,请输入您的 Snowflake 账号的唯一标识符,该标识符由组织名称和账号名称组成。标识符是 Snowflake 账号网址的前缀,而不是完整网址。例如
可选:在通知选项部分,执行以下操作:
点击保存。
Google Cloud 控制台会显示所有转移作业设置详细信息,包括此转移作业的资源名称。
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 账号的唯一标识符,由组织名称和账号名称组成。该标识符是 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/dts/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/dts/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 Data Transfer Service 价格,请参阅价格页面。
- 如果 Snowflake 数据仓库和 Amazon S3 存储桶位于不同的区域,那么当您运行 Snowflake 数据传输时,Snowflake 会收取出站流量费用。如果 Snowflake 数据仓库和 Amazon S3 存储桶位于同一区域,则 Snowflake 数据传输不会产生出站流量费用。
- 将数据从 AWS 转移到 Google Cloud时,系统会收取云间出站流量费用。
后续步骤
- 详细了解 BigQuery Data Transfer Service。
- 使用批量 SQL 转换迁移 SQL 代码。