从 Teradata 迁移数据概览

简介

搭配使用 BigQuery Data Transfer Service 和特殊的迁移代理,您可以将数据从本地数据仓库系统(例如 Teradata)复制到 BigQuery 中。本文档简要介绍使用 BigQuery Data Transfer Service 的数据转移过程。

数据转移是免费的。如需了解详情,请参阅价格

如需使用 BigQuery Data Transfer Service 进行数据仓库迁移,请先下载用于连接到您本地数据仓库的本地迁移代理。然后,您要在 BigQuery Data Transfer Service 中配置转移作业。

本地迁移代理将负责与 BigQuery Data Transfer Service 建立通信,以便将您数据仓库中的表复制到 BigQuery 中。您可以使用 BigQuery Data Transfer Service 的网页界面监控从数据仓库到 BigQuery 的周期性数据加载作业。

下图显示了 Teradata 等本地数据仓库与 BigQuery 之间数据流的简要概述。

将数据提取到 BigQuery 中。

转移模式和选项

由于每次迁移都有各自特定的要求,您可以通过以下方式自定义迁移代理。设置从 Teradata 到 BigQuery 的数据转移作业时,有以下三项重要选择:

提取方法

BigQuery Data Transfer Service 支持两种不同的提取方法,使用这两种方法都可将数据从 Teradata 转移到 BigQuery:

  1. 搭配使用 JDBC 驱动程序和 FastExport 连接进行提取。在此模式下,系统会将表提取到位于本地文件系统上指定位置的一组 AVRO 文件中。提取的文件随后将上传到指定的 Cloud Storage 存储分区。成功转移后,系统会从本地文件系统中删除这些文件。
    • 本地文件系统中的空间量存在严格的强制限制,且在上传提取的文件到从本地文件系统删除这些文件期间,都将暂停提取作业。
    • 如果本地存储空间存在严格的限制或 TPT 不可用,请使用此提取方法。
    • 搭配使用 JDBC 驱动程序和 FastExport 是默认的提取方法。
  2. 使用 Teradata Parallel Transporter (TPT) tbuild 实用程序进行提取。 在此模式下,代理会尝试使用按分区分布的数据行计算提取批次。对于每个批次,系统都会发出并执行一个 TPT 提取脚本,从而生成一组以竖线分隔的文件。每个批次提取完成后,会将文件上传到指定的 Cloud Storage 存储分区并从本地文件系统中删除这些文件。由于此方法对本地文件系统中的空间量没有强制施加限制,因此请确保本地文件系统的空间足以提取 Teradata 表中的最大分区。
    • 我们建议您使用 TPT 进行提取并自定义架构以指示分区列。因为此方式的数据提取速度最快。

如需详细了解如何指定提取方法,请参阅转移作业设置逐步说明中的迁移代理配置部分。

自定义架构文件

架构文件是描述数据库对象的 JSON 文件。架构包含一组数据库,每个数据库包含一组表,每个表包含一组数据列。每一列都具有一个类型字段 - BigQuery 中的一列分配一个类型。

在架构文件中,每个对象都具有一个名称字段 - BigQuery 中的一个对象分配一个名称。每个对象还具有一个 originalName 字段 - 与 Teradata 数据库中对象匹配的名称。

在从 Teradata 到 BigQuery 的数据转移期间,BigQuery Data Transfer Service 提供自动架构检测和数据转换。您也可以指定自定义架构文件。在某些情况下,我们强烈建议您自定义架构。示例:

  • 自定义架构文件尤其适用于包含表的额外信息(例如分区)。如果没有指定架构文件,此类信息可能会在迁移过程中丢失。
  • 您可以选择提供自定义架构文件,以便在数据转移期间进行字段转换(例如任何对象的名称字段或任何列的 usageType 数组)。
  • 如需了解详情,请参阅自定义架构文件

按需转移或增量转移

将数据从 Teradata 数据库实例迁移到 BigQuery 时,BigQuery Data Transfer Service 既支持一次性快照数据转移(“按需转移”),也支持对新行和更新行的周期性定期转移(“增量转移”)(Beta 版)。您可以在设置转移作业时,于时间表选项中指定按需转移或增量转移。

  • 按需转移数据
    • 如果您的表非常大并且您可以使用 TPT 高性能数据提取方法,则建议您对 Teradata 表进行分区以便允许按分区进行提取。如需了解详情,请参阅自定义架构文件
    • 如果您的表很小或者您无法使用 TPT,请按照基本说明操作。自定义架构并非必要操作。
  • 增量转移数据
    • 如果您希望定期从 Teradata 向 BigQuery 迁移更改,可以使用增量模式。系统会将 Teradata 中的新记录和更改的记录周期性地附加到 BigQuery 表格中。
    • 此方法要求您自定义架构以对 COMMIT_TIMESTAMP 列进行注释。
    • 设置增量转移时,需要满足某些条件。如需了解详情,请参阅增量转移

位置注意事项

您的 Cloud Storage 存储分区必须位于与 BigQuery 中目标数据集的区域或多区域兼容的区域或多区域中。

共置 Cloud Storage 存储分区,以便于转移数据。
  • 如果您的 BigQuery 数据集位于多区域位置,则包含您要转移的数据的 Cloud Storage 存储分区必须位于同一位置的单区域或多区域存储分区中。例如,如果您的 BigQuery 数据集位于欧盟,则 Cloud Storage 存储分区必须位于欧盟的单区域或多区域存储分区中。
  • 如果您的数据集位于单区域位置,则您的 Cloud Storage 存储分区必须是同一位置的单区域存储分区。例如,如果您的数据集位于东京区域,则您的 Cloud Storage 存储分区必须是位于东京的单区域存储分区。
  • 例外情况:如果您的数据集位于美国的多区域位置,您可以从位于任何单区域或多区域位置的 Cloud Storage 存储分区转移数据。

如需详细了解转移和区域,请参阅数据集位置和转移

价格

使用 BigQuery Data Transfer Service 迁移数据仓库实例是免费的。

  • 提取数据、将数据上传到 Cloud Storage 存储分区以及将数据加载到 BigQuery 是免费的。
  • 数据上传到 BigQuery 后,系统不会自动将其从您的 Cloud Storage 存储分区中删除。请考虑手动删除 Cloud Storage 存储分区中的数据,以避免额外的存储开销。请参阅 Cloud Storage 价格
  • 您必须遵循加载作业适用的标准 BigQuery 配额和限制

  • 在数据转移至 BigQuery 后,您需要按标准的 BigQuery 存储查询价格付费。

  • 如需了解详情,请参阅我们的转移作业价格页面

限制

  • 系统完全支持一次性按需转移。增量转移目前仍为 Beta 版功能。仅支持部分增量转移中的 DDL/DML 操作
  • 数据将被提取到本地文件系统(本地环境)中的文件夹。因此,请确保本地文件系统有足够的可用空间。
    • 使用 FastExport 提取模式时,您可以设置要使用的最大存储空间以及由迁移代理强制施加的严格限制。设置从 Teradata 到 BigQuery 的转移作业时,请在迁移代理的配置文件中设定 max-local-storage 设置。
    • 使用 TPT 提取方法时,请确保文件系统有足够的可用空间 - 至少要能容纳 Teradata 实例中的最大表分区。
  • BigQuery Data Transfer Service 会自动转换架构(如果您不提供自定义架构文件)并将 Teradata 数据转移到 BigQuery。数据会从 Teradata 映射到 BigQuery 类型
  • 从本地文件系统上传文件并加载到 BigQuery 后,这些文件不会自动从您的 Cloud Storage 存储分区中删除。将数据加载到 BigQuery 后,请考虑手动从您的 Cloud Storage 存储分区中删除这些数据,以免产生额外的存储费用。请参阅价格
  • 提取的速度受 JDBC 连接的限制。
  • 从 Teradata 中提取的数据不会加密。请采取适当的措施来限制对本地文件系统中的提取文件的访问,并确保 Cloud Storage 存储分区受到妥善保护。

  • 其他数据库资源(例如存储过程、已保存的查询、视图和用户定义的函数)不会转移,不在此服务范围之内。

后续步骤