CREATE EXTERNAL TABLE user (
userId BIGINT,
type INT,
level TINYINT,
date String
)
PARTITIONED BY (date String)
hive使用schema on read—这意味着如果您稍后手动将文件添加到hdfs,它将在select语句执行期间自动考虑这些文件。根据日期把它们放在适当的地方 但是,有一点你应该考虑到: 因为在声明外部表时,默认表路径会更改为metastore中包含的配置单元元数据中的指定位置,但是关于分区,什么都不会更改,所以必须手动添加这些元数据。
ALTER TABLE user ADD PARTITION(date='2010-02-22');
1条答案
按热度按时间8iwquhpp1#
您可以根据日期创建带有分区的数据库。
hive使用schema on read—这意味着如果您稍后手动将文件添加到hdfs,它将在select语句执行期间自动考虑这些文件。根据日期把它们放在适当的地方
但是,有一点你应该考虑到:
因为在声明外部表时,默认表路径会更改为metastore中包含的配置单元元数据中的指定位置,但是关于分区,什么都不会更改,所以必须手动添加这些元数据。
阅读更多信息:http://blog.zhengdong.me/2012/02/22/hive-external-table-with-partitions/
这篇文章的作者还提供了自动添加分区的脚本。