You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Apache CarbonData社区很高兴发布1.4.0版本,在社区开发者和用户的共同努力下,1.4.0解决了超过220个JIRA Tickets(新特性和bug修复),欢迎大家试用。

简介

CarbonData是一个高性能的数据解决方案,目标是实现一份数据支持多种分析场景,包括BI分析,即席SQL查询,明细数据分析,流式分析等。CarbonData已经部署在许多企业生产环境中,例如一个规模较大的场景,支持单个表5PB数据(超过10万亿条记录)上明细数据分析,响应时间小于3秒!

下面是1.4.0支持的新特性介绍。

Carbon Core

数据加载性能提升

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

数据Compaction性能提升

通过在Compaction过程中采用数据预取和矢量化读取的改进,CarbonData表上的Compaction执行性能与上一版本相比提高了500%。得益于这个提升,在其中一个生产环境中,可以实现每5分钟的数据加载(数据量为几百GB)的同时达到秒级查询响应,通过设置自动Compaction,系统每隔30分钟和60分钟进行一次Compaction("carbon.compaction.level.threshold"设置为"6,2"),减少了Segments的数量,使CarbonData的索引更有效。 

DataMap管理

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

外部表

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

支持云存储

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

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

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

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

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


针对OLAP场景的增强

支持在Streaming Table里使用预汇聚

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

预聚合表支持分区

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

物化视图(Alpha功能)

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

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

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




  • No labels