透過 ETL 匯出 Hive 中的資料
什麼是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
<?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>
執行命令
etl_engine -fileUrl hive_to_db.grf -logLevel debug
如此簡單就完成了 讀 hive 資料表 、寫 mysql 資料表 操作。
參考資料
[免費下載]() [etl-engine使用手冊]() [etl-crontab使用手冊](/wiki/etl-crontab%E8%B0%83%E5%BA%A6) [嵌入指令碼開發](/wiki/%E5%B5%8C%E5%85%A5%E8%84%9A%E6%9C%AC%E5%BC%80%E5%8F%91)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024931/viewspace-2937232/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sqoop用法之mysql與hive資料匯入匯出OOPMySqlHive
- ETL資料整合丨透過ETLCloud工具,將Oracle資料實時同步至Doris中CloudOracle
- Sqoop匯出ClickHouse資料到HiveOOPHive
- ETL資料整合丨PostgreSQL資料遷移至Hive資料庫SQLHive資料庫
- Sqoop將MySQL資料匯入到hive中OOPMySqlHive
- 高效資料傳輸:Java透過繫結快速將資料匯出至ExcelJavaExcel
- HIVE資料匯入基礎Hive
- 厲害了!12秒將百萬資料透過EasyExcel匯入MySQL資料庫中ExcelMySql資料庫
- Mysql透過workbench對錶進行匯出匯入MySql
- ETL過程中資料精度不準確問題
- 透過寫入實體進行匯出
- MongoDB--Mongodb 中資料匯出與匯入MongoDB
- vue+element + table將選中的資料匯出為excel(匯出的是當前頁選中的資料)VueExcel
- Hive資料匯入HBase引起資料膨脹引發的思考Hive
- MySQL資料的匯出MySql
- 將資料匯入kudu表(建立臨時hive表,從hive匯入kudu)步驟Hive
- Mongodb資料的匯出與匯入MongoDB
- 匯入和匯出AWR的資料
- EasyPoi, Excel資料的匯入匯出Excel
- Nebula Exchange 工具 Hive 資料匯入的踩坑之旅Hive
- 資料庫 MySQL 資料匯入匯出資料庫MySql
- [hive]hive資料模型中四種表Hive模型
- 將資料庫中資料匯出為excel表格資料庫Excel
- sqoop資料匯入匯出OOP
- Oracle 資料匯入匯出Oracle
- 資料泵匯出匯入
- Oracle資料匯入匯出Oracle
- phpMyAdmin匯入/匯出資料PHP
- hive匯出到csv hive匯出到excelHiveExcel
- ETL中後設資料處理的方式
- 如何使用Java建立資料透視表並匯出為PDFJava
- SQL資料庫的匯入和匯出SQL資料庫
- Oracle資料泵的匯入和匯出Oracle
- Oracle 11g 透過expdp按日期匯出表Oracle
- Hive中的集合資料型別Hive資料型別
- mysql 匯入匯出資料庫以及函式、儲存過程的介紹MySql資料庫函式儲存過程
- mysql匯出資料MySql
- Java:匯出Excel大批量資料的優化過程JavaExcel優化