�"og:type" content="webpage">�" /> �"> hive数据导入mysql存在的问题_随笔_内存溢出

阅读22

hive数据导入mysql存在的问题,第1张

   背景: 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之前把空字符替换成默认字符。

如何用sqoop将hive分区表信息导入到mysql命令

直接导入hive表

sqoop

import

--connect

jdbc:postgresql://ip/db_name--username

user_name

--table

table_name

--hive-import

-m

5

内部执行实际分三部,1.将数据导入hdfs(可在hdfs上找到相应目录),2.创建hive表名相同的表,3,将hdfs上数据传入hive表中

sqoop根据postgresql表创建hive表

sqoop

create-hive-table

--connect

jdbc:postgresql://ip/db_name

--username

user_name

--table

table_name

--hive-table

hive_table_name(

--hive-partition-key

partition_name若需要分区则加入分区名称)

导入hive已经创建好的表中

sqoop

import

--connect

jdbc:postgresql://ip/db_name

--username

user_name

--table

table_name

--hive-import

-m

5

--hive-table

hive_table_name

(--hive-partition-key

partition_name

--hive-partition-value

partititon_value)

使用query导入hive表

sqoop

import

--connect

jdbc:postgresql://ip/db_name

--username

user_name

--query

"select

,*

from

retail_tb_order

where

\$CONDITIONS"

--hive-import

-m

5

--hive-table

hive_table_name

(--hive-partition-key

partition_name

--hive-partition-value

partititon_value)

注意:$CONDITIONS条件必须有,query子句若用双引号,则$CONDITIONS需要使用\转义,若使用单引号,则不需要转义。

步骤为

hive>add jar /usr/lib/hive/lib/hive-contrib-0.9.0-cdh4.1.2.jar

Added /usr/lib/hive/lib/hive-contrib-0.9.0-cdh4.1.2.jar to class path

Added resource: /usr/lib/hive/lib/hive-contrib-0.9.0-cdh4.1.2.jar

hive>add jar /usr/share/java/mysql-connector-java-5.1.17.jar

Added /usr/share/java/mysql-connector-java-5.1.17.jar to class path


Added resource: /usr/share/java/mysql-connector-java-5.1.17.jar

欢迎分享,转载请注明来源:

内存溢出

原文地址:

https://54852.com/zaji/8523143.html
异常
(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
lawsonlawson一级用户组
MYSQL5.7破解root密码
上一篇
2023-04-17
什么是MySQL集群?带你全面掌握MySQL集群原理
2023-04-17

发表评论
请登录后评论...
登录
提交

    评论列表(0条)
保存
{label}{label}