【问题标题】:Azure SQL DW data loads taking long timeAzure SQL DW 数据加载需要很长时间
【发布时间】:2016-09-23 07:03:52
【问题描述】:

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

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

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

我也尝试了以下语句,这也运行了 10 多个小时。 创建表 Trxdata.Details_data12 和 ( 分配 = ROUND_ROBIN ) 作为 选择 * FROM Trxdata.Stage_External_Table_details_data ;

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

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

DWU USage chart

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

【问题讨论】:

  • 另一个要分享的快速统计数据,当我尝试处理 7 个压缩的 [LZ4 格式] 文件时 - 大小为 6.63GB,包含在 115 分钟内完成的 4.55 亿条记录 [400 DWU,更大的资源类,通过 SSMS 运行,使用的插入语句,从与 BLOB 存储和 SQL DW 位于同一位置的 Windows Azure 虚拟机运行,BLOB + SQL DW + VM 位于 Azure 中的同一位置]

标签: azure azure-sqldw


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    请查看以下来自 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/

    【讨论】:

    • 嗨罗恩。 1. 是的,BLOB 和 SQL DW 位于同一位置(美国西部) 2. 22GB 压缩文件预计包含大约 11 亿条记录,我现在已经开始加载,让我看看进展如何
    • 我也尝试运行 CREATE TABLE WITH HEAP,但运气不佳,INSERT INTO 花了(到列存储表)- 花了 4 小时 27 分钟,而 CREATE WITH HEAP 花了 4 小时 50 分钟跨度>
    【解决方案3】:

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

    【讨论】:

    • 嗨 Sonya, 一个压缩文件中的一个文件(它是 LZ4 压缩格式)。我的 24 个文件总共包含 1.1B 条记录。并且解压缩每个文件更耗时,因为我总共有 512 个文件(我从 24 个文件开始评估性能),每个文件大约 1GB,每个文件的未压缩大小约为 10GB
    • 查看文章azure.microsoft.com/en-us/documentation/articles/… 可能有助于验证长时间运行的步骤,这可能是 HadoopRoundRobinMoveOperation 并验证 DMS 读取器和写入器 (sys.dm_pdw_dms_workers) 是否都在执行同样的时间,你没有某种处理偏差。如果可以的话,解压缩文件以查看是否获得显着不同的性能将是一个很好的测试。
    • 另一件可能影响性能的事情是定义的列比它们需要的宽得多。 azure.microsoft.com/en-us/documentation/articles/…
    • 谢谢。数据类型/精度并没有更广泛。目前,我们继续将 LZ4 格式直接加载到 SQL DW 内部表(这需要很长时间),但我仍然有一个奇怪的问题是 - 为什么即使我尝试加载 DWU 单位图表也没有变高数据量大,数据加载时间长
    猜你喜欢
    • 2017-08-10
    • 2019-12-20
    • 2019-04-10
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    相关资源
    最近更新 更多