快捷搜索:  汽车  科技

apache分析软件哪个好:Apache Hudi 0.11.0

apache分析软件哪个好:Apache Hudi 0.11.0②CALL Command-Clusteringcall rollback_to_instant('test_hudi_table' 20220511224632307')Call Command命令在设计时主要有四个方面的功能。一是支持归档、提交、回滚和创建还原点的快照动作。二是可以进行原数据管理。三是对运维表进行数据导入导出、Boostrap、修复表、升级/降级等操作。四是优化表动作,如Compaction、Clustering、Clean等。Call Command的参数有三类。一是可以使用不定式的参数(键值对)作为它的入参参数。二是可以按照参数的位置进行入参。三是混合参数。以下是传参的具体语法:①CALL Command-快照管理的相应的命令

  • 还原数据:insert into test_hudi_table select * from test_hudi timestamp as of 20220511165343733(数据如果存在的话update,如果数据不存在就insert)
  • 查询数据:select * from test_hudi (id=2的数据已经还原回来了)

apache分析软件哪个好:Apache Hudi 0.11.0(1)

注意:如果这个表用了 truncate清空的话,这种时间戳方式查询恢复就不行了。

3. 添加CALL命令以支持在 Hudi 表上调用更多操作

Call Command产生的一个背景是spark sql除了ddl、dql和dml之外的操作,我们想解决这三种操作之外的一些新功能的操作。那么在引入Call Command之前是没办法操作的。我们对比了一下传统数据库里面的存储过程,类似地在spark这一块实现了一个command动作,然后对应实现了一个procedure的功能。

首先是在hudi一侧为call command生成了一个通用的语法,不依赖于spark的版本,可以对所有spark版本适用。然后生成了一个HoodieProcedure的类,使用CallProcedureHoodieCommand类调用动作。

Call Command命令在设计时主要有四个方面的功能。一是支持归档、提交、回滚和创建还原点的快照动作。二是可以进行原数据管理。三是对运维表进行数据导入导出、Boostrap、修复表、升级/降级等操作。四是优化表动作,如Compaction、Clustering、Clean等。

Call Command的参数有三类。一是可以使用不定式的参数(键值对)作为它的入参参数。二是可以按照参数的位置进行入参。三是混合参数。以下是传参的具体语法:

apache分析软件哪个好:Apache Hudi 0.11.0(2)

  • 接下来是CALL Command功能方面的一些介绍。

①CALL Command-快照管理的相应的命令

  • 查询快照 :call show_commits_metadata(table => 'test_hudi_table' limit => 10)
  • 回滚快照:

call rollback_to_instant('test_hudi_table' 20220511224632307')

  • 创建保存点 :create_savepoints
  • 恢复保存点 :rollback_savepoints
  • 删除保存点 :delete_savepoints

②CALL Command-Clustering

可以设置Clustering的类型:

set hoodie.layout.optimize.strategy=linear /z-order/hilbert

常用命令:

call run_clustering(table => 'test_hudi_table' order => 'ts')

call show_clustering(table=>'test_hudi_table')

通过这些clustering的动作,在查询的时候性能能达到10-20倍的提升。

③CALL Command-Compact(小文件合并)(目前只支持mor表)

Data file和Delta log file 合并会重新生成一个新的文件。

apache分析软件哪个好:Apache Hudi 0.11.0(3)

命令:call run_compaction(table=>'test_hudi_table' op=> instant

--

03

Flink 集成改进

最后,介绍Flink集成改进方面的内容。主要有以下几点:

1. 在 0.11.0 中,同时支持 Flink 1.13.x 和 1.14.x。

2. 支持复杂的数据类型。

3. 基于 DFS 的 Flink HoodieCatalog。

绿色是目前已经实现的操作,红色是待实现的操作。可以通过ApI实现或者是Flink Sql实现。

FlinkHoodieCatalog在三个方面有比较好的作用:

  • 第一个方面是对元数据的管理,通过FlinkHoodieCatalog这个框架可以更好地管理HoodieCatalog;
  • 第二个方面是可以基于这个框架可以去和外面的其他的平台去对接,更方便对接使用;
  • 第三个方面是元数据方面,可以在数据血缘方面构造一些功能。

apache分析软件哪个好:Apache Hudi 0.11.0(4)

4. Bucket Index

为什么要集成改进Bucket Index?这个是字节的同学贡献的一个功能。他们在他们的生产场景里面,在34tb的数据量在5000亿的记录写入的情况下,Bloom Filter Index 通过Record key去找File ID 的这样的一个动作的性能会下降得很快。为了解决Bloom Filter Index的假阳性,他们引入了Bucket Index。

通过key的哈希值定位到File Group,提升了实时导入的性能。如下图所示:

apache分析软件哪个好:Apache Hudi 0.11.0(5)

猜您喜欢: