Apache Hudi初探(七)(与spark的结合)

背景

目前hudi的与spark的集合还是基于spark datasource V1来的,这一点可以查看hudi的source实现就可以知道:

class DefaultSource extends RelationProvider
  with SchemaRelationProvider
  with CreatableRelationProvider
  with DataSourceRegister
  with StreamSinkProvider
  with StreamSourceProvider
  with SparkAdapterSupport
  with Serializable {

闲说杂谈

接着Apache Hudi初探(二)(与spark的结合)中剩下的:

    val syncHiveSuccess = metaSync(sqlContext.sparkSession, writeConfig, basePath, df.schema)

这里主要是同步到数据到hive的元数据中,如果hoodie.datasource.hive_sync.enable开启(默认是false,不开启)
则会设置hoodie.datasource.meta.sync.enable为true(默认是false,不开启),于此同时会把HiveSyncTool类加入到syncClientToolClassSet集合中,便于后续调用,当然如果设置了hoodie.meta.sync.client.tool.class,也会加入到该集合中。
如果hoodie.datasource.meta.sync.enable为true ,
会设置hoodie.datasource.hive_sync.schema_string_length_threshspark.sql.sources.schemaStringLengthThreshold 默认是4000
设置hoodie.meta_sync.spark.versio当前spark的版本
设置hoodie.meta.sync.metadata_file_listinghoodie.metadata.enable (默认是true)
之后调用HiveSyncToolsyncHoodieTable方法来进行元数据的同步,
对于MOR表来说,会有两张表,一张是rt 表,一张是ro表,分别对应snapshot表(实时表)和读优化表
但是如果hoodie.datasource.hive_sync.skip_ro_suffixtrue (默认是false),则读优化表,则不会加 ro 后缀
最后还会在spark中刷新刚才建立的表,这样才spark的查询中就能查询到插入的hudi表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值