第2代ADLS的查询性能

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

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

在这两组文件的顶部,我创建了2个外部表....并且它们的性能几乎相同。 (?!?)

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

因此,我可以在某个地方进行更改,以免在不需要时加载所有数据?这样可以使我的查询速度提高1000倍。

据我了解,外部表上无法建立索引。创建物化视图将破坏使用Lake的目的。 t

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

djdz123 回答:第2代ADLS的查询性能

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

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

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

本文链接:https://www.f2er.com/2455764.html

大家都在问