Apache Hudi表自动同步至阿里云数据湖分析DLA

简介: Hudi 0.6.0版本之前只支持将Hudi表同步到Hive或者兼容Hive的MetaStore中,对于云上其他使用与Hive不同SQL语法MetaStore则无法支持,为解决这个问题,近期社区对原先的同步模块hudi-hive-sync进行了抽象改造,以支持将Hudi表同步到其他类型MetaStore中,如阿里云的数据湖分析DLA(https://www.aliyun.com/product/datalakeanalytics中。

1. 引入


Hudi 0.6.0版本之前只支持将Hudi表同步到Hive或者兼容Hive的MetaStore中,对于云上其他使用与Hive不同SQL语法MetaStore则无法支持,为解决这个问题,近期社区对原先的同步模块hudi-hive-sync进行了抽象改造,以支持将Hudi表同步到其他类型MetaStore中,如阿里云的数据湖分析DLA(https://www.aliyun.com/product/datalakeanalytics中。


2. 抽象


将Hudi表同步至Hive MetaStore的代码在hudi-hive-sync模块,为兼容更多类型MetaStore,现将其改造为如下模块

hudi-sync
|-hudi-sync-common
|-hudi-hive-sync
|-hudi-dla-sync

其中各模块说明如下

  • hudi-sync-common表示元数据同步公共模块,用于存放一些用于同步的公共父类;
  • hudi-hive-sync表示同步Hive模块;
  • hudi-dla-sync表示同步阿里云DLA模块;

基于上述结构,用户可基于hudi-sync-common构建自定义的元数据同步逻辑。


3. 配置


下面以DLA为例,介绍如何通过Spark写入Hudi表后自动将Hudi表同步至DLA中,同步核心配置如下

df.write().format("hudi").
  options(getQuickstartWriteConfigs()).
  option(PRECOMBINE_FIELD_OPT_KEY(), "ts").
  option(RECORDKEY_FIELD_OPT_KEY(), "name").
  option(PARTITIONPATH_FIELD_OPT_KEY(), "location").
  option("hoodie.embed.timeline.server", false).
  option(TABLE_NAME, tableName).
  option(TABLE_TYPE_OPT_KEY(), tableType).
  option(META_SYNC_CLIENT_TOOL_CLASS(), "org.apache.hudi.dla.DLASyncTool").
  option(META_SYNC_ENABLED_OPT_KEY(), "true").
  option("hoodie.datasource.dla_sync.database", dbName).
  option("hoodie.datasource.dla_sync.table", tableName).
  option("hoodie.datasource.dla_sync.username", dlaUsername).
  option("hoodie.datasource.dla_sync.password", dlaPassword).
  option("hoodie.datasource.dla_sync.jdbcurl", dlaJdbcUrl).
  option("hoodie.datasource.dla_sync.partition_fields", "location").
  option("hoodie.datasource.dla_sync.partition_extractor_class", "org.apache.hudi.hive.MultiPartKeysValueExtractor").
  mode(saveMode).
  save(basePath);

关键配置项说明如下:

  • META_SYNC_CLIENT_TOOL_CLASS()表示进行同步的类,指定为org.apache.hudi.dla.DLASyncTool表示通过DLASyncTool进行同步,与HiveSyncTool同步至Hive功能类似;
  • hoodie.datasource.dla_sync.database表示同步至DLA中的数据库名;
  • hoodie.datasource.dla_sync.table表示同步至DLA中的表名;
  • hoodie.datasource.dla_sync.username表示连接DLA的用户名;
  • hoodie.datasource.dla_sync.password表示连接DLA的密码;
  • hoodie.datasource.dla_sync.jdbcurl表示连接DLA的JDBC连接;
  • hoodie.datasource.dla_sync.partition_fields表示同步至DLA的分区字段;
  • hoodie.datasource.dla_sync.partition_extractor_class表示同步至DLA的分区值解析器;

除了上述配置外,还需要在pom.xml依赖中新增hudi-dla-sync依赖(hudi.version为0.6.0-SNAPSHOT)

<dependency>
  <groupId>org.apache.hudi</groupId>
  <artifactId>hudi-dla-sync</artifactId>
  <version>${hudi.version}</version>
</dependency>


4. 同步


上述配置中,数据库名配置为hudi_dla_demo_db,表名配置为hudi_trips_dal_demo;其他用户名、密码、JDBC连接配置可参考如下链接:https://help.aliyun.com/document_detail/110829.html。配置完后即可在Spark写入Hudi时自动将Hudi表同步至DLA,同步结果如下

1.png

查询表结果如下:


2.png3.png

为方便用户直观感受到将Hudi表同步到DLA,可参考这里https://help.aliyun.com/document_detail/173653.html直接运行对应Jar包来快速构建基于Hudi和DLA的数据湖。


5. 总结


可以看到基于最新的Hudi版本,用户可自定义Hudi表同步MetaStore逻辑,同时只需要非常简单的配置即可完成自动同步,并且以同步至DLA为例,给出了关键配置,该功能将在近期发布的0.6.0版本中释出。

目录
相关文章
|
3月前
|
存储 分布式计算 算法
恭喜小红书!业界最大数据湖0故障迁上阿里云
恭喜小红书!业界最大数据湖0故障迁上阿里云
242 1
|
3月前
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
3月前
|
监控 Cloud Native BI
8+ 典型分析场景,25+ 标杆案例,Apache Doris 和 SelectDB 精选案例集(2024版)电子版上线
飞轮科技正式推出 Apache Doris 和 SelectDB 精选案例集 ——《走向现代化的数据仓库(2024 版)》,汇聚了来自各行各业的成功案例与实践经验。该书以行业为划分标准,辅以使用场景标签,旨在为读者提供一个高度整合、全面涵盖、分类清晰且易于查阅的学习资源库。
|
4月前
|
消息中间件 分布式计算 druid
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(一)
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(一)
80 1
|
4月前
|
消息中间件 druid 大数据
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(二)
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(二)
66 2
|
4月前
|
消息中间件 druid Kafka
从Apache Flink到Kafka再到Druid的实时数据传输,用于分析/决策
从Apache Flink到Kafka再到Druid的实时数据传输,用于分析/决策
118 0
|
5月前
|
存储 JSON 物联网
查询性能提升 10 倍、存储空间节省 65%,Apache Doris 半结构化数据分析方案及典型场景
本文我们将聚焦企业最普遍使用的 JSON 数据,分别介绍业界传统方案以及 Apache Doris 半结构化数据存储分析的三种方案,并通过图表直观展示这些方案的优势与不足。同时,结合具体应用场景,分享不同需求场景下的使用方式,帮助用户快速选择最合适的 JSON 数据存储及分析方案。
查询性能提升 10 倍、存储空间节省 65%,Apache Doris 半结构化数据分析方案及典型场景
|
5月前
|
存储 大数据 数据挖掘
【数据新纪元】Apache Doris:重塑实时分析性能,解锁大数据处理新速度,引爆数据价值潜能!
【9月更文挑战第5天】Apache Doris以其卓越的性能、灵活的架构和高效的数据处理能力,正在重塑实时分析的性能极限,解锁大数据处理的新速度,引爆数据价值的无限潜能。在未来的发展中,我们有理由相信Apache Doris将继续引领数据处理的潮流,为企业提供更快速、更准确、更智能的数据洞察和决策支持。让我们携手并进,共同探索数据新纪元的无限可能!
210 11
|
6月前
|
消息中间件 监控 数据挖掘
基于RabbitMQ与Apache Flink构建实时分析系统
【8月更文第28天】本文将介绍如何利用RabbitMQ作为数据源,结合Apache Flink进行实时数据分析。我们将构建一个简单的实时分析系统,该系统能够接收来自不同来源的数据,对数据进行实时处理,并将结果输出到另一个队列或存储系统中。
389 2
|
6月前
|
安全 数据管理 大数据
数据湖的未来已来:EMR DeltaLake携手阿里云DLF,重塑企业级数据处理格局
【8月更文挑战第26天】在大数据处理领域,阿里云EMR与DeltaLake的集成增强了数据处理能力。进一步结合阿里云DLF服务,实现了数据湖的一站式管理,自动化处理元数据及权限控制,简化管理流程。集成后的方案提升了数据安全性、可靠性和性能优化水平,让用户更专注业务价值。这一集成标志着数据湖技术向着自动化、安全和高效的未来迈出重要一步。
131 2

推荐镜像

更多