将表加载到突触时如何有效地对其进行分区?

问题描述 投票:0回答:1

我正在开发一个 Azure Synapse 管道,该管道以 parquet 格式将一堆表从 Oracle 加载到 ADLS Gen2,但我获得的吞吐量非常低。为了增加这一点,我在 Synapse 复制活动中看到了

Partition option
分区选项 synapse),但我不太理解它。我知道我的公司网络、SHIR 配置、其位置和 Oracle 表的属性可能会影响此吞吐量,但我必须拥有完全优化的管道,然后才能要求更改这些内容,所以我在这里。

到目前为止我得到的(如果我错了请纠正我)是这些分区将用于创建到源的同时连接,从而增加吞吐量。想象一下,我在设备架构上有一个名为“温度”的表,如下所示:

设备ID 设备名称 温度(°C) 日期时间
1 设备A 35 2024-10-24 08:00:00
1 设备A 36 2024-10-24 09:00:00
1 设备A 34 2024-10-24 10:00:00
2 设备B 40 2024-10-24 08:05:00
2 设备B 41 2024-10-24 09:05:00
2 设备B 39 2024-10-24 10:05:00
3 设备C 38 2024-10-24 08:10:00
3 设备C 37 2024-10-24 09:10:00
3 设备C 39 2024-10-24 10:10:00
1 设备A 35 2024-10-24 11:00:00
1 设备A 36 2024-10-24 12:00:00
1 设备A 34 2024-10-24 13:00:00
2 设备B 40 2024-10-24 11:05:00
2 设备B 41 2024-10-24 12:05:00
2 设备B 39 2024-10-24 13:05:00
3 设备C 38 2024-10-24 11:10:00
3 设备C 37 2024-10-24 12:10:00
3 设备C 39 2024-10-24 13:10:00
1 设备A 35 2024-10-24 14:00:00
2 设备B 40 2024-10-24 14:05:00

真正的行数大约有数千亿行。最初的满载已经完成,现在每天只加载新数据,每天大约5亿行,大约需要10个小时。我应该如何配置分区和数据加载活动以获得最大吞吐量?如果表没有日期时间列怎么办?

partitioning azure-synapse throughput
1个回答
0
投票

根据文档

Partition option
它将解析分区文件路径并将其添加为目标中的列。

enablePartitionDiscovery - 对于已分区的文件,指定是否从文件路径解析分区并将它们添加为额外的源列。

我应该如何配置分区和数据加载活动以获得最大吞吐量?

要以更快、更高效的方式加载数据,您可以尝试以下选项:

  • 源数据存储和目标数据存储之间的网络带宽也会影响数据传输的速度。
  • 您可以设置
    parallelCopies
    属性来指示您希望复制活动使用的并行度。将此属性视为复制活动中的最大线程数。

enter image description here

您可以参考此文档以获取有关如何优化复制活动的更多信息

© www.soinside.com 2019 - 2024. All rights reserved.