gpt4 book ai didi

azure - 将 Azure 数据工厂上的数据管道从 SQL Server 复制到 Blob 存储

转载 作者:行者123 更新时间:2023-12-02 07:54:43 34 4
gpt4 key购买 nike

我正在尝试使用 Azure 数据工厂中的“复制数据”管道将一些数据从 Azure SQL Server 数据库移动到 Azure Blob 存储。特别是,我将“使用查询”选项与 ?AdfDynamicRangePartitionCondition Hook 一起使用,如 Microsoft's pattern here 所建议的那样。 ,在管道的“源”选项卡中,复制操作通过查询本身使用的分区键来并行化。

SQL Server 数据库上的源由两个 View 组成,分别包含约 300k 和约 3M 行。此外, View 具有相同的查询结构,例如(伪代码)

with 
v as (
select hashbyte(field1) [Key1], hashbyte(field2) [Key2]
from Table
)
select *
from v

View 查询的表也是如此。最重要的是, View 查询相同数量的分区,行数分布大致相等。

复制操作的意外行为(很可能是由于我缺乏经验)是,对于查询较少行的 View 来说,它的持续时间要长得多。事实上,大约 300k 行的复制操作显示的吞吐量约为 800 KB/s,而大约 3M 行的复制操作显示的吞吐量约为 15MB/s(!)。最后,与从源读取操作相反,在这两种情况下,对 blob 存储的写入操作都非常快。

我不希望任何人提供实际的解决方案 - 因为提供的信息有限 - 但我更希望获得一些提示,了解在 View 查询次数较多的情况下,哪些因素可能会严重影响复制性能(大约一个数量级)更少的行,考虑到 View 下的表具有相当数量的字段,并且数据类型也相同: View 查询的两个表都包含 int, datetimevarchar 数据类型。

提前感谢您的提醒。

最佳答案

对于可能遇到同样问题的人,我根据经验设法发现,瓶颈是由 SQL DB View 中存在多个键哈希计算引起的。事实上,一旦我删除了这些(稍后在 Azure Synapse Analytics(数据仓库)上计算),我就观察到复制操作的性能大幅提升。

关于azure - 将 Azure 数据工厂上的数据管道从 SQL Server 复制到 Blob 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67909075/

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