开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

使用 flink cdc讲数据写入到 以mor方式hudi中 同时配置将hudi元数据同步到hiv

使用 flink cdc讲数据写入到 以mor方式hudi中 同时配置将hudi元数据同步到hive上,使用presto查询外部表 只能查 外部表 ro 对于生成的rt 表查询报错,请问有使用presto查询hudi的吗?

展开
收起
十一0204 2023-04-10 20:45:18 271 0
1 条回答
写回答
取消 提交回答
  • 坚持这件事孤独又漫长。
    • 可以使用 Presto 查询 Hudi 外部表。在配置 Hudi 外部表时,需要将 Hudi 中的元数据同步到 Hive 中,这样 Presto 才能正确地查询外部表。

    • 在建立外部表时,需要将 hudi.enable.hive.sync 参数设置为 true,这样 Hudi 就会将元数据同步到 Hive 中。具体如下所示:

    --建立外部表
    CREATE TABLE hudi_external_table (
      id bigint,
      name string,
      age int,
      email string,
      create_time string
    )
    --指定外部表存储的目录
    WITH (
      'connector' = 'hudi',
      'path' = 'hdfs://namenode:9000/hudi_table',
      'read.streaming.enabled' = 'true',
      'hudi.combine.rocksdb' = 'false',
      'hudi.cleaner.policy' = 'KEEP_LATEST_COMMITS',
      'hudi.cleaner.commits.to.keep' = '2',
      'hudi.enable.hive.sync' = 'true',
      'hudi.table.type' = 'MERGE_ON_READ',
      'hudi.record.key.field' = 'id',
      'hudi.precombine.field' = 'create_time',
      'hudi.write.payload.class' = 'org.apache.hudi.common.model.HoodieAvroPayload',
      'hudi.write.key.schema.file' = '/path/to/hudi-write-key.avsc',
      'hudi.write.split.max.size' = '128MB'
    )
    --指定数据的schema
    SELECT *
    FROM hdfs_file_avro_avsc
    
    • 在将外部表数据写入 Hudi 时,也需要将 hudi.enable.hive.sync 参数设置为 true,以保证写入的数据能够正确同步到 Hive。
    2023-04-11 09:02:14
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 热门讨论

    热门文章

    相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载