【问题标题】:Historical data migration from Teradata to Snowflake从 Teradata 到 Snowflake 的历史数据迁移
【发布时间】:2021-11-30 14:20:04
【问题描述】:

将历史数据负载从 Teradata 迁移到 Snowflake 需要采取哪些步骤? 想象一下,所有表的历史数据总计超过 200TB。

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

方法 1- 使用 TPT/FEXP 脚本

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

方法 2

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

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

【问题讨论】:

    标签: snowflake-cloud-data-platform teradata azure-data-factory azure-data-lake-gen2


    【解决方案1】:

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

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

    更多关于如何构建 Azure Data Lake Storage Gen2 结构的建议可以在这里找到:Best practices for using Azure Data Lake Storage Gen2

    【讨论】:

    • 所以从技术上讲,假设一个本地 Teradata 数据库中有大约 500 个表,数据的总大小可能在 200TB 左右。您如何设计一个 ADF 管道来提取所有这些循环遍历所有表的数据。我们可以使用 Lookup 和 forEach,但其中一些表的大小可能很大,从 100gb 及以上不等,因此复制活动将永远持续下去。如何处理这样的历史数据迁移?
    • 限制是网络和 Teradata 的可读性。使用 Loop 活动,但将其标记为对每个表并行运行。设置并行表的限制,你必须弄清楚多少会是最好的,对于 Teradata 来说不会太多。保存数据时,声明文件大小(100-250MB),请参阅此处的“准备数据文件”:docs.snowflake.com/en/user-guide/…
    猜你喜欢
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多