gpt4 book ai didi

oracle - 以 Oracle 作为源在 Synapse 专用池中加载 6 亿多条记录

转载 作者:行者123 更新时间:2023-12-03 02:16:22 27 4
gpt4 key购买 nike

我正在尝试完全加载位于 Oracle On-Prem 数据库中的一个非常大的表(600 多万条记录)。我的目的地是 Azure Synapse 专用池。

我已经尝试过以下操作:

将 ADF 复制事件与源分区结合使用,因为源表有 22 个分区

我将复制并行度和 DIU 提高到了很高的水平

尽管如此,我只能在 3 小时内获取 1.5 亿条记录,而要求是在大约 2 小时内完成完整加载,因为在这段时间内源将被卡住给用户,以便 Synapse 可以复制数据

如何在该时间范围内将数据从 Oracle 完整复制到 Synapse?

为了进行更改,我尝试将数据从 Oracle 加载到 ADLS Gen 2,但速度也很慢

最佳答案

这里需要考虑很多因素。一些想法:

  • 读取表格的速度有多快?有哪些索引/物化 View ?数据库级别是否存在需要排除的争用?
  • 建议:确保数据库设置为快速读取您要导出的表
  • 由于您在本地,本地网卡设置和吞吐量是多少?
  • 建议:确保本地网络设置尽可能快
  • 由于您在本地,因此必须使用自托管集成运行时 (SHIR)。这台机器的规范是什么?例如,根据最低规范,8GB RAM、用于假脱机的 SSD 等。这是在哪里?例如,“靠近”数据源(在同一本地网络中)或在云中。可以通过 up to four nodes 来扩展 SHIR但在扩展之前,您应该通过可用的指标确保这是一个瓶颈。
  • 建议:考虑将 SHIR 放置在“靠近”数据源的位置(即在同一网络中)
  • SHIR 软件版本是最新的吗?此内容偶尔会更新,因此最好保持更新。
  • 建议:保持 SHIR 软件最新
  • 您有 Express Route 或互联网吗?急诊室可能会更快
  • 建议:考虑使用 Express Route。或者考虑Data Box用于大量一次性导出。
  • 您几乎肯定应该直接登陆 ADLS Gen 2 或 blob 存储。直接进入数据库可能会导致那里的争用,并且您正在处理 Synapse 概念,例如事务日志记录、DWU、资源类和队列争用等。查看 Azure 门户中的存储指标以确定其是否处于压力之下。如果处于压力之下(我认为不太可能),请考虑多个存储帐户
  • 建议:将数据加载到 ADLS2。尽管这看起来像是一个额外的步骤,但它提供了一个恢复点,并通过尝试同时进行提取和加载来避免争用问题。如果你能证明它运行得更快并且你绝对不需要恢复点,我只会直接加载到数据库
  • 您以什么格式降落在湖中?例如,转换为 Parquet 是相当计算密集型的。登陆湖上确实会留下审计线索,并让您在出现问题时可以恢复
  • 建议:使用 parquet 作为压缩格式。您可能需要优化文件大小。
  • 最终最好的办法是进行一次大批量加载(比如利用周末),然后使用 CDC 机制进行增量更新插入。这样您就可以满足 2 小时的时间要求。
  • 建议:考虑一次性大批量加载和 CDC/增量加载,以保持在时间表内

总之,这可能是您的网络问题,但您首先需要进行大量调查,然后再使用我上面列出的一些选项来解决。

关于oracle - 以 Oracle 作为源在 Synapse 专用池中加载 6 亿多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71079140/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com