关系型数据库导入导出绝招出炉
来源:互联网 发布:淘宝客服搞笑对话段子 编辑:程序博客网 时间:2024/06/05 07:08
Sqoop作为数据传输的工具,对于Hadoop与传统数据库之间数据的传输起着桥梁作用,那么到底如何导入导出数据呢?
第一:使用MapReduce作业来执行导入:
(1)Sqoop首先检查将要导入的表
1、确定主键(如果有的话),调用mapreduce,根据主键分割map
2、没有主键,运行边界查询确定导入的记录数(找到一个min和一个max,确定边界进行划分)
3、通过任务数来划分边界查询的结果,使得他们有相同的负载
(2)Sqoop为每个将导入的表生成Java源文件
1、在导入过程中编译和使用文件
2、导入后依然保留,可以被安全删除
第二:使用sqoop导入整个数据库:
(1)import-all-tables工具导入整个数据库
1、存储为逗号间隔的文件
2、默认导入到HDFS的home目录
3、数据将放在每个表的子目录中
(2)使用--warehouse-dir选项指定不同的基础目录
第三:使用Sqoop导入单个表:
(1)import工具导入单个表
1、示例:导入accounts表
以逗号分隔的方式存储数据到HDFS
2、指定tab分隔字段
第四:增量导入
(1) 如果上次记录导入后发生了变更怎么办?
1、可以重新导入所有记录,但是效率低
(2) Sqoop的lastmodified增量模式导入新的和修改的记录
1、基于指定的timestamp列
2、确保当记录更新或者被添加时timestamp也更新
(3)append增量模式只导入新纪录
1、基于指定列的最后一条记录
第五:使用Sqoop从Hadoop导出数据到RDBMS
(1)Sqoop的import工具把数据从RDBMS拉入到HDFS
(2)有时候也需要把HDFS的数据推回到RDBMS,当需要对大数据集进行批处理,并导出结果到RDBMS供其它系统访问
(3)Sqoop使用export工具,RDBMS表在导出前必须已存在
掌握了以上方式,对于关系型数据库的导入和导出基本有一个明确的认知和了解,其实我们在日常的学习和实践过程中要多去看看别人的分享,毕竟做技术每个人的经历与经验不一样,有时候说不准会有意向不到的收获。我自己平时喜欢关注“大数据cn”、“大数据时代学习中心”这些微信服务号,对于我个人而言,起到了很大的促进作用,也期待每一个学习大数据的人都能够有所收获!
- 关系型数据库导入导出绝招出炉
- 使用Sqoop导入导出关系型数据库数据
- 5.非关系型数据库(Nosql)之mongodb:创建集合,备份与导入导出, 数据还原,导入导出
- 5.非关系型数据库(Nosql)之mongodb:创建集合,备份与导入导出, 数据还原,导入导出
- Oracle数据库导入导出与 客户端、数据库版本的关系
- 使用sqoop实现关系型数据库、HDFS、Hive之间数据的导入导出
- 炎炎夏日最新版Excel导入导出工具类火热出炉
- 导出导入oracle数据库
- 数据库导入导出
- 数据库的导入导出
- 数据库导入导出收藏
- Mysql数据库导入导出
- 数据库的导出导入
- 数据库的导出导入
- 数据库导入导出Excel
- Oracle数据库导入导出
- ORACLE 数据库导入导出
- ORACLE 数据库导入导出
- dos 通过ip获取局域网电脑mac
- 深入剖析Java中的装箱和拆箱
- 【50.00%】【codeforces 747C】Servers
- java.sql.SQLRecoverableException: 关闭的连接 解决办法
- [Django]Django Python3出现Error loading MySQLdb module:No module named ‘MySQLdb’问题
- 关系型数据库导入导出绝招出炉
- Hhadoop-2.7.0中HDFS写文件源码分析(二):客户端实现(1)
- [Wondgirl] iOS-快速轮播入口
- 爬虫----BeautifulSoup 模块
- 最大二叉搜索子树问题
- java日常笔记2016-12-19
- 【Struts2+Hibernate4】开发学生信息管理功能(三)
- 1102. Invert a Binary Tree (25)
- Qt翻译原生widgets(QTextEdit右键菜单等)