使用get\u json\u object在配置单元中创建视图后的查询性能?

am46iovg  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(441)

hive get_json_object函数是否会解析每个json对象以获得字段解析,即使我们在json数据上创建了一个视图?
使用serde读取json数据时遇到问题。因此,我们希望使用这个自定义项并在数据之上创建视图。
问题是担心将来使用此路径对数据的查询可能会很慢。
如果在配置单元表的顶部创建一个视图,则在创建视图时只解析一次数据,这将非常有用。
Hive是否支持这一点?
HiveMaven对此有什么想法吗?

ui7jx7zq

ui7jx7zq1#

查看的目的是对用户隐藏复杂查询。假设您执行了一些复杂的联接查询以获取所有销售数据。现在您希望最终用户启动查询,如select*from sales以获取所有销售数据,这样您就可以进行查看。无论何时在查询中使用视图,它都会为该视图运行map reduce作业,因此不会对速度进行任何改进。
对于您的问题,一种解决问题的方法是尽可能将所有解析数据存储到另一个表中,然后激发查询,这样可以减少每次调用serde的成本。我在网络日志中采用了这种方法。

a14dhokn

a14dhokn2#

我相信Hive确实支持这种观点。如果你担心它的速度,你可以加载 impala 相反。它使用的元数据和表与 hive ,但对于用户查询来说速度要快得多。

相关问题