Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

通过增强入库过程中的IO读写(包括排序临时文件改进,分区排序,免拷贝等),数据加载性能得到了显着提高。 ,数据加载性能得到了显著提高。 在其中一个生产环境中,与上一版本相比,我们观察到多达300%的改进,加载吞吐量从35MB每秒每节点提升到102MB每秒每节点。

...

支持在独立应用程序中使用SDK

1.4.0提供了Java SDK,通过使用该SDK,应用程序可以不依赖Hadoop和Spark来创建表格、写入和读取CarbonData文件。例如,用户可以写一个独立的Java程序将现有数据转换为CarbonData文件。,目前,SDK支持把以下格式转换为CarbonData文件,支持写入到本地磁盘或云存储。 SDK,通过使用该SDK,应用程序可以不依赖Hadoop和Spark来创建表格、写入和读取CarbonData文件。例如,用户可以写一个独立的Java程序将现有数据转换为CarbonData文件。目前,SDK支持把以下格式转换为CarbonData文件,支持写入到本地磁盘或云存储。 1。CSV数据,Schema由用户指定。

  1. CSV数据,Schema由用户指定。

...

  1. JSON数据,Schema通过Avro对象表达。


针对OLAP场景的增强

支持在Streaming Table里使用预汇聚 (PreAggregate DataMap)

在上个版本中,一个表格不能同时进行流式入库和创建预汇聚表,在1.4.0中去除了这个限制。现在您可以在流式表上创建预聚合表,既缩短了数据从产生到可分析的时间, 也可以利用预汇总表来提高查询性能。此特性的实现机制是把一个查询分为两个部分,一部分查询流数据,另一部分查询预聚合数据,最终系统自动合并查询结果。 由于预聚合数据比原始数据少得多,所以使查询更快。也可以利用预汇总表来提高查询性能。此特性的实现机制是把一个查询分为两个部分,一部分查询流数据,另一部分查询预聚合数据,最终系统自动合并查询结果。由于预聚合数据比原始数据少得多,所以使查询更快。

预聚合表支持分区

针对分区表,用户创建预汇聚表(preaggregate DataMap)后,预汇聚表会具备相同的分区属性(相同的分区列)。由于此时主表和预汇聚表的分区是Aligned的,因此当您在主表上执行数据管理操作(如创建/删除/覆盖写分区)时, 同样的操作将在聚合表上自动完成,使两者保持同步。例如,用户可以创建一个天分区表,每天导入数据到新分区,这样系统也会自动完成对应预汇聚表的新分区导入。时,同样的操作将在聚合表上自动完成,使两者保持同步。例如,用户可以创建一个天分区表,每天导入数据到新分区,这样系统也会自动完成对应预汇聚表的新分区导入。

支持物化视图(Alpha功能, MV DataMap)

与1.3.0版中引入的预汇聚表(PreAggregate DataMap)相比,1.4.0中引入了功能更强大的物化视图(MV DataMap),它可以涵盖更多的 OLAP分析场景。用户通过类似的DataMap语句(CTAS)创建,删除,显示物化视图,在查询时系统会根据查询条件和执行成本找到合适的物化视图,将查询语句重写为针对物化视图的查询,提升查询性能。创建、删除、显示物化视图,在查询时系统会根据查询条件和执行成本找到合适的物化视图,将查询语句重写为针对物化视图的查询,提升查询性能。

CarbonData物化视图作为一个长期演进特性,目前支持SPJGH的形式(select-predicate-join-groupby-having),用户可以创建单表或多表的汇聚表,也可以针对单表只做过滤,不做汇聚。

...

  • 改进了EXPLAIN命令输出,通过EXPLAIN命令,用户可以得知某个查询是否被重写针对预聚合表或物化视图的查询,使用了哪个索引,命中了多少个文件和Blocklet等,可以基于此对物化视图和索引进行调优。 
  • 在Carbon Core中增加了性能调优日志,包括输出SQL解析和优化器占用时间,索引过滤信息,Carbon文件IO读取时间,解码Blocklet的数量和时间,向上层引擎填充结果的时间等。参考“enable.query.statistics”配置设置。
  • 并行支持数据加载和Compaction并发执行。支持数据加载和Compaction并发执行。
  • 支持将可见和不可见的Segment元数据分隔为两个文件,并在SHOW SEGMENTS命令中显示它们。
  • 支持分区表上的全局排序选项
  • 减少全局排序表中的对象生成,减少GC
  • 对DESC命令进行优化以显示分区表的分区值和位置

...