Hive 配置单元元是否可以基于列值虚拟存储分区数据,而无需实际更改目录结构? 作为一个例子,我考虑了所有重大体育赛事的数据。下面给出的模式

Hive 配置单元元是否可以基于列值虚拟存储分区数据,而无需实际更改目录结构? 作为一个例子,我考虑了所有重大体育赛事的数据。下面给出的模式,hive,bigdata,data-partitioning,hive-metastore,hive-partitions,Hive,Bigdata,Data Partitioning,Hive Metastore,Hive Partitions,事件名称、日期、月份、年份、城市 此数据在HDFS中以年、日、月的形式进行物理结构化 现在我想基于其他一些列值创建虚拟分区,例如City。数据将仅以年、日、月结构物理存储在HDFS中,但我的元数据跟踪虚拟分区 hive metastore能帮我做吗?我想不会。实际上,配置单元中的分区意味着为不同的分区创建不同的目录。而metastore只包含表的元数据。它无法控制实际数据。从技术上讲,当我们根据配置单元表中的分区列进行查询时,查询将仅在该分区目录上执行。因此,在不改变hdfs结构的情况下进行虚拟

事件名称、日期、月份、年份、城市

此数据在HDFS中以年、日、月的形式进行物理结构化

现在我想基于其他一些列值创建虚拟分区,例如City。数据将仅以年、日、月结构物理存储在HDFS中,但我的元数据跟踪虚拟分区


hive metastore能帮我做吗?

我想不会。实际上,配置单元中的分区意味着为不同的分区创建不同的目录。而metastore只包含表的元数据。它无法控制实际数据。从技术上讲,当我们根据配置单元表中的分区列进行查询时,查询将仅在该分区目录上执行。因此,在不改变hdfs结构的情况下进行虚拟分区,实际数据将位于一个目录中,因此必须对整个数据执行查询。因此,技术优化根本没有发生

我同意你的观点,但我们是否有可能为每个分区关联的所有文件提供元数据。因此,当我们查询一个虚拟分区时,metastore只提供要处理的文件列表,因此我们不必自己搜索整个结构,metastore将为我们预先计算它。按照您的方式,如果我们为每个n个分区目录创建虚拟分区,元数据将增加,因此Namenode上的负担将增加,从而导致性能问题。N业务需求可能会随时发生变化,因此我们无法为同一数据集上的不同需求创建不同的元数据。它很贵。在正常分区中,如果使用分区列进行u查询,也会发生同样的情况。元数据包含发生列分区的依据,因此查询将仅在该分区中相应的文件列表上运行。