hive表增量更新到elasticsearch方案

本文介绍了一种针对大数据量Hive表的增量更新到Elasticsearch的解决方案,以减轻ES集群压力。主要思路是通过主键变化识别增量数据,并利用SQL的JOIN操作找到增删记录。在Elasticsearch中,通过添加is_valid字段标记数据状态,确保数据同步的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1. 背景

2. 总体思路

3. sql

       (1) 增量删除的数据

(2) 增量增加的数据

 

4. elasticsearch 设计

 


1. 背景

     hive表中有大量的业务数据,数据量比加大几千万上亿的量级,业务数据每天会有一部分数据发生变化。如果是每天全量更新到elasticsearch,会造成es集群节点的jvm压力巨大,影响es集群的可用性。所以,需要增量更新数据,降低es集群压力。

2. 总体思路

     首先需要,定义一个主键,当内容变化时对应的主键也发生变化,当数据没有发生变化时,主键保持不变。(主键可以通过md5生产唯一主键)。通过sql的中的加减法(left、right join)来找出每天需要增量删除和增量增加的数据。然后同步到es时,在额外增加一个字段(当前实现增加的是 is_valid 字段,见下面sql, is_valid=0表示无效数据,is_valid=1表示有效数据),该字段是一个标志位,标识同步到es的数据是是否可以业务使用。
 

3. sql

 (1) 增量删除的数据

#!/bin/sh
version_now=$(date -d"-2 day" +%Y-%m-%d)
version_pre=$(date -d"-3 day" +%Y-%m-%d)

hive -e "DROP TABLE IF EXISTS app.tmp_xz_jimi3_sku_description_delete"

hive -e "

CREATE TABLE app.tmp_xz_jimi3_sku_description_delete AS
SELECT
	main_id,
	item_sku,
	item_main_sku,
	a.bot_id,
	vender_id,
	category3,
	category3_id,
	entity_type,
	entity_value,
	entity_source,
	brand_code,
	brand_en,
	is_valid,
	version
FROM
	(
		SELECT
			tmp_pre.main_id,
			item_sku,
			item_main_sku,
			bot_id,
			vender_id,
			category3,
			category3_id,
			entity_type,
			entity_value,
			entity_source,
			brand_code,
		
在将数据从Hive同步Elasticsearch时,使用Seatunnel 增量同步是一种有效的解决方案。Seatunnel 是一个开源工具,能够实现数据源(如Hive)与目标地(如Elasticsearch)之间的数据同步。 Seatunnel 增量同步实现的基本原理是通过监控数据源中的变化,将新增、更新和删除的数据实时同步Elasticsearch中。当数据源中的数据发生变化时,Seatunnel会捕获变动的数据,并将其同步Elasticsearch中相应的索引中。 具体来说,Seatunnel 增量同步的步骤如下: 1. 安装并配置Seatunnel:首先需要在系统中安装Seatunnel,并进行相应的配置,包括指定HiveElasticsearch的连接信息、定义数据同步的规则等。 2. 监控数据源:Seatunnel会不断地监控Hive中的数据变化。当有新增、更新或删除操作发生时,Seatunnel会将这些变动的数据捕获并记录下来。 3. 数据同步:Seatunnel将捕获到的变动数据转换成Elasticsearch可以接收的格式,并将其同步到相应的索引中。对于新增的数据,Seatunnel会将其插入到Elasticsearch中;对于更新和删除的数据,Seatunnel会根据指定的规则更新或删除Elasticsearch中对应的文档。 通过Seatunnel 增量同步,可以实现Hive数据到Elasticsearch的实时同步。这样做的好处是能够保持Elasticsearch中的数据与Hive中的数据保持一致,使得Elasticsearch的搜索结果能够及时地反映Hive中数据的最新变化。同时,Seatunnel还提供了监控和告警机制,可以实时监控数据同步的状态,并在发生异常时发出警报,保证同步过程的稳定性和可靠性。 总之,Seatunnel 增量同步是一种可靠高效的数据同步方案,能够将Hive中的数据实时同步Elasticsearch中,为企业提供更快速准确地数据查询和分析能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值