为 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:

  1. 在 Google Cloud 控制台中,前往 BigQuery Migration API 页面。

    前往 BigQuery Migration API

  2. 点击启用

添加所需权限

如需获得使用交互式转换器、转换 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