我有个别交易的交易信息(例如客户代码,产品,产品组,价格等)
我现在已将此分区为每年的镶木地板文件_month
在报告产品组等的聚合等时非常有效。
但是,如果我想在几个月内检索特定客户的信息,这不是非常有效/快速。
我试图按year_month&分区进行分区customer_code,但随后有很多磁盘i / o,因为每个分区现在都是一个客户代码,其中包含一行数据。
有没有办法提高性能,让我们说在一个分区中坚持10000个客户?或者如果镶木地板文件大小为64Mb或类似的话,请分区到下一组。
根据Spark中的逻辑,它在镶木地板文件中具有每个属性的最大最大值,我希望性能提升,但我太新了火花/实木复合地板以真正理解这是否是正确的思想以及技术上是否可行。 (当然我可以自己创建客户代码组,也可以在查询时使用它,但我希望能更自动地创建一些东西)。
谢谢,
-G。
答案 0 :(得分:0)
如果您按客户代码在每个文件中订购数据并将Spark配置为使用镶木地板谓词下推(默认情况下启用),则客户代码的完整扫描将更快。
内部镶木地板文件存储每个页面和块的列最小/最大值。按值过滤可以根据此统计信息有效地跳过读取页面和块。