数据湖分析 U-SQL 提取速度(本地与 Azure)
Data Lake Analytics U-SQL EXTRACT speed (Local vs Azure)
一直在研究使用 Azure Data Lake Analytics 功能来尝试和操作我存储在 Azures Blob 存储中的一些 Gzip 压缩 xml 数据,但我 运行 遇到了一个有趣的问题.本质上,当在本地使用 U-SQL 处理其中的 500 个 xml 文件时,处理时间非常快,在本地使用 1 个 AU(这似乎是极限)大约需要 40 秒。但是,当我们 运行 使用 5 个 AU 从 Azure 中执行相同的功能时,处理时间超过 17 分钟。
我们最终希望将其扩展到大约 20,000 个文件甚至更多,但已经减少了文件集以尝试测量速度。
每个文件包含 50 个 xml 对象的集合(子元素中包含不同数量的详细信息),这些文件在 Gzip 压缩后大约为 1 MB,在未压缩时在 5MB 到 10MB 之间。 99% 的处理时间花在了 u-sql 脚本的 EXTRACT 部分。
尝试过的东西,
在处理之前解压缩文件,这与压缩版本花费的时间大致相同,当然远不及我在本地看到的 40 秒。
将数据从 Blob 存储移动到 Azure Data Lake 存储,花费的时间完全相同。
暂时从文件中删除了大约一半的数据并重新 运行,令人惊讶的是,这也没有超过一分钟的时间。
添加更多 AU 以增加处理时间,这非常有效,但由于会产生成本,因此不是长期解决方案。
在我看来,从 Azure Blob Storage/Azure Data Lake 获取数据时似乎存在一个主要瓶颈。我是否遗漏了一些明显的东西。
P.S。如果您需要更多信息,请告诉我。
谢谢,
尼克。
请参阅 https://www.slideshare.net/MichaelRys/best-practices-and-performance-tuning-of-usql-in-azure-data-lake-sql-konferenz-2018 的幻灯片 31。有一个预览选项
设置@@FeaturePreviews="InputFileGrouping:on";
它将小文件分组到有限的顶点。
一直在研究使用 Azure Data Lake Analytics 功能来尝试和操作我存储在 Azures Blob 存储中的一些 Gzip 压缩 xml 数据,但我 运行 遇到了一个有趣的问题.本质上,当在本地使用 U-SQL 处理其中的 500 个 xml 文件时,处理时间非常快,在本地使用 1 个 AU(这似乎是极限)大约需要 40 秒。但是,当我们 运行 使用 5 个 AU 从 Azure 中执行相同的功能时,处理时间超过 17 分钟。
我们最终希望将其扩展到大约 20,000 个文件甚至更多,但已经减少了文件集以尝试测量速度。
每个文件包含 50 个 xml 对象的集合(子元素中包含不同数量的详细信息),这些文件在 Gzip 压缩后大约为 1 MB,在未压缩时在 5MB 到 10MB 之间。 99% 的处理时间花在了 u-sql 脚本的 EXTRACT 部分。
尝试过的东西,
在处理之前解压缩文件,这与压缩版本花费的时间大致相同,当然远不及我在本地看到的 40 秒。 将数据从 Blob 存储移动到 Azure Data Lake 存储,花费的时间完全相同。 暂时从文件中删除了大约一半的数据并重新 运行,令人惊讶的是,这也没有超过一分钟的时间。 添加更多 AU 以增加处理时间,这非常有效,但由于会产生成本,因此不是长期解决方案。 在我看来,从 Azure Blob Storage/Azure Data Lake 获取数据时似乎存在一个主要瓶颈。我是否遗漏了一些明显的东西。
P.S。如果您需要更多信息,请告诉我。
谢谢,
尼克。
请参阅 https://www.slideshare.net/MichaelRys/best-practices-and-performance-tuning-of-usql-in-azure-data-lake-sql-konferenz-2018 的幻灯片 31。有一个预览选项
设置@@FeaturePreviews="InputFileGrouping:on";
它将小文件分组到有限的顶点。