carbon.sort.intermediate.files.limit
- Data loading
在加载数据期间,使用本地temp来对数据进行排序。 此数字指定必须启动合并排序之后的最小中间文件数。
增加参数到一个更高的值将提高负载性能。 例如,当我们将数值从20增加到100时,它将数据负载性能从35MB / S提高到超过50MB / S。 在加载过程中,此参数值越高,内存消耗越多。
carbon.number.of.cores.while.loading
- Data loading
指定在CarbonData中加载数据期间用于数据处理的内核数量。
如果你有更多的CPU数量,那么你可以增加CPU的数量,这会提高性能。 例如,如果我们将值从2增加到4,则CSV读取性能可以增加约1倍
carbon.compaction.level.threshold
- Data loading and Querying
每次CarbonData load 将创建一个分段,如果每个负载都很小,则会在一段时间内生成许多影响查询性能的小文件。 配置此参数将把小段合并到一个大段,这将对数据进行排序并提高性能。
spark.sql.shuffle.partitions
这个值可以是executo core的1到2倍。 在聚合场景中,将数量从200减少到32将查询时间从17秒减少到9秒。
spark.executor.instances/spark.executor.cores/spark.executor.memory
carbon.detail.batch.size
- Data loading
用于存储从block扫描返回记录的缓冲区大小。
在limit查询情况下,这个参数非常重要。 例如,您的查询limit是1000.但是,如果我们将此值设置为3000,则意味着我们从扫描中获得3000条记录,但spark只会取1000行。 所以剩下的2000年是没用的。 在一个财务测试用例中,在limit 1000情况下,设置成12000比设置成100性能提高了约2倍。
carbon.use.local.dir
- Data loading
如果设置为true,则CarbonData将使用YARN本地目录进行多表加载磁盘负载平衡(multi-table load disk load balance,),这将提高数据加载性能。
carbon.use.multiple.temp.dir
在表数据加载期间是否使用多个YARN本地目录来实现磁盘负载平衡
启用’carbon.use.local.dir’后,如果设置为true,则CarbonData会在数据加载期间使用所有YARN本地目录进行磁盘负载平衡,这将提高数据加载性能。 数据加载时遇到磁盘热点问题,请启用此属性。
注意:如果您的CarbonData实例仅用于查询,您可以指定spark属性目录下的spark.speculation = true属性。