使用get_json_object在HIVE中创建视图后查询性能?

时间:2015-10-22 16:42:01

标签: json hadoop hive cloudera hortonworks-data-platform

Hive get_json_object函数是否解析每个JSON对象以进行字段解析,即使我们在JSON数据之上创建视图?

我们在使用SERDE阅读JSON数据时遇到问题。出于这个原因,我们想要使用这个udf并在数据之上创建视图。

问题是关于以后使用此路径查询数据可能会很慢的问题。

如果在hive表顶部创建一个视图,那么在View创建时只会解析一次数据会很有用。

Hive是否支持这个?

Hive专家对此有何想法?

2 个答案:

答案 0 :(得分:1)

我相信Hive支持观点。但是,如果你担心它的速度,你可以加载impala。它使用与hive相同的元数据和表格,但用户查询速度要快得多。

答案 1 :(得分:0)

视图的目的是隐藏来自用户的复杂查询。假设你做了一些复杂的连接查询以获取所有销售数据。现在你希望你的最终用户触发查询,例如select * from sales以获取所有销售数据那种情况你可以去看。每当您在查询中使用视图时,它将为该视图运行map reduce作业。因此它不会对速度进行任何改进。

关于你的问题,摆脱问题的一种方法是将所有解析数据存储到另一个表中,如果可能的话,然后触发查询。这将减少每次调用serde的成本。我已经按照这种方法进行了博客。