Versions Compared

Key

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

...

1.4.0中的CREATE DATAMAP语句中引入了新的语法'DEFERRED REBUILD',这使得用户可以选择DataMap管理机制是自动或手动。在创建DataMap时,如果用户指定了'DEFERRED REBUILD',系统会默认设置DataMap的状态为不可用,当用户执行REBUILD DATAMAP命令后,系统会触发DataMap的加载,并在查询时使用该DataMap。这使用户可以控制何时加载DataMap,有利于用户控制对资源的使用。相对地,用户也可以不指定'DEFERRED REBUILD', 每当有新的数据加载发生时系统会自动触发所有相关DataMap的加载(与老版本一样)。每当有新的数据加载发生时系统会自动触发所有相关DataMap的加载(与老版本一样)。详细操作请参阅DataMap管理

外部表

现在您可以通过CREATE TABLE ... LOCATION ...来指定Carbon数据文件的存储位置,这个特性的行为和用户与Hive External Table相同。

...

您可以使用云存储来建立CarbonData外部表,例如将CarbonData表存储在AWS S3,华为云OBS等云存储中。S3,华为云OBS等云存储中。例子请参阅CarbonData云存储例子

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

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

  1. CSV数据,Schema由用户指定。
  2. JSON数据,Schema通过Avro对象表达。

具体例子请参阅CarbonData SDK应用例子

针对OLAP场景的增强

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

...

为了提升高基数列的过滤效果和查询性能,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 为了提高并发过滤查询性能,CarbonData新增了一种“搜索模式”(Search Mode)来执行查询(包含查询调度和执行)。该模式不使用Spark RDD和DAG Scheduler,避免了由于RDD带来的性能开销。在一个与“Spark模式”的对比测试中,“搜索模式”使查询时延降低了一半,从1秒降低到500ms。在一个与“Spark模式”的对比测试中,“搜索模式”使查询时延降低了一半,从1秒降低到500ms。例子请参考SearchMode例子


其他重要改进

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

...