温馨提示×

温馨提示×

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

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

hive数据库如何创建表

发布时间:2026-11-06 20:41:06 来源:亿速云 阅读:94 作者:小樊 栏目:数据库

在 Hive 中创建表通常使用 HiveQL(类 SQL 语法)。下面从基础到常见场景给你说明。


一、最基础的建表语句

CREATE TABLE IF NOT EXISTS student (
    id INT,
    name STRING,
    age INT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

说明:

  • IF NOT EXISTS:表不存在才创建
  • ROW FORMAT DELIMITED:指定行格式
  • FIELDS TERMINATED BY ',':字段分隔符
  • STORED AS TEXTFILE:存储格式(默认)

二、指定数据库建表

CREATE TABLE db_name.student (
    id INT,
    name STRING
);

或先切换数据库:

USE db_name;
CREATE TABLE student (...);

三、内部表 vs 外部表

1️⃣ 内部表(Managed Table)

删除表时,数据和元数据都会删除

CREATE TABLE inner_table (
    id INT,
    name STRING
);

2️⃣ 外部表(External Table)

删除表时,只删元数据,数据保留

CREATE EXTERNAL TABLE outer_table (
    id INT,
    name STRING
)
LOCATION '/user/hive/warehouse/outer_table';

✅ 生产环境常用外部表


四、指定存储格式(常用)

TextFile(默认)

STORED AS TEXTFILE

ORC(推荐,压缩好)

STORED AS ORC

Parquet(分析友好)

STORED AS PARQUET

示例:

CREATE TABLE user_orc (
    id INT,
    name STRING
)
STORED AS ORC;

五、分区表(非常重要)

CREATE TABLE order_table (
    order_id INT,
    amount DOUBLE
)
PARTITIONED BY (dt STRING)
STORED AS ORC;

插入分区数据:

INSERT INTO order_table PARTITION (dt='2025-01-01')
VALUES (1, 100.0);

六、分桶表(可选)

CREATE TABLE user_bucket (
    id INT,
    name STRING
)
CLUSTERED BY (id) INTO 4 BUCKETS
STORED AS ORC;

七、从已有表结构建表

CREATE TABLE new_table LIKE old_table;

八、从查询结果建表(CTAS)

CREATE TABLE result_table
AS
SELECT id, name FROM student WHERE age > 18;

九、查看表结构

DESCRIBE student;
DESCRIBE FORMATTED student;

如果你愿意,可以告诉我:

  • Hive 版本
  • 数据来源(日志 / HDFS / Kafka)
  • 是否需要分区、压缩、外部表

我可以帮你写 可直接用的建表语句 ✅

向AI问一下细节

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

AI
助
手