温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

hive数据库如何导入数据

发布时间:2026-10-17 09:22:26 来源:亿速云 阅读:101 作者:小樊 栏目:数据库

在 Hive 中“导入数据”通常有几类常见场景,下面按使用频率从高到低给你系统说明,并附示例。


一、从本地 / HDFS 文件导入(最常用)

1️⃣ 从 HDFS 加载数据(推荐)

LOAD DATA INPATH '/user/hadoop/data/xxx.txt'
INTO TABLE db_name.table_name;
  • 数据会移动到 Hive 表目录
  • 原 HDFS 路径文件会被删除

2️⃣ 从本地文件系统导入

LOAD DATA LOCAL INPATH '/local/path/xxx.txt'
INTO TABLE db_name.table_name;
  • LOCAL 表示从 Hive 客户端所在机器
  • 数据会先上传到 HDFS

3️⃣ 覆盖已有数据

LOAD DATA INPATH '/user/hadoop/data/xxx.txt'
OVERWRITE INTO TABLE table_name;

二、从已有 Hive 表导入(INSERT)

1️⃣ 表对表导入

INSERT INTO TABLE table_b
SELECT * FROM table_a;

2️⃣ 覆盖写入

INSERT OVERWRITE TABLE table_b
SELECT * FROM table_a;

3️⃣ 分区表导入

INSERT INTO TABLE sales PARTITION (dt='2024-01-01')
SELECT col1, col2 FROM sales_tmp;

三、创建表时直接指定数据位置

1️⃣ 外部表(常用)

CREATE EXTERNAL TABLE table_name (
  id INT,
  name STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LOCATION '/user/hadoop/external_data/';

2️⃣ 内部表(数据随表删除)

CREATE TABLE table_name (
  id INT,
  name STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t';

四、从关系型数据库导入(Sqoop / DataX)

Sqoop 示例

sqoop import \
--connect jdbc:mysql://ip:3306/db \
--username root \
--password 123456 \
--table mysql_table \
--hive-import \
--hive-table hive_db.hive_table

五、常见数据格式与分隔符

ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
COLLECTION ITEMS TERMINATED BY ';'
MAP KEYS TERMINATED BY ':'
LINES TERMINATED BY '\n';

六、常见坑点提醒 ⚠️

  1. 字段类型不一致会导致导入失败或 NULL
  2. 分隔符不匹配是最常见问题
  3. LOAD DATA 不做数据校验,只做文件移动
  4. 外部表删除不会删 HDFS 数据

如果你能告诉我:

  • 数据来源(本地 / HDFS / MySQL)
  • 是否是分区表
  • 数据格式(CSV / JSON / Parquet)

我可以给你更精确的导入方案。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手