4

我正在尝试将数据从我的外部表加载到 SQL DW 内部表。我在 BLOB 存储中以压缩格式存储数据,外部表指向 BLOB 存储位置。

我有大约 24 个文件,大小约为 22GB,并尝试使用更大的资源类服务/用户帐户将数据从外部表加载到 300 DWU 上的内部表。

我的 insert into 语句(非常简单)运行了 10 多个小时。插入 Trxdata.Details_data 从 Trxdata.Stage_External_Table_details_data 中选择 *;

我还尝试了以下语句,这也运行了 10 多个小时。创建表 Trxdata.Details_data12 WITH (DISTRIBUTION = ROUND_ROBIN) AS SELECT * FROM Trxdata.Stage_External_Table_details_data;

我明白了 - 两个 SQL 都在“sys”中以 ACTIVE 状态运行。“dm_pdw_exec_requests” [我在想,这可能是并发槽问题,它没有运行并发槽,但事实并非如此]

我希望,增加/扩大 DWU - 可能会提高性能。但查看 portal.azure.com 中的 DWU 使用情况 - 我不相信会增加 DWU,因为 DWU 使用情况图表显示过去 12 小时 <50DWU

DWU 使用图表

所以,我想了解 - 我怎么能找到 - 什么需要这么长时间,我怎样才能提高我的数据加载的性能?

4

3 回答 3

2

我怀疑您的问题在于被压缩的文件。许多 azure 文档声明每个压缩文件只能获得一个阅读器。作为测试,我建议您解压缩数据并尝试加载,看看解压缩/加载是否比加载您当前看到的压缩数据的 10 小时更快。如果这是您的系统的一个选项,我对几个文件而不是一个大文件也有更好的运气。

于 2016-09-22T23:03:52.503 回答
1

请查看以下来自 SQL CAT 的关于数据加载优化的博客。 https://blogs.msdn.microsoft.com/sqlcat/2016/02/06/azure-sql-data-warehouse-loading-patterns-and-strategies/

根据提供的信息,需要考虑的几点是:

1) 与 DW 实例相比,blob 文件的位置。确保它们位于同一区域。2) 默认情况下启用聚集列存储。如果您正在加载 22GB 的数据,则 HEAP 加载可能会执行得更好(但也不确定行数)。所以:

CREATE TABLE Trxdata.Details_data12 
WITH (HEAP, DISTRIBUTION = ROUND_ROBIN)
AS SELECT * FROM Trxdata.Stage_External_Table_details_data ;

如果问题仍然存在,请提交支持票: https ://azure.microsoft.com/en-us/documentation/articles/sql-data-warehouse-get-started-create-support-ticket/

于 2016-08-19T16:20:01.317 回答
0

您提到数据采用压缩格式。数据驻留在多少个压缩文件中?对于压缩文件,当数据分布在许多文件中时,您将获得更多的并行性,从而获得更好的性能。为了获得更好的性能,解压缩文件不需要将数据保存在多个文件中,因此另一种测试这是否是您的性能问题的方法是解压缩文件。

于 2016-08-20T02:42:39.237 回答