-- enable cost based optimizer
set hive.cbo.enable=true;
set hive.compute.query.using.stats=true;
set hive.stats.fetch.column.stats=true;
set hive.stats.fetch.partition.stats=true;
--collects statistics
analyze table <TABLENAME> compute statistics for columns;
--enable vectorization of queries.
set hive.vectorized.execution.enabled = true;
set hive.vectorized.execution.reduce.enabled = true;
如果您的数据库是oracle,您可以尝试使用oracle table access for hadoop and spark(ota4h),它也可以从配置单元ql中使用。ota4h将优化jdbc查询,以便使用拆分器从oracle检索数据,以获得最佳性能。您可以在配置单元查询中直接将配置单元表与oracle内部的外部表连接起来。
4条答案
按热度按时间wb1gzix01#
要提高jdbc连接的性能,请使用标准的jdbc性能改进功能连接池、准备语句池(从jdbc3.0开始)可以通过更改这些配置参数来提高hivecli的性能
希望有帮助
kuuvgm7e2#
如果您的数据库是oracle,您可以尝试使用oracle table access for hadoop and spark(ota4h),它也可以从配置单元ql中使用。ota4h将优化jdbc查询,以便使用拆分器从oracle检索数据,以获得最佳性能。您可以在配置单元查询中直接将配置单元表与oracle内部的外部表连接起来。
eit6fx6z3#
使用连接池帮助我提高了hivejdbc的性能。在hive中,查询时会发生许多转换,因此使用连接池中的现有连接对象而不是打开新连接并关闭每个请求非常有帮助。
请让我知道如果任何其他人如果面临同样的问题将张贴一个详细的答案。
4ngedf3f4#
你能试试下面的选项吗。
如果查询具有联接,请尝试将hive.auto.convert.join设置为true。
尝试更改java堆大小和垃圾收集引用链接的配置
使用set hive.execution.engine=tez将执行引擎更改为tez,以检查当前设置的引擎use hive.execution.engine。
其他配置单元性能配置提示可以在链接中找到
请告诉我结果。