美文网首页
sqoop export 数据覆盖更新

sqoop export 数据覆盖更新

作者: 木木郡主 | 来源:发表于2021-08-28 17:42 被阅读0次

一、Sqoop export简介
Sqoop export工具被用来将文件集合从HDFS中导入到关系型数据库中。目标表必须事先已经在数据库中创建好。输入文件根据用户指定的分隔符被读取解析成记录集。Sqoop默认的是将这些操作转换成“INSERT模式”,向目标数据库中注入数据记录。在“更新模式”中,Sqoop将会产生更新语句替换数据库中已经存在的记录。在“调用模式”中,Sqoop会为每个记录产生一个存储过程调用。
1、“INSERT模式”:Sqoop默认将每条记录以转换成INSERT语句,添加到数据库表中,如果你的表存在一些约束如关键字唯一等,使用插入模式要当心,避免违反这些约束。如果一条记录插入失败那么,该导入job将会失败。这种模式一般用于将数据导入到一个新的、空的表。Sqoop默认情况下使用INSERT 模式
2、“UPDATE模式”:如果指定--update-key参数,Sqoop将会修改一个数据库中存在的数据集,每一条记录都会当做UPDATE语句来修改存在的记录。记录的修改语句根据--update-key指定的列决定。如果一个更新语句在数据库中没有对应的记录,则不会报错,导出操作会继续进行。事实上,这意味着不会在数据库中导入新的记录,只是更新原始数据。

二、参数介绍
--update-key 后面也可以接多个关键字列名,可以使用逗号隔开,Sqoop将会匹配多个关键字后再执行更新操作。
--export-dir 参数配合--table或者--call参数使用,指定了HDFS上需要将数据导入到MySQL中的文件集目录。
--update-mode updateonly和allowinsert。 默认模式为updateonly,如果指定--update-mode模式为allowinsert,可以将目标数据库中原来不存在的数据也导入到数据库表中。即将存在的数据更新,不存在数据插入。

三、组合测试及说明
1、当指定update-key,且关系型数据库表存在主键时:
A、allowinsert模式时,为更新目标数据库表存的内容,并且原来不存在的数据也导入到数据库表;
B、updateonly模式时,为更新目标数据库表存的内容,并且原来不存在的数据也不导入到数据库表;

2、当指定update-key,且关系型数据库表不存在主键时:
A、allowinsert模式时,为全部数据追加导入到数据库表;
B、updateonly模式时,为更新目标数据库表存的内容,并且原来不存在的数据也不导入到数据库表;

3、当不指定update-key,且关系型数据库表存在主键时:
A、allowinsert模式时,报主键冲突,数据无变化;
B、updateonly模式时,报主键冲突,数据无变化;

4、当不指定update-key,且关系型数据库表不存在主键时:
A、allowinsert模式时,为全部数据追加导入到数据库表;
B、updateonly模式时,为全部数据追加导入到数据库表;

欢迎大家针对以上案例测试,如存在差错请指教。

个人建议:使用sqoop向关系型数据库中导入数据时,建议在关系型数据库表中创建主键。

相关文章

  • sqoop export 数据覆盖更新

    一、Sqoop export简介Sqoop export工具被用来将文件集合从HDFS中导入到关系型数据库中。目标...

  • Sqoop

    Sqoop中分为import和export,这个是相对于Hadoop来说的,从RDBMS把数据导入到HDFS,Hi...

  • Sqoop抽取数据后核对数据准确性

    Sqoop从MySQL抽取数据,因为数据有更新(新增和更新在Hive中各对应一条记录),所有Hive中的数据会比M...

  • IMPALA 解析JSON 结论: 无法用于where条件

    最近MYSQL 5.7更新支持JSON语法 ,于是使用SQOOP同步了数据到大数据平台,准备使用IMPALA来做分...

  • 数据迁移的工具Sqoop实践

    数据迁移的工具Sqoop实践 sqoop : 数据迁入迁出的工具 RDBMS -- import -> Ha...

  • (十)大数据学习之sqoop

    Sqoop 1.架构: (1)flume数据采集 采集日志数据(2)sqoop数据迁移 hdfs->mysql(3...

  • sqoop1和sqoop2对比

    疑问sqoop作为数据迁移工具合适吗?sqoop1没有提供api接口,sqoop2似乎不能导入数据到hbase S...

  • Sqoop 工作原理

    Sqoop架构 Sqoop import原理 从传统数据库获取元数据信息(schema、table、field、f...

  • sqoop创建hive表结构以及同步数据

    1.sqoop创建hive表结构以及同步数据 命令 创建hive 表结构 通过sqoop 导数据

  • Sqoop

    个人总结sqoop的作用 1 Sqoop概述 Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工...

网友评论

      本文标题:sqoop export 数据覆盖更新

      本文链接:https://www.haomeiwen.com/subject/shabiltx.html