Azure 突触中的两次复制暂存复制 + 普通复制如何比普通复制更优化

问题描述

我有一个用例,我应该优化 Azure 中的复制活动,其中我的数据源与 polyBase 不兼容(例如:Oracle DB)。 Here,他们说:

如果 polyBase 最初不支持您的源数据存储和格式,请改用 polyBase 功能使用暂存副本。分阶段复制功能还为您提供更好的吞吐量。它会自动将数据转换为与 polyBase 兼容的格式,将数据存储在 Azure Blob 存储中,然后调用 polyBase 将数据加载到 Azure Synapse Analytics。

  1. 我在做什么: copy from source (oracle for example) to sink (Azure synapse)

  2. 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 快。