sqoop导出orc数据至mysql_Sqoop 支持 ORC 文件格式
ORC 介绍
ORC 文件格式是 Hive 0.11.0 版本引入的一种文件格式。ORC 的引入是为了解决其他 Hive 文件格式的局限性。使用 ORC 文件格式提升 Hive 读取、写入及处理数据的性能。
与 RCFile 对比,ORC 文件格式有很多优点:每个 Task 只输出一个文件,降低 NameNode 的负载。
Hive 数据类型支持,包括:datetime、decimal 以及复杂数据类型(struct、list、map、union)。
文件中存储轻量级的索引:跳过不通过谓语过滤的行组
跳转到指定的行
基于数据类型的块模式压缩:整型数据列采用行程长度编码(run-length encoding)
字符串数据列采用词典编码(dictionary encoding)
使用独立的 RecordReader 并发读取相同的文件
无需扫描 markers 就可以分割文件的能力
绑定读写需要的内存量
Sqoop 支持 ORC
通过 Sqoop-HCatalog 集成解决 Sqoop 不支持 ORC 的问题。
HCatalog 背景HCatalog 是 Hadoop 的一个 table 与存储管理的一个服务,用户可以更容易地使用不同的数据处理工具 Pig、MapReduce 和 Hive 读写数据。HCatalog 表的抽象呈现给用户一个 HDFS 分布式文件系统(HDFS)中的关系视图,用户不需要担心数据存储在哪里及数据的存储格式:RCFile 格式、text 文件、或者 SequenceFile。
HCatalog 支持读写任何实现了 Hive SerDe(serializer-deserializer)的文件格式。默认的,HCatalog 支持 RCFile、CSV、JSON 和 SequenceFile。要使用用户自定义格式,必须提供 InputFormat 和 OutputFormat 及 SerDe。
Sqoop 使用 HCatalog 抽象不同存储格式的能力来支持 RCFile(以及未来的文件类型)。
集成 HCatalog 后新增的参数见 Sqoop 官方文档:http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_sqoop_hcatalog_integration
定制 Sqoop 改造修改 bin/sqoop 命令脚本:为 import 操作增加 Hive Table 分区数据删除逻辑,在执行导入前不需要另行清理数据,从而简化 Sqoop import 脚本的开发工作。
Sqoop 导入 ORC 实例
第一步:创建 Hive 表CREATE TABLE `dev.bims_device`(
`code` string,
`mac` string,
`wifi_mac` string,
`create_date` string,
`activate_date` string,
`state` string,
`area_id` bigint,
`city_id` bigint,
`sp_define_id` bigint)
PARTITIONED BY (
`dt` string)
stored as orc;
第二步:Sqoop importsqoop import
--hcatalog-database dev
--hcatalog-table bims_device
--hcatalog-partition-keys dt
--hcatalog-partition-values ${dt}
--connect jdbc:mysql://${host}:${port}/bims
--username "${userName}"
--password "${password}"
--table bims_device
--columns "code,mac,wifi_mac,create_date,activate_date,state,area_id,city_id,sp_define_id"
Sqoop 导出 ORC 实例
第一步:创建 MySQL 数据表CREATE TABLE `test`.`bims_device`(
`code` varchar(50),
`mac` varchar(50),
`wifi_mac` varchar(50),
`create_date` varchar(50),
`activate_date` varchar(50),
`state` varchar(50),
`area_id` bigint,
`city_id` bigint,
`sp_define_id` bigint);
第二步:Sqoop exportsqoop export
--hcatalog-database dev
--hcatalog-table bims_device
--hcatalog-partition-keys dt
--hcatalog-partition-values ${dt}
--connect jdbc:mysql://${host}:${port}/test?useCompression=true
--username ${userName}
--password ${password}
--table bims_device
注意事项- MySQL 表字段名称必须与 Hive 仓库中的表字段名称一致
- Sqoop ORC 导出时,数据类型需要转换时如果存在脏数据会导致导出失败。例如,长度为 0 的 String 如果导出为 int 时。
- 导出时需要提前清理 MySQL 中之前导出的数据,避免重复运行时造成数据重复。
sqoop导出orc数据至mysql_Sqoop 支持 ORC 文件格式相关推荐
- SQOOP 导出Hive数据到MySQL
基本知识: Sqoop导出的基本用法:https://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_syntax_4 的10. sqoop-exp ...
- sqoop将hbase数据导入mysql_Sqoop将mysql数据导入hbase的血与泪
Sqoop将mysql数据导入hbase的血与泪(整整搞了大半天) 版权声明:本文为yunshuxueyuan原创文章. 如需转载请标明出处: https://my.oschina.net/yunsh ...
- 使用sqoop导出mysql数据时错误处理【com.mysql.jdbc.RowDataDynami】
故障现象 在HDP sandbox中使用sqoop导出mysql数据报错 18/06/24 07:03:31 INFO manager.MySQLManager: Preparing to use a ...
- sqoop 导出hive数据到MySQL数据库当中
常用命令: 查看hive中表的结构: desc table_name; 查看hive中表的详细结构:desc formatted table_name; 我们想要将hive表中的数据导出到MySQL当 ...
- sqoop导出solr数据_Apache Atlas - 强大的元数据管理工具
构建和安装Apache Atlas 构建Apache Atlas 下载 Apache Atlas 1.0.0 发行版源码, apache-atlas-1.0.0-sources.tar.gz, 从 d ...
- mysql hbase 同步_HBase 简介和使用 Sqoop 同步 Mysql 数据到 HBase
HBase 数据模型 Namespace: 命名空间 类似于关系型数据库中的 database schema Table: 表 一个 Namespace 下有多个表,一个表可以包含多个行 Row: 行 ...
- python etl工具 sqoop hive_python脚本 用sqoop把mysql数据导入hive
转:https://blog.csdn.net/wulantian/article/details/53064123 用python把mysql数据库的数据导入到hive中,该过程主要是通过pytho ...
- 如何完美解决Sqoop导入导出MySQL数据错位问题
我发现小伙伴们在使用Sqoop把数据从MySQL导入到Hive的过程中经常会遇到数据错位的问题,虽然最后都是通过添加参数的方法来解决这个问题,但是我认为这并不是一个完美的解决方案,所以花了一点时间研究 ...
- Z05 - 044、Sqoop 导出 - 导出 HDFS 数据到 MySQL
初学耗时:0.5h 注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端. 一.Sqoop 导出 - 导出 HDFS 数据到 mysql 记忆词: 导出 HDFS 数据到 My ...
最新文章
- python ascii函数二进制_python模块介绍- binascii:二进制和ASCII互转以及其他进制转换...
- c语言程序与设计苏小红,c语言程序设计苏小红
- 中国人工智能源头创新的突破点在哪里?创投圈这么看
- java基础 知识点
- proc maps分析coredump
- for-each的使用
- 元宇宙这把火开始烧向打工人
- Xamarin的坑 - 绑定(一) - 拿微信iOS SDK 简单说起
- ZStack实践汇 | ZStack部署实战之VDI异构部署
- 施耐德 m340 编程手册_施耐德变频器学习之参数配置
- 笛卡尔积生成商品SKU
- TCP通信协议基本操作
- python学员管理系统
- 《易经》全文翻译(值得收藏)
- 软考备战:软考中级课程+参考资料
- BZOJ 1123 POI2008 BLO Tarjan+树形DP
- 打开桌面计算机投屏到扩展屏,电脑投屏到电视显示不完全解决办法
- 筹码分布的计算方法笔记
- 二叉树专题 -- 持续更新
- Django使用新浪邮箱发送邮件
热门文章
- 2022 年全国职业院校技能大赛(中职组) 网络安全竞赛试题A 模块评分标准
- 2022年全国职业院校技能大赛(中职组)网络安全竞赛试题(10)(总分100分)
- .Net学习——委托
- 高等几何——射影变换4
- 计算机硬件工匠精神,千锤百炼 雷神工匠精神定义笔记本行业新国货
- 中国石油大学《行政组织学》第一次在线作业
- 随便写的扫雷程序.cpp
- linebreak_vue-cli构建的项目,eslint一直报CRLF/LF的linebreak错误
- 首次打开vue运行出错,error Expected linebreaks to be ‘CRLF‘ but found ‘LF‘ linebreak-style
- 郑州oracle专业培训