使用 flink cdc讲数据写入到 以mor方式hudi中 同时配置将hudi元数据同步到hive上,使用presto查询外部表 只能查 外部表 ro 对于生成的rt 表查询报错,请问有使用presto查询hudi的吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
可以使用 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.enable.hive.sync
参数设置为 true
,以保证写入的数据能够正确同步到 Hive。实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。