从 Teradata 到 Snowflake 的历史数据迁移

Historical data migration from Teradata to Snowflake

将历史数据负载从 Teradata 迁移到 Snowflake 需要采取哪些步骤? 假设有 200TB+ 的历史数据来自所有 tables。

我正在考虑两种方法。但是我没有足够的专业知识和经验来执行它们。所以想找人来填补空白并提出一些建议

方法 1 - 使用 TPT/FEXP 脚本

  1. 我知道可以编写 TPT/FEXP 脚本来为 table 生成文件。我如何创建一个脚本来为数据库中的所有 table 生成文件。 (因为想象为所有 table 创建 500 个奇怪的脚本是不切实际的)。
  2. 准备好这个脚本后,它是如何实时执行的?我们是否创建一个 shell 脚本并通过一些企业调度程序(如 Autosys/Tidal 对其进行调度?
  3. 生成这些文件后,如果每个文件都很大(因为在 Snowflake 中加载数据的建议大小在 100-250MB 之间),如何在 Linux 机器中拆分它们
  4. 如何将这些文件移动到 Azure Data Lake?
  5. 使用 COPY INTO / Snowpipe 加载到 Snowflake 表中。

方法二

  1. 使用 ADF 复制 activity 从 Teradata 中提取数据并在 ADLS 中创建文件。
  2. 使用 COPY INTO/ Snowpipe 加载到 Snowflake 表中。

这两种方法中哪一种是最好的建议方法? 总的来说,每种方法面临的挑战是什么。

使用 ADF 将是一个更好的解决方案。这还允许您将 DataLake 设计为解决方案的一部分。 您可以设计一个通用解决方案,它将导入配置中提供的所有表。为此,您可以选择推荐的文件格式 (parquet) 以及这些文件的大小和并行加载。

您将遇到的挑战可能是 Snowflake 的 ADF 连接器工作不佳,在这里您将找到我关于如何绕过连接器问题以及如何使用 DataLake Gen2 的建议:

有关如何构建 Azure Data Lake Storage Gen2 结构的建议的更多信息,请参见此处:Best practices for using Azure Data Lake Storage Gen2