hive数据导入mysql存在的问题

   背景:hive中虽然有数据类型,但是int、double、string都可以在hive中存储为string类型,hive中String类型是没有长度限制的。hive中空值有三种情况,null(NULL值)、’\0’字符(hive自定义的空字符)、”(空字符)。
  由于hive在存储上存在以上情况,当把数据导入mysql会导致一下问题:
  1、字符长度太小的异常。由于mysql定义表结构的时候会定义字段长度值,当hive中数据的int、double、String长度大于mysql表定义的长度会出现mysql字段定义的数据长度太多而出现异常。
  2、int、double空数据异常。hive中int、double的空字符是有以上三种情况,会导致空值存储到mysql时出现类型不匹配而出现异常。

   解决办法:
  1、根据业务场景设定mysql字段长度。
  2、在数据导从hive导入mysql之前把空字符替换成默认字符。

    原文作者:似水之星
    原文地址: https://www.jianshu.com/p/0a4af747d3cc
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞