Streaming Data Ingest介绍

本文介绍了Hive的Streaming Data Ingest功能,主要利用Hive HCatalog Streaming API实现流式数据插入。从Hive 0.14版本开始,支持向已有分区插入数据。API分为连接和事务管理以及I/O支持两部分,使用HiveEndPoint和StreamingConnection进行操作。事务通过Metastore管理,允许多个客户端并发创建分区。TransactionBatch用于写入一系列事务,每个事务涉及的记录会被分配到合适的bucket并写入HDFS。
摘要由CSDN通过智能技术生成

Streaming Data Ingest介绍

主要是使用Hive HCatalog Streaming API
传统情况下增加新的数据,需要收集hdfs上的数据,并且定期的向新的分区中增加。
那么,batch insert是很有必要的。之前,不能向已存在的分区中插入数据,
现在,hive0.14版本之后,Hive Streaming Api支持持续的插入数据。
新插入的数据,可以在一个批次中,提交到hive表中。
Hive HCatalog Streaming API是为流式客户端准备的,如Flume,Storm,它们持续不断的产生数据。
流式支持,是基于Hive表对ACID的支持。

这个API分为两个部分
第一个部分提供连接和事务的管理
第二个部分提供I/O支持
事务是通过metastore管理的。

HiveEndPoint

描述了一个需要连接的hive终端,库名,表名,分区名都包括
调用它上面的newConnection 方法建立一个到Hive Metastore的用于Streaming的连接。它返回一个StreamingConnection对象。同一个endpoint上,可以建立多个连接。
StreamingConnection可以被用来初始化新的事务来执行IO
HiveEndPoint.newConnection()方法接收一个boolean类型的参数,来决定是否创建分区,分区的创建时原子性的,所以,多个客户端可以比赛创建分区,但是只有一个会创建成功。

事务的实现,与传统的数据库的实现有一点不一样。
每个事务都有一个事务ID,多个事务会被分组到一个“事务批次”
这能够帮助把很多

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值