问题描述
我有一个用例,我应该优化 Azure 中的复制活动,其中我的数据源与 polyBase 不兼容(例如:Oracle DB)。 Here,他们说:
如果 polyBase 最初不支持您的源数据存储和格式,请改用 polyBase 功能使用暂存副本。分阶段复制功能还为您提供更好的吞吐量。它会自动将数据转换为与 polyBase 兼容的格式,将数据存储在 Azure Blob 存储中,然后调用 polyBase 将数据加载到 Azure Synapse Analytics。
-
我在做什么:
copy from source (oracle for example) to sink (Azure synapse)
-
Azure 所说的话,正如 here 所解释的:
copy source (oracle for example) to staging,then copy from staging to sink (Azure synapse Analytics)
我的问题是:案例2如何比我的案例1更优化(更快)?
解决方法
当我们将数据从 staging 复制到 sink 时,polybase 会更快实现这一点,从而使整个操作更快。对于选项 1,使用了bulkinsert。写入 blob 也总是比写入 sink 快。