使用Drill查询获取PostgreSQL执行计划

时间:2017-11-29 21:21:24

标签: postgresql postgis apache-drill

我需要使用PostgreSQL存储插件(不是Drill执行计划,而是PostGIS执行计划)获取从Apache Drill执行的查询的执行计划。

所以我使用以下命令启用解释计划日志;

SET auto_explain.log_min_duration = 0;
SET auto_explain.log_analyze = true;

如果我从pgAdmin执行查询,它会显示语句和计划。但是如果我从Drill执行相同的查询,它就不会记录任何内容。

你知道为什么会这样吗?如何解决这种情况?

注意:我检查了连接,没关系,它们在pgAdmin和Drill中是相同的,同样在Drill我执行查询并得到结果,所以我假设有没有连接问题。

1 个答案:

答案 0 :(得分:0)

我怀疑您正在从postgres命令行执行SET命令,因此这些设置仅适用于Drill的postgres会话。为了将这些设置应用于Drill的postgres会话,请尝试将这些属性添加到Drill的存储插件配置中。以下是这些属性的示例配置:

{
  "type": "jdbc",
  "driver": "org.postgresql.Driver",
  "url": "jdbc:postgresql://localhost:5432;auto_explain.log_min_duration=0;auto_explain.log_analyze=true",
  "username": "postgres",
  "enabled": true
}