Sqoop 同步数据到mysql

Sqoop  从hdfs 同步数据到mysql 是我们常常遇到的事情

同步分为 分区表同步和非分区表同步

需要注意以下几点

1. hive 中的表 必须是textfile ,不能是有parquet 等压缩方式的

2.hive 表如果是分区表,需要每次只能同步一个分区的数据到 mysql,

如果hive 有多个分区,只能写多个脚本,或者多个循环调度,或者将多分区表落地成一个非分区的临时表,进行同步

hive也可以同步分区表过去,只不过hive一次只能同步一个分区,hive 是文件形式的啊  分区也只是目录文件,你一次只能指定一个目录  不能一下子指定多个目录

3.对于mysql来说  只是把数据(mysql不会在意这数据怎么来的)插到表里   表是分区就按分区字段插  不是分区就直接插

4.hive 推送到mysql 的时候,并不需要字段 名字对应一致,只要字段个数一致,但是数据类型必须一致,否则会出现,且分区的那个字段 在hive 中是伪列,推送的时候 在mysql 中不能有。 \N 的错误

5、sqoop会将 hive 表中空值转换为\N  ,如果MySQL这个字段是 int  double  肯定存储不了\N,会报空值错误。

6、mysql 中 int  double 等要注意hive 的字符长度。

下面写法可以

create table dm.tmp_ae_mid_payback_detail_new as 
select * from dm.ae_mid_payback_detail_new

sqoop export -D mapred.child.java.opts="-Djava.security.egd=file:/dev/../dev/urandom" \
  --connect "jdbc:/app?useUnicode=true&characterEncoding=utf8" \
  --username "dr" \
  --password "yyyy" \
  --input-null-string '\\N'  --input-null-non-string '\\N' \
  --table amque_mid_payback_detail_new \
  --export-dir /user/hive/warehouse/dm/dm_ae_mid_payback_detail_new \
  --input-fields-terminated-by '\001' \

这个也可以,只不过只能推送一个分区,和伪列不可以推送

sqoop export -D mapred.child.java.opts="-Djava.security.egd=file:/dev/../dev/urandom" \
  --connect "jdbc:/app?useUnicode=true&characterEncoding=utf8" \
  --username "dr" \
  --password "yyyy" \
  --input-null-string '\\N'  --input-null-non-string '\\N' \
  --table amque_mid_payback_detail_new \
  --export-dir /user/hive/warehouse/dm/amque_mid_payback_detail_new/partition_month='2018-11' \
  --input-fields-terminated-by '\001' \

Sqoop 同步数据到mysql, Can't parse input data: '\N'相关推荐

  1. sqoop mysql 乱码_请问一下,用sqoop导数据到mysql如果遇到字段编码是utf8mb4的情况怎么处理?...

    我要到的数据其中一个字段里应该是有表情符号,之前数据库的处理是把,字段编码修改成utf8mb4.但现在用sqoop导数据到mysql(对应字段已修改为utf8mb4),却报了如下错误. 谢谢. 15/ ...

  2. sqoop导出hive分区表字段到mysql报错:Can‘t parse input data: ‘0‘

    目的: 为了保留ads(应用层)的历史数据,所以把ads层的表建成了带分区的表. 带来的问题: sqoop导出不带分区字段的列,可以正常导出: sqoop导出带分区字段的列,就报错如下: Can't ...

  3. Oracle同步数据到MySQL

    Oracle同步数据到MySQL 1.首先在TreeSoft数据库中配置两个数据源信息 2.配置数据同步任务,并执行任务 3.同步结果数据查看确认 4.目前TreeSoft支持以下数据同步方案 1.M ...

  4. sqoop同步hdfs与mysql端口_使用Sqoop将数据在HDFS与MySQL互导

    1.去官网下载sqoop,直接百度即可 2.解压后进入conf目录 guo@drguo1:/opt/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/conf$ cp sqoop ...

  5. sqoop遇到mysql字段为保留字_关于在sqoop 导出数据到mysql数据库的过程对于空字符的处理。...

    今天在做sqoop的导入和导出的操作.在导出数据到mysql数据库的时候一直有问题,在导入空字段的时候就出现下面这个错误. WARN hdfs.DFSClient: Caught exception ...

  6. ORACLE(Linux版本)实时同步数据到MYSQL(Windows版本)解决方案:OGG

    OGG:Oracle GoldenGate 目录 1.源库(100.100.100.210)与目标库(100.100.100.211)环境 源库环境:Oracle 11.2.0.1.0 + Red H ...

  7. ORACLE(Linux版本)实时同步数据到MYSQL(Linux版本)解决方案:OGG

    OGG:Oracle GoldenGate 目录 1.源库与目标库环境(这里是部署到同一台服务器上) 源库环境:Oracle 11.2.0.1.0 + Red Hat Enterprise Linux ...

  8. Oracle通过kafka同步数据到MySQL

    场景 Oracle同步数据最佳的解决方案是自家的ogg,但是考虑到成本,需要找到其他的解决方案.如果是MySQL通过kafka同步,问题简单的多,因为阿里巴巴的开源数据同步方案--canel是最佳的解 ...

  9. 跨服务同步数据(MYSQL),@Scheduled定时任务,HttpClient分批发送数据,JSONobject,策略模式+简单工厂,异步@Async+CompletableFuture使用

    目录 1.实现远程post请求 下面首先创建HttpClient用来实现远程post请求 2.发送数据 接下来就是将获取的数据(SyncDataParam )通过http请求方式发送给另一个服务(ap ...

最新文章

  1. bzoj4006: [JLOI2015]管道连接
  2. python列表和元组的应用_python学习笔记之列表(list)与元组(tuple)详解
  3. 使用SwingWorker的Java Swing中的多线程
  4. linux exfat分区格式化,技术|如何在 Linux 上将 USB 盘格式化为 exFAT
  5. 中国水平板式过滤器行业市场供需与战略研究报告
  6. 谈谈这些年来我为什么一直在坚持
  7. 下载文件扩展名php,[宜配屋]听图阁
  8. 77款免费可商用字体!!!
  9. vue:ali 阿里矢量图库 ico
  10. 堆叠柱状图显示具体数据和百分比
  11. 业务流程图(TFD)实例
  12. OV426+OVM6946基于FPGA调试成像
  13. 四川江安戏剧“青年训练营”:播撒颗颗戏剧种子
  14. three.js快速入门和实战
  15. 随机事件及其概率运算
  16. Python程序编译为动态库pyd或so (适用于Windows和Linux)
  17. 如何把thrift rpc转换为http
  18. 九秀直播助手下载|九秀直播助手下载
  19. c++ tm结构体和time_t时间戳的转换
  20. 软考考c语言还是java,计算机程序设计工程师技术水平(java)证书就是计算机技术与软件专业技术资格考试的程序员证书么?...

热门文章

  1. Mybatis 学习系列文章
  2. 不得不爱,Visual Studio Code十大超酷特性
  3. 读取接口XML和批量导入数据SqlBulkCopy
  4. HADOOP2单机版
  5. 戴尔服务:为企业转型导航
  6. Oracle表分区和索引分区汇总
  7. shell脚本——系统变量 与 变量(定义 使用 只读 删除)
  8. 为什么kafka的消费者要有分组的概念
  9. python 网络编程--socket模块/struct模块
  10. SELECT中常用的子查询操作