Apache Doris使用经验

由于近期使用了Doris,发现有一些关键点新手需要注意,故列出如下Tips。

1. 建表时一定要根据数据量,以及查询时间跨度合理分区,且尽量不要使用无分区模式(Create table 时如果不分区会默认生成一个分区,且无法repartition)。Doirs在查询时,会根据时间条件选择合适的分区,会减少Scan的数据量,提升查询性能。而且使用分区在数据备份,数据删除等方面均会更方便。

2.如果需要改变分区且已有数据怎么办?可以建立一个临时表,使用insert into tmp [streaming] select * from table;把数据导入新表中。然后rename 两个表名,可以实现无缝切换。如果有实时流,需要短暂的停流。

3.存在replace 的value列,建表后无法删除key列。因为存在replace的列,删除key列后,数据无法判断replace的标准。所以建表时如果有replace的需求,需要慎重考虑使用。

4.在查询时,Doirs可以吧int类型的时间列自动转成date类型,但是无法根据这个列进行partition过滤,会增大查询压力。

            比如有一列click_date为"date"类型。那么:

            select * from A where click_date=20190401 数据是正确的,但是无法过滤partition。

            select * from A where click_date= '2019-04-01' 可以根据click_date这个分区列,过滤掉无用的分区。

            如果分区较多,时间跨度大的表,会有非常大的优化。具体是否优化可以使用explain查看。

            explain 中有三列比较关键。partitions : 这次查询scan的partition数

                                                            rollup : 是否查询满足走rollup表的条件

                                                            buckets : 本次查询扫描的bucket数

你可能感兴趣的:(Apache,Doris,(,palo,))