网站首页 > 技术文章 正文
从几百个实际项目中提炼数据治理实战(十一)。
sqoop数据导入的流程。左侧的假如接入的数据源不同类型的数据库很多都可能有db2、mysql、oracle等等。
·是通过sqoopimport命令导入到中间的hadoop里边的hive,HDF里边去的,这是导入。
·导出也是通过hive来去sqoop命令export命令导出到不同的数据源。所以它的导入导出是有一个中间的hadoop作为介质的。
·如果是DataX就跟这个完全不一样,它就完全是一个网状结构,是这种的,中间没有hive,它是完全是一个网状的结构。db2到oracle或者是mysql到db2的都是一个网状结构,它没有中间的hadoop中间的存储介质,这是DataX跟这个不一样的地方。
在sqoop里边数据导入的流程是怎么样的?
·第一步,就是通过sqoop的命令来去获取数据要接入的数据源。比如要从一个mysql接数据到hadoop里边去,首先会从mysql要接入的表里边去把数据源信息拿到,比如有表、字段、数据类型。
·拿到之后就会进行第二步的操作,会把数据类型做一个转换,转换成java的类型。比如之前在mysq里边存的是一个string类型,可能要转化成一个varchar2的类型来去存放。
·对应的再去hive里边儿去建表,根据它的字段表的信息还有数据类型转化后数据类型,再去hadoop里边儿去hive上去建表。
·建完表之后根据hive这种的机制,会有在hdfs上建立对应的文件目录用来存储之后要接入的这部分数据文件。但这个前提就是在hive上没有hive,要接入这张表的同名的表,没有这张表的时候它会自动去创建,如果有这张表,第二步就会省略掉。
·把这个表建完之后,第三步就会读取要接入的数据,比如要从mysql要接数据,就会把mysql里边的数据读取出来,以文件的形式先存在一个临时的目录下。临时的目录可以自己去建一个临时的目录,也可以去用系统默认的。
一般是推荐自己去建一个临时的目录,根据自己的表名建一个自己临时目录,然后把数据接入完之后再把临时的目录删掉。如果是用系统默认,不同的表接入大家都会抢占临时的目录,这样会造成抢占资源的情况。这是把数据先从mysql里边导到临时目录下。
·第四步就是把临时目录下的文件统一的通过load的命令load到hive对应的hdfs的路径下面去。这个时候就完成了整个的数据导入的过程。
所以再回顾一下sqoop的四步。
·第一步是先获取要接入的表的元数据的信息,获取这些信息之后做这种数据类型的转换,hive上建立对应的表,没有会自动去创建,如果有第2步省略。
·第3步就会读取要接入的数据的数据,以文本的形式存在一个临时的目录下面去。
·第4步就会把刚才已经接完的数据,存好的数据文件统一的load的到对应的hdfs上面去。
这是sqoop数据导入的整个的流程。
记得点赞关注我。
猜你喜欢
- 2024-11-13 Docker (一) 安装 Oracle18c docker19.03安装
你 发表评论:
欢迎- 614℃几个Oracle空值处理函数 oracle处理null值的函数
- 605℃Oracle分析函数之Lag和Lead()使用
- 594℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 591℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 585℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 579℃【数据统计分析】详解Oracle分组函数之CUBE
- 568℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 559℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- PageHelper - 最方便的 MyBatis 分页插件
- 面试二:pagehelper是怎么实现分页的,
- MyBatis如何实现分页查询?(mybatis-plus分页查询)
- SpringBoot 各种分页查询方式详解(全网最全)
- 如何在Linux上运行exe文件,怎么用linux运行windows软件
- 快速了解hive(快速了解美国50个州)
- Python 中的 pyodbc 库(pydbclib)
- Linux搭建Weblogic集群(linux weblogic部署项目步骤)
- 「DM专栏」DMDSC共享集群之部署(一)——共享存储配置
- 故障分析 | MySQL 派生表优化(mysql pipe)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)