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 文件格式相关推荐

  1. SQOOP 导出Hive数据到MySQL

    基本知识: Sqoop导出的基本用法:https://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_syntax_4  的10. sqoop-exp ...

  2. sqoop将hbase数据导入mysql_Sqoop将mysql数据导入hbase的血与泪

    Sqoop将mysql数据导入hbase的血与泪(整整搞了大半天) 版权声明:本文为yunshuxueyuan原创文章. 如需转载请标明出处: https://my.oschina.net/yunsh ...

  3. 使用sqoop导出mysql数据时错误处理【com.mysql.jdbc.RowDataDynami】

    故障现象 在HDP sandbox中使用sqoop导出mysql数据报错 18/06/24 07:03:31 INFO manager.MySQLManager: Preparing to use a ...

  4. sqoop 导出hive数据到MySQL数据库当中

    常用命令: 查看hive中表的结构: desc table_name; 查看hive中表的详细结构:desc formatted table_name; 我们想要将hive表中的数据导出到MySQL当 ...

  5. sqoop导出solr数据_Apache Atlas - 强大的元数据管理工具

    构建和安装Apache Atlas 构建Apache Atlas 下载 Apache Atlas 1.0.0 发行版源码, apache-atlas-1.0.0-sources.tar.gz, 从 d ...

  6. mysql hbase 同步_HBase 简介和使用 Sqoop 同步 Mysql 数据到 HBase

    HBase 数据模型 Namespace: 命名空间 类似于关系型数据库中的 database schema Table: 表 一个 Namespace 下有多个表,一个表可以包含多个行 Row: 行 ...

  7. python etl工具 sqoop hive_python脚本 用sqoop把mysql数据导入hive

    转:https://blog.csdn.net/wulantian/article/details/53064123 用python把mysql数据库的数据导入到hive中,该过程主要是通过pytho ...

  8. 如何完美解决Sqoop导入导出MySQL数据错位问题

    我发现小伙伴们在使用Sqoop把数据从MySQL导入到Hive的过程中经常会遇到数据错位的问题,虽然最后都是通过添加参数的方法来解决这个问题,但是我认为这并不是一个完美的解决方案,所以花了一点时间研究 ...

  9. Z05 - 044、Sqoop 导出 - 导出 HDFS 数据到 MySQL

    初学耗时:0.5h 注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端. 一.Sqoop 导出 - 导出 HDFS 数据到 mysql 记忆词:   导出 HDFS 数据到 My ...

最新文章

  1. 如何用 React Native 创建一个iOS APP?(二)
  2. linux的ulimit各种限制之深入分析
  3. 《分布式操作系统》知识点(8~14)二
  4. html编辑器kindeditor我的使用方法 (转载)
  5. [转]Linux下的Makefile
  6. android ipc简单理解,Android IPC 机制【1】--简介
  7. c语言转义字符_C语言啊中的转义符有什么含义?
  8. HTML5 获得canvas油漆环境
  9. a人工智能b大数据c云计算_你清楚5G物联网、大数据、云计算、人工智能之间的关联吗?...
  10. [转]鼠标移到图像上显示激活的例子
  11. java中的subString与SQL中的subString(作为常识应该记住的)
  12. MLFlow︱机器学习工作流框架:介绍(一)
  13. iOS 仿微信朋友圈实现
  14. ffmpeg mp4转mov
  15. oracle查询某天的数据
  16. Hybird A*算法
  17. 地球币earthcoin表情包征图大赛正式筹备准备中
  18. 【linux】循序渐进学运维-基础篇-文件的软硬链接
  19. 1 Java语言概述
  20. mPOS安全提升之路

热门文章

  1. [work] Jacobian矩阵和Hessian矩阵
  2. 视觉追踪热图帮Instagram被吐槽新l
  3. HTML_插入图片详解
  4. 怎么实现接口解耦_将接口与实现解耦-使用分离的接口
  5. hacker_从在Hacker News上展示我的作品中学到了什么
  6. vidaa4基于android,Vidaa 4系统:流畅且富有人性化_海信 LED55MU8600UC_液晶电视评测-中关村在线...
  7. 项目管理:项目控制的三个基本原则
  8. 2017华为实习生招聘面试经历(IT应用软件 c++)
  9. 计算机xp重装无声音怎么办,我的电脑重装WindowsXP后没有声音怎么办??
  10. 找出3的最大倍数的整数集合