分区表插入数据hive
时间: 2023-11-10 21:07:24 浏览: 89
分区表是指根据某个字段的值将表分成多个分区,每个分区存储该字段值相同的数据。在Hive中,我们可以使用INSERT INTO语句向分区表中插入数据。具体步骤如下:
1. 创建分区表,指定分区字段。
2. 使用INSERT INTO语句向分区表中插入数据,同时指定分区字段的值。
例如,我们可以按照日期分区,创建一个名为stg_hive_es_test的分区表,然后向该表的2022-03-31分区插入数据,具体代码如下:
```
-- 创建分区表
CREATE EXTERNAL TABLE IF NOT EXISTS stg_hive_es_test (
id BIGINT COMMENT '主键id',
road_id STRING COMMENT '路线id',
road_name STRING COMMENT '路线name',
road_dir_no BIGINT COMMENT '行驶方向 1:北京方向,:雄安方向',
flow double COMMENT '车流量保留2位小数',
time string comment '时间'
) COMMENT '路况类指标-平均速度-离线-按天更新'
PARTITIONED BY (dt STRING COMMENT 'yyyy-MM-dd')
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
'field.delim' = '\u0001',
'serialization.format' = '\u0001'
)
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat';
-- 向分区表中插入数据
INSERT INTO TABLE stg_hive_es_test PARTITION(dt='2022-03-31')
VALUES
(1,'10001','京雄test',2,65.21,'2022-03-31 00:09:08'),
(2,'10002','京雄test',2,65.21,'2022-03-31 00:09:09');
```
注意,插入数据时需要指定分区字段的值,否则数据将无法正确插入到对应的分区中。
阅读全文