Versions Compared

Key

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

...

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


针对OLAP场景的增强

支持在Streaming Table里使用预汇聚

...

(PreAggregate DataMap)

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

...

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

...

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

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

CarbonData物化视图作为一个长期演进特性,目前支持SPJGH的形式(select-predicate-join-groupby-having),用户可以创建单表或多表的汇聚表,也可以针对单表只做过滤,不做汇聚。这个特性目前是Alpha版本,目前仍存在不完善的地方,不建议在生产系统中使用,但我们鼓励所有用户在非生产系统中试用,该特性会在未来版本中逐步改进。 

这个特性目前是Alpha版本,仍存在不完善的地方,不建议用户在生产系统中使用,但我们鼓励所有用户在非生产系统中试用,该特性会在未来版本中逐步改进。 


针对明细数据分析的增强

针对高基数列的BloomFilter DataMap(Alpha功能)

为了提升高基数列的过滤效果和查询性能,1.4.0引入了BloomFilter索引。 它针对的场景是类似用户名/ID等高基数列上进行精确匹配。 在一个与上一版本的对比测试中,我们针对用户名进行过滤查询,发现并发查询性能提高了3~5倍。 有关更多详细信息,请参阅 BloomFilter DataMap指南

针对文本检索的Lucene DataMap(Alpha功能)

Lucene是一个高性能全文检索引擎,1.4.0实现了一个基于Lucene的DataMap索引,用户可以创建Lucene DataMap来提高长文本字符串列的模糊匹配查询性能。 有关更多详细信息,请参阅 Lucene DataMap指南

支持搜索模式(Alpha功能)

为了提高并发过滤查询性能,CarbonData新增了一种“搜索模式”来执行查询(包含查询调度和执行)。该模式不使用Spark RDD和DAG Scheduler,避免了由于RDD带来的性能开销。在一个与“Spark模式”的对比测试中,“搜索模式”使查询时延降低了一半,从1秒降低到500ms。


其他重要改进

  • 改进的EXPLAIN命令输出显示:查询是否被重写为使用预聚合表或实体化视图,哪个 索引DataMap被击中,修剪了多少个块。 
  • 增加了性能调优信息的日志,包括驱动程序端解析和优化器时间,博克分布信息,碳文件IO读取 时间,扫描块数量,结果填充时间等
  • 并行支持压实和加载。
  • 支持将可见和不可见片段元数据分隔为两个文件,并分别在SHOW SEGMENTS命令中显示它们 支持分区表上的全局排序选项
  • 减少全局排序表中的对象生成
  • 对DESC命令进行优化以显示分区表的分区值和位置