我正在尝试将我们的“老派”数据库(主要是时间序列)迁移到 Azure 数据湖。
所以我拿了一张随机表(10 年的数据,2 亿条记录,20Gb),将数据复制到单个 csv 文件中,也复制到相同的数据中,并创建了 4000 个每日文件(在每月文件夹中)。
在这两组文件之上,我创建了 2 个外部表....而且我得到的性能几乎相同。(?!?)
无论我在查询什么,无论我是在一天内查找数据(因此在一个小文件中)还是对整个数据集进行求和......基本上都需要 3 分钟,无论我在寻找在单个文件或每日文件 (4000) 中。就好像在做任何事情之前必须将整个数据集加载到内存中?!?
那么是否有一个我可以更改的设置,以避免在不需要时加载所有数据?它实际上可以使我的查询速度提高 1000 倍。
据我了解,外部表上不可能有索引。创建物化视图将破坏使用 Lake 的目的。吨
全面披露; 我是 Azure 数据存储的新手,我正在尝试看看它是否是解决我们问题的正确技术。