Sql 配置单元查询如何高效地查找以avro格式存储的数据?

Sql 配置单元查询如何高效地查找以avro格式存储的数据?,sql,hadoop,hive,avro,Sql,Hadoop,Hive,Avro,我们有大量相对较小的传入文件进行分析,所有这些文件的可用列都略有变化。我们正在将它们转换为avro格式,并在所有数据文件中维护一个主联合模式文件。然后,我们创建一个配置单元表并将其公开以供查询 我忍不住觉得这幅画有点不对劲。查询如何能够识别访问哪个或多个文件以获取任何小数据子集?它不需要每个查询读取每个文件并搜索查询的数据吗?这似乎效率极低。 一种选择是开始组合这些文件,但即使文件大小与Hadoop块大小完全相同,我们也会有大量文件 现在,我有了每个文件内容的完整信息。它们是按日期标记的,所以如

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

我忍不住觉得这幅画有点不对劲。查询如何能够识别访问哪个或多个文件以获取任何小数据子集?它不需要每个查询读取每个文件并搜索查询的数据吗?这似乎效率极低。 一种选择是开始组合这些文件,但即使文件大小与Hadoop块大小完全相同,我们也会有大量文件


现在,我有了每个文件内容的完整信息。它们是按日期标记的,所以如果我要手动查找数据,我将确切知道要访问哪些文件。如何将这些知识构建到配置单元接口中?

我认为我的问题并非AVRO文件格式所独有,而是在任何基础外部数据上创建配置单元表时的一个普遍问题,这些数据被分割成多个文件。如果您在google搜索中询问有关配置单元和多个文件的相同问题,您会发现解决此问题的最佳方法是在表中创建分区。每个分区将引导查询只遍历相关文件

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