为 BigQuery 迁移启用 SQL 转换
在从数据仓库迁移到 BigQuery 的过程中,您可以使用 BigQuery SQL 转换器将 SQL 脚本和查询从源方言转换为 GoogleSQL。
BigQuery 提供以下 SQL 转换功能,作为 BigQuery Migration Service 的一部分:
在翻译源 SQL 之前,我们建议您使用 dwh-migration-dumper 工具从源数据仓库中提取 DDL 架构元数据。提取的元数据可与 SQL 转换器搭配使用,以提高 SQL 转换准确性。
本文档介绍了在使用任何 SQL 翻译器之前需要执行的步骤。本文档还介绍了 SQL 转换器支持的 SQL 方言,以及支持 SQL 转换的区域。
启用 SQL 转换
在使用 SQL 翻译器翻译 SQL 之前,请执行以下步骤。
启用 BigQuery Migration API
如果您的 Google Cloud CLI 项目是在 2022 年 2 月 15 日之前创建的,请按如下方式启用 BigQuery Migration API:
在 Google Cloud 控制台中,前往 BigQuery Migration API 页面。
点击启用。
添加所需权限
如需获得使用交互式转换器、转换 API 或批量 SQL 转换器创建转换作业所需的权限,请让您的管理员为您授予 parent 资源的以下 IAM 角色:
-
查看和监控迁移作业:
MigrationWorkflow Viewer (
roles/bigquerymigration.viewer) -
提交迁移作业:
MigrationWorkflow Editor (
roles/bigquerymigration.editor) -
访问 Cloud Storage 存储桶的输入和文件:Storage Object Admin (
roles/storage.objectAdmin) - 针对源 Cloud Storage 存储桶和目标 Cloud Storage 存储桶。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含使用交互式转换器、转换 API 或批量 SQL 转换器创建翻译作业所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需使用交互式转换器、转换 API 或批量 SQL 转换器创建转换作业,您需要具备以下权限:
-
bigquerymigration.workflows.create -
bigquerymigration.workflows.get -
bigquerymigration.workflows.list -
bigquerymigration.workflows.delete -
bigquerymigration.subtasks.get -
bigquerymigration.subtasks.list -
storage.objects.get -
storage.objects.list -
storage.objects.create
支持的 SQL 语言
BigQuery SQL 转换器支持将以下 SQL 方言转换为 GoogleSQL:
- Amazon Redshift SQL (
Redshift2BigQuery_Translation) - Apache HiveQL 和 Beeline CLI (
HiveQL2BigQuery_Translation) - IBM Netezza SQL 和 NZPLSQL (
Netezza2BigQuery_Translation) - Snowflake SQL (
Snowflake2BigQuery_Translation) - Teradata 和 Teradata Vantage (
Teradata2BigQuery_Translation)- SQL
- Basic Teradata Query (BTEQ)
- Teradata 并行传输 (TPT)
此外,预览版还支持转换以下 SQL 方言:
- Apache Impala SQL (
Impala2BigQuery_Translation) - Apache Spark SQL (
SparkSQL2BigQuery_Translation) - Azure Synapse T-SQL (
AzureSynapse2BigQuery_Translation) - GoogleSQL、BigQuery (
Bigquery2Bigquery_Translation) - Greenplum SQL (
Greenplum2BigQuery_Translation) - IBM DB2 SQL (
Db22BigQuery_Translation) - MySQL SQL (
MySQL2BigQuery_Translation) - Oracle SQL、PL/SQL、Exadata (
Oracle2BigQuery_Translation) - PostgreSQL SQL (
Postgresql2BigQuery_Translation) - Trino 或 PrestoSQL (
Presto2BigQuery_Translation) - SQL Server T-SQL (
SQLServer2BigQuery_Translation) - SQLite (
SQLite2BigQuery_Translation) - Vertica SQL (
Vertica2BigQuery_Translation)
位置
BigQuery SQL 转换器在以下处理位置提供:
| 区域说明 | 区域名称 | 详细信息 | |
|---|---|---|---|
| 亚太地区 | |||
| 曼谷 | asia-southeast3 |
||
| 德里 | asia-south2 |
||
| 香港 | asia-east2 |
||
| 雅加达 | asia-southeast2 |
||
| 墨尔本 | australia-southeast2 |
||
| 孟买 | asia-south1 |
||
| 大阪 | asia-northeast2 |
||
| 首尔 | asia-northeast3 |
||
| 新加坡 | asia-southeast1 |
||
| 悉尼 | australia-southeast1 |
||
| 台湾 | asia-east1 |
||
| 东京 | asia-northeast1 |
||
| 欧洲 | |||
| 比利时 | europe-west1 |
|
|
| 柏林 | europe-west10 |
||
| 欧盟多区域 | eu |
||
| 芬兰 | europe-north1 |
|
|
| 法兰克福 | europe-west3 |
||
| 伦敦 | europe-west2 |
|
|
| 马德里 | europe-southwest1 |
|
|
| 米兰 | europe-west8 |
||
| 荷兰 | europe-west4 |
|
|
| 巴黎 | europe-west9 |
|
|
| 斯德哥尔摩 | europe-north2 |
|
|
| 都灵 | europe-west12 |
||
| 华沙 | europe-central2 |
||
| 苏黎世 | europe-west6 |
|
|
| 美洲 | |||
| 俄亥俄州,哥伦布 | us-east5 |
||
| 达拉斯 | us-south1 |
|
|
| 艾奥瓦 | us-central1 |
|
|
| 拉斯维加斯 | us-west4 |
||
| 洛杉矶 | us-west2 |
||
| 墨西哥 | northamerica-south1 |
||
| 北弗吉尼亚 | us-east4 |
||
| 俄勒冈 | us-west1 |
|
|
| 魁北克 | northamerica-northeast1 |
|
|
| 圣保罗 | southamerica-east1 |
|
|
| 盐湖城 | us-west3 |
||
| 圣地亚哥 | southamerica-west1 |
|
|
| 南卡罗来纳 | us-east1 |
||
| 多伦多 | northamerica-northeast2 |
|
|
| 美国多区域 | us |
||
| 非洲 | |||
| 约翰内斯堡 | africa-south1 |
||
| 中东 | |||
| Dammam | me-central2 |
||
| 多哈 | me-central1 |
||
| 以色列 | me-west1 |
||