注意
表的字段不能有text类型,还有就是有时候idea不支持这样的语法,去命令行执行就可以了。
创建Hive表
CREATE EXTERNAL TABLE dbname.`ods_xx`(
`id` bigint COMMENT 'id',
`xx` string COMMENT 'xx')
PARTITIONED BY (
`dt` string COMMENT '分区字段')
row format delimited
fields terminated by ','
STORED AS parquet
LOCATION
'hdfs://bigdata/user/hive/warehouse/xx.db/ods_xx'
tblproperties ("parquet.compression"="snappy");
这边相关的字段就和数据库对应的使用hive数据类型就行了。
导入DB数据到Hive
指定分区
INSERT OVERWRITE hive_catalog.dbname.ods_xx(dt='1997-01-01')
SELECT `id`
, `xx`
from db_catalog.dbname.tablename;
动态分区
INSERT OVERWRITE hive_catalog.dbname.ods_xx
SELECT `id`
, `xx`
, '2024-05-21' dt
from db_catalog.dbname.tablename;
动态分区的时候,就是再原来的数据库所有字段然后加一个新的字段,后面会自动的根据hive的分区字段匹配。
每日一分区。
相关配置
set GLOBAL enable_write_hive_external_table=true;
// 刷新分区元数据
REFRESH EXTERNAL TABLE <table_name> [PARTITION ('partition_name', ...)]
相关链接
https://docs.starrocks.io/zh/docs/data_source/catalog/hive_catalog/

评论区