【问题标题】:Queries performances on ADLS gen 2查询 ADLS gen 2 上的性能
【发布时间】:2020-07-25 13:39:36
【问题描述】:

我正在尝试将我们的“老派”数据库(主要是时间序列)迁移到 Azure 数据湖。

所以我拿了一张随机表(10 年的数据,2 亿条记录,20Gb),将数据复制到单个 csv 文件中,也复制到相同的数据中,并创建了 4000 个每日文件(在每月文件夹中)。

在这 2 组文件之上,我创建了 2 个外部表......而且我得到的性能几乎相同。 (?!?)

无论我在查询什么,无论是在一天内查找数据(因此在单个小文件中)还是对整个数据集进行求和...基本上都需要 3 分钟,无论我是否'正在查看单个文件或每日文件 (4000)。就好像在做任何事情之前必须将整个数据集加载到内存中?!?

那么有没有可以更改的设置,以避免在不需要时加载所有数据?它实际上可以使我的查询速度提高 1000 倍。

据我了解,外部表上不可能有索引。创建物化视图将破坏使用 Lake 的目的。 t

全面披露;我是 Azure 数据存储的新手,我正在尝试看看它是否是解决我们问题的正确技术。

【问题讨论】:

  • 您在 Synapse 中使用什么查询引擎? SQL (DW) 池或 SQL On-demand?还是 Spark?

标签: data-warehouse azure-data-lake external-tables azure-synapse


【解决方案1】:

最佳做法是使用 Parquet 格式,而不是 CSV。它是一种针对类似 OLAP 的查询进行优化的列格式。

通过 Synapse Preview,您可以在不需要配置 DW 集群时使用 SQL 按需引擎(无服务器技术),并且您将按每 Tb 扫描数据收费。

或者您可以启动 Synapse 集群并使用 COPY 命令将您的数据提取到 DW 中(它也处于预览状态)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-01
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-29
    • 2020-06-09
    相关资源
    最近更新 更多