zoukankan      html  css  js  c++  java
  • sqoop导出笔记

    Sqoop导出笔记

    发表: 2016-10-14 浏览: 755
     

    Sqoop 导出

    注:若需转载,请注明出处!

    Sqoop导出视频请参考:https://edu.hellobi.com/course/93/lessons  (Sqoop导出实战部分)

    1、 通用参数

    –connect,同导入 
    –username,同导入 
    –password,同导入

    2、导出控制参数

    –columnsclass_id,class_name,teacher 
    注意:没有被包含在–columns后面(例如class_month,last_mod_ts)的这些列名或字段要么具备默认值,要么就允许插入空值,数据库会拒绝接受sqoop导出的数据,导致Sqoop作业失败 
    –export-dir,导出目录,在执行导出的时候,必须指定这个参数,同时需要具备–table或–call参数两者之一,–table是指的导出数据库当中对应的表,–call是指的某个存储过程 
    –input-null-string、–input-null-non-string,这两参数是可选,如果没有指定第一个参数,对于字符串类型的列来说,“NULL”这个字符串就回被翻译成空值,如果没有使用第二个参数,无论是“NULL”字符串还是说空字符串也好,对于非字符串类型的字段来说,这两个类型的空串都会被翻译成空值

    3、全表导出

    sqoop export --connect jdbc:mysql://centos:3306/sqooptest --username root --password 123456 --table bigdata2 --export-dir /user/root/bigdata/

    4、更新导出

    –update-key,更新标识,即根据某个字段进行更新,例如class_id,可以指定多个更新标识的,用逗号分隔 
    –updatemod,有两种模式,一种是updateonly(默认模式),仅仅更新已存在的数据记录,不会插入新纪录,另一种模式是allowinsert,允许插入新纪录

    Sqoop的Export工具,对应两种语句,一种是Insert语句,如果表当中存在PK约束,且表中已包含数据,此时,导出报错。此时需要用到—update-key和updatemod

    如果指定了update-key,那么Sqoop就会修改在数据表中已存在的数据,此时的每一个更行数据记录都会变成一个Update语句,用这个语句去更新目标表中已存在的数据,这是根据–update-key所指定的这个列进行更新的。Update set teacher=”MarsJ” where class_id = 1。 
    1)若update-key所指定的字段不是PK字段,若同时updatemod使用updateonly模式时,就仅进行更新,若updatemod使用allowinsert模式,那么实质上就是一个insert操作 
    2)若update-key所指定的字段是PK字段,同时updatemod是allowinsert时,实质上是一个insert & update的操作,若updatemod是updateonly时,实质仅为update操作

    示例

    # updateonly example
    sqoop export --connect jdbc:mysql://centos:3306/sqooptest --username root --password 123456 --table bigdata2 --export-dir /user/root/bigdata/ --update-key class_id --update-mode updateonly

    # allowinsert example
    sqoop export --connect jdbc:mysql://centos:3306/sqooptest --username root --password 123456 --table bigdata2 --export-dir /user/root/bigdata/ --update-key class_id --update-mode allowinsert
  • 相关阅读:
    在Eclipse中使用JUnit4进行单元测试(上)
    SVN和Subclipse安装和使用指南汇总
    在windows下搭建SVN服务器
    学会SVN的应用源代码托管
    SVN中检出(check out) 和 导出(export) 的区别
    .NET平台三层应用程序框架搭建(一)
    Winform dataGridview 为每一个单元格制定一个tooptip
    SQL row_number() over() 来自动产生行号
    Winform datagridview 设置单元格为只读属性
    SQL 把字符创分割成两个字符串
  • 原文地址:https://www.cnblogs.com/Bighua123/p/7721959.html
Copyright © 2011-2022 走看看