BigQuery 使用以下方式连接谷歌 AWS Schema Conversion Tool - AWS Schema Conversion Tool

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

BigQuery 使用以下方式连接谷歌 AWS Schema Conversion Tool

您可以使用 AWS SCT 将架构、代码对象和应用程序代码从 Amazon Redshift 转换为 Amazon Reds BigQuery hift。

BigQuery 作为来源的权限

要在中使用 BigQuery 数据仓库作为源 AWS SCT,请创建一个服务帐号。在 Google Cloud 中,应用使用服务帐号进行授权API呼叫。服务账户与用户账户不同。有关更多信息,请参阅《Google Cloud 身份和访问权限管理》文档中的服务账号

请确保向您的服务账号授予以下角色:

  • BigQuery Admin

  • Storage Admin

BigQuery Admin角色提供管理项目内所有资源的权限。 AWS SCT 使用此角色在迁移项目中加载您的 BigQuery 元数据。

Storage Admin 角色授予对数据对象和存储桶的完全控制权。你可以在下面找到这个角色Cloud Storage。 AWS SCT 使用此角色从中提取您的数据, BigQuery 然后将其加载到 Amazon Redshift 中。

创建服务账号密钥文件
  1. 登录 Google Cloud 管理控制台,网址为 https://console.cloud.google.com/

  2. BigQuery API页面上,选择启用。如果您看到 “API已启用”,请跳过此步骤。

  3. 服务账号页面上,选择项目,然后选择创建服务账号

  4. 服务账户详细信息页面上,在服务账户名称中输入描述性值。选择创建并继续。将打开授予此服务账号对项目的访问权限页面。

  5. 在 “选择角色” 中,选择 BigQuery,然后选择 “BigQuery 管理员”。

  6. 选择添加其他角色。在选择角色中,选择云存储,然后选择存储管理员

  7. 选择继续,然后选择完成

  8. 服务账号页面上,选择您创建的服务账号。

  9. 选择密钥,然后为添加密钥选择创建新密钥

  10. 选择 JSON (容量预留),然后选择 Create (创建容量预留)。选择用于保存私有密钥的文件夹,或者在浏览器中选择用于下载的默认文件夹。

要从数据仓库中提取 BigQuery 数据,请 AWS SCT 使用 Google Cloud Storage 存储桶文件夹。在开始数据迁移之前创建此存储桶。在创建本地任务对话框中输入 Google Cloud Storage 存储桶文件夹的路径。有关更多信息,请参阅 创建、运行和监控 AWS SCT 任务

BigQuery 作为源连接到

使用以下步骤通过连接到您的源 BigQuery 项目 AWS Schema Conversion Tool。

连接到 BigQuery 源数据仓库
  1. 在中 AWS Schema Conversion Tool,选择添加来源

  2. 选择 BigQuery,然后选择 “下一步”。

    此时显示添加源对话框。

  3. 在 “连接名称” 中,输入 BigQuery 项目的名称。 AWS SCT 在左侧面板的树中显示此名称。

  4. 密钥路径中,输入服务账号密钥文件的路径。有关创建此文件的更多信息,请参阅 BigQuery 作为来源的权限

  5. 选择 “测试连接” 以验证是否 AWS SCT 可以连接到您的源 BigQuery 项目。

  6. 选择 Conn ect 以连接到您的源 BigQuery 项目。

BigQuery 用作来源的限制 AWS SCT

BigQuery 用作来源时,以下限制适用 AWS SCT:

  • AWS SCT 不支持在分析函数中转换子查询。

  • 您不能使用 AWS SCT 来转换 BigQuery SELECT AS STRUCTSELECT AS VALUE语句。

  • AWS SCT 不支持以下类型的函数的转换:

    • 近似聚合

    • 调试

    • 联合查询

    • 地理位置

    • 哈希

    • 数学

    • 净值

    • 统计聚合

    • UUID

  • AWS SCT 为字符串函数的转换提供了有限的支持。

  • AWS SCT 不支持UNNEST运算符的转换。

  • 无法在 AWS SCT中转换相关的联接操作。

  • AWS SCT 不支持QUALIFYWINDOWLIMIT、和OFFSET子句的转换。

  • 不能使用 AWS SCT 来转换递归公用表表达式。

  • AWS SCT 不支持转换子INSERT句内带有子查询的语VALUES句。

  • AWS SCT 不支持嵌套字段和重复记录的UPDATE语句转换。

  • 您不能使用 AWS SCT 来转换STRUCTARRAY数据类型。

BigQuery 到亚马逊 Redshift 转换设置

要编辑 BigQuery 到 Amazon Redshift 转换设置,请在中选择 “设置” AWS SCT,然后选择 “转换设置”。从上方的列表中选择谷歌 BigQuery,然后选择谷歌 BigQuery — Amazon Redshift。 AWS SCT 显示转换 BigQuery 至 Amazon Redshift 的所有可用设置。

BigQuery 在 Amazon Redshift 转换设置中 AWS SCT 包含以下选项:

  • 限制转换后的代码中操作项的注释数量。

    对于在转换后的代码中为所选严重性及更高的措施项添加注释,请选择措施项的严重性。 AWS SCT 在转换后的代码中为选定严重性及更高的措施项添加注释。

    例如,要最大限度地减少转换后的代码中的注释数量,请选择仅错误。要在转换后的代码中包含所有操作项的注释,请选择所有消息

  • 设置 AWS SCT 可以应用于您的目标 Amazon Redshift 集群的最大表数。

    对于目标 Amazon Redshift 集群的最大表数,请选择 AWS SCT 可以应用于您的 Amazon Redshift 集群的表数量。

    Amazon Redshift 具有限制了不同集群节点类型使用表数的配额。如果您选择 “自动”,则根据节点类型 AWS SCT 确定要应用于目标 Amazon Redshift 集群的表数量。或者,手动选择值。有关更多信息,请参阅《Amazon Redshift 管理指南》中的 Amazon Redshift 中的配额和限制

    AWS SCT 转换您的所有源表,即使这超过了您的 Amazon Redshift 集群所能存储的容量。 AWS SCT 将转换后的代码存储在您的项目中,并且不会将其应用于目标数据库。如果应用转换后的代码时达到了 Amazon Redshift 集群的表配额,则 AWS SCT 会显示一条警告消息。此外,还要 AWS SCT 将表应用于您的目标 Amazon Redshift 集群,直到表的数量达到上限。

  • 对 Amazon Redshift 表列应用压缩。为此,请选择使用压缩编码

    AWS SCT 使用默认 Amazon Redshift 算法自动为列分配压缩编码。有关更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的压缩编码

    默认情况下,Amazon Redshift 不对定义为排序键和分配键的列应用压缩。您可以更改此行为并对这些列进行压缩。为此,请选择 “对KEY列使用压缩编码”。只有选择使用压缩编码选项时,才能选择此选项。

BigQuery 到亚马逊 Redshift 转化优化设置

要编辑 BigQuery 到 Amazon Redshift 转化优化设置,请在中选择 “设置” AWS SCT,然后选择 “转化设置”。从上方的列表中选择谷歌 BigQuery,然后选择谷歌 BigQuery — Amazon Redshift。在左侧窗格中,选择优化策略。 AWS SCT 显示转为 BigQuery 亚马逊 Redshift 的转化优化设置。

BigQuery 在 Amazon Redshift 转化优化设置中 AWS SCT 包含以下选项:

  • 使用自动表优化。为此,请选择使用 Amazon Redshift 自动调整表格

    自动表优化是 Amazon Redshift 中的一种自我调整过程,可自动优化表的设计。有关更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的使用自动表优化

    要仅使用自动表优化,请在初始键选择策略中选择

  • 使用策略选择排序键和分配键。

    您可以使用 Amazon Redshift 元数据、统计信息或这两个选项选择排序键和分配键。对于优化策略选项卡上的初始键选择策略,请选择以下选项之一:

    • 使用元数据,忽略统计信息

    • 忽略元数据,使用统计信息

    • 使用元数据和统计信息

    根据您选择的选项,您可以选择优化策略。然后,请为每种策略输入值(0–100)。这些值定义了每种策略的权重。 AWS SCT 使用这些权重值定义每条规则如何影响分布键和排序键的选择。默认值基于 AWS 迁移最佳实践。

    您可以为查找小型表策略定义小型表的大小。在 “最小表格行数” 和 “最大表格行数” 中,输入表格中最小和最大行数以将其定义为小表。 AWS SCT 将ALL分配方式应用于小表。在这种情况下,向每个节点分配整个表的副本。

  • 配置策略详细信息。

    除了定义每种优化策略的权重外,您还可以配置优化设置。为此,请选择转换优化

    • 对于排序键列数限制,在排序键中输入最大列数。

    • 倾斜阈值中,输入列偏斜值的百分比 (0—100)。 AWS SCT 从分布键的候选列表中排除倾斜值大于阈值的列。 AWS SCT 将列的偏斜值定义为最常见值的出现次数与记录总数的百分比比率。

    • 对于查询历史表中的前 N 个查询,请输入要分析的最常用查询的数量(1–100)。

    • 选择统计数据用户中,选择要分析查询统计数据的数据库用户。

    此外,在优化策略选项卡上,您可以为查找小型表策略定义小型表的大小。在 “最小表格行数” 和 “最大表格行数” 中,输入表格中最小和最大行数,将其视为一个小表。 AWS SCT 将ALL分配方式应用于小表。在这种情况下,向每个节点分配整个表的副本。