前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >hive etl 通过 ETL engine 读取 Hive 中的数据

hive etl 通过 ETL engine 读取 Hive 中的数据

原创
作者头像
威哥
修改2023-02-28 11:20:07
2.3K0
修改2023-02-28 11:20:07
举报
文章被收录于专栏:etl
db.png
db.png

什么是Hive?

  • Hive是在Hadoop分布式文件系统上运行的开源分布式数据仓库数据库,用于查询和分析大数据。
  • 数据以表格的形式存储(与关系型数据库十分相似)。数据操作可以使用名为HiveQL的SQL接口来执行。
  • HiveQL默认情况下会转换成MapReduce进行计算(降低了开发难度),所以比较慢,常用于做离线数据分析场景,不适合做实时查询。

为什么选择Hive?

  • Hive是运行在Hadoop上的SQL接口。此外,它还降低了使用MapReduce框架编程的复杂性。
  • Hive帮助企业在HDFS上执行大规模数据分析,使其成为一个水平可伸缩的数据库。
  • 通过HiveSQL使具有RDBMS背景的开发人员能够快速构建符合自己业务需求的数据仓库。
  • Hive直接将数据存储在HDFS系统中,扩容等事宜都交由HDFS系统来维护。

如何将Hive中的分析数据导到业务系统中?

etl-engine支持对Hive的读取,并输出到以下目标数据源:

  • 消息中间件(Kafka | RocketMQ);
  • 关系型数据库( Oracle | MySQL | PostgreSQL | Sqlite);
  • NoSQL(Elasticsearch | Redis);
  • 时序数据库( InfluxDB | ClickHouse | Prometheus);
  • 文件( Excel );

etl-engine支持None和Kerberos认证方式,适合测试环境及企业应用中的认证场景。

只需要二步 就完成 读Hive写DB操作

编写配置文件 hive_to_db.grf

代码语言:shell
复制
<?xml version="1.0" encoding="UTF-8"?>
<Graph>

    <Node id="HIVE_READER_01" dbConnection="CONNECT_02"   
	type="HIVE_READER" desc="读Hive节点1"  fetchSize="1000" >
    <Script name="sqlScript"><![CDATA[
		 select uuid,name,height,writetime from db_hive_edu.t_u_info  
]]></Script>
      </Node>
 
  <Node id="DB_OUTPUT_01" type="DB_OUTPUT_TABLE" desc="写数据表节点1" dbConnection="CONNECT_01" outputFields="uuid;name;height;writetime"  renameOutputFields="uuid;name;height;writetime"  >

        <Script name="sqlScript"><![CDATA[
          insert into db1.t_hive_u_info (uuid,name,height,writetime) values (?,?,?,?)
    ]]></Script>
  </Node>


  <Line id="LINE_01" type="STANDARD" from="HIVE_READER_01" to="DB_OUTPUT_01" order="0" metadata="METADATA_01"></Line>

  <Metadata id="METADATA_01">
    <Field name="uuid" type="int" default="-1" nullable="false"/>
    <Field name="name" type="string" default="-1" nullable="false"/>
    <Field name="height" type="float" default="-1" nullable="false"/>
     <Field name="writetime" type="string" default="-1" nullable="false"/>
  </Metadata>

    <Connection id="CONNECT_02" dbURL="hadoop01:10000" database="db_hive_edu" username="Administrator" password="******" batchSize="1000" type="HIVE"/>

	<Connection id="CONNECT_01" dbURL="127.0.0.1:3306" database="db1" username="root" password="******" batchSize="1000" type="MYSQL"/>

   <!--  
     <Connection sortId="1" id="CONNECT_1" type="ORACLE" dbURL="127.0.0.1:1521" database="orcl" username="c##u1" password="******" />
   -->
</Graph>

执行命令

代码语言:shell
复制
 etl_engine -fileUrl hive_to_db.grf -logLevel debug

如此简单就完成了 读 hive 数据表 、写 mysql 数据表 操作。

参考资料

代码语言:shell
复制
  [免费下载](https://github.com/hw2499/etl-engine/releases)
  [etl-engine使用手册](https://github.com/hw2499/etl-engine)
  [etl-crontab使用手册](https://github.com/hw2499/etl-engine/wiki/etl-crontab%E8%B0%83%E5%BA%A6)
  [嵌入脚本开发](https://github.com/hw2499/etl-engine/wiki/%E5%B5%8C%E5%85%A5%E8%84%9A%E6%9C%AC%E5%BC%80%E5%8F%91)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是Hive?
  • 为什么选择Hive?
  • 如何将Hive中的分析数据导到业务系统中?
  • 编写配置文件 hive_to_db.grf
  • 执行命令
  • 参考资料
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档