在查询较大的数据集以便从Blob存储中将记录插入Azure数据仓时,会导致Polybase性能下降的原因是什么?
例如,几千个压缩(.gz)CSV文件,其中包含6个月数据每天几小时的标题。从SSMS中的外部表查询这些文件并不是非常优化,而且速度非常慢。
客观地说,我将数据加载到Polybase中以便将数据传输到Azure数据仓库。除了大型数据集外,Polybase相当慢。
有哪些选项可用于优化Polybase?等待查询或在每次上传到blob存储后逐步加载数据?
答案 0 :(得分:1)
在您的方案中,Polybase必须连接到外部源中的文件,解压缩它们,然后确保它们适合您的外部表定义(架构),然后允许查询定位内容。当您以一次性导入方式处理大量文本文件时,没有什么可以真正缓存,因为它每次都处理新内容。简而言之,您的场景计算量很大。
如果您的存储量很大并且存储量最大,那么请使用多个存储帐户来分散负载。
其他替代方法包括将解压缩工作的Polybase作为上传或暂存过程的一部分来解除。从Azure中执行此操作,其中数据中心内的网络带宽非常快。
您还可以考虑使用Azure Data Factory来完成工作。 See here表示支持的文件格式。支持GZip。使用“复制活动”从Blob存储复制到SQL DW。
另请参阅: