HIVE查询如何有效地查找以avro格式存储的数据?

时间:2016-04-08 19:51:35

标签: sql hadoop hive avro

我们有大量相对较小的传入文件用于分析,所有这些文件在可用列上都有轻微变化。我们将它们转换为avro格式并在所有数据文件中维护主联合模式文件。然后我们创建一个HIVE表并公开它以供查询。

我不禁想到这张照片有些不对劲。查询如何识别要访问哪个或哪些文件来获取任何小数据子集?是否不需要每个查询都读取每个文件并搜索查询的数据?这似乎效率极低。 一种选择是开始组合这些文件,但即使文件大小与Hadoop块大小完全相同,我们也会有大量文件。

现在,我已经掌握了每个文件内容的完整信息。它们被日期标记,所以如果我要手动查找数据,我会确切地知道要访问哪些文件。如何将这些知识构建到HIVE界面中?

1 个答案:

答案 0 :(得分:0)

我认为我的问题并不是AVRO文件格式所特有的,并且在将任何基础外部数据分段为多个文件时创建HIVE表时是一个常见问题。如果您进行谷歌搜索,询问有关HIVE和多个文件的相同问题,您会发现解决此问题的最佳方法是在表格中创建分区。每个分区都会指导查询只查看相关文件。

诀窍是正确设计如何将文件存储到子文件夹并分配适当的分区。