【问题标题】:How to intercept mondoDB Query from Presto Connector如何从 Presto 连接器拦截 mongoDB 查询
【发布时间】:2021-02-02 12:51:36
【问题描述】:

我已经编写了一些从 mongoDB 集合中提取的 Presto 查询,但我们项目中的其他查询直接查询 mongo。这些人希望使用我的查询来节省他们重写它们的时间。

有没有办法获取/提取 Presto 生成的 mongoDB 查询语言?

MongoDB connector documentation 中没有看到任何表明这是如何或是否可能的内容。

我知道那里有 SQL-mongo 转换器,但 Presto SQL 扩展了普通 SQL 以实现我们在非关系存储中遇到的解包装数组等事情,而根据我的经验,这些转换程序在这些事情上遇到了麻烦。

【问题讨论】:

    标签: mongodb presto trino


    【解决方案1】:

    您可以在 log.properties 中设置 MongoDB 驱动程序日志级别DEBUG

    org.mongodb=DEBUG
    

    但是,它会打印许多不相关的日志(例如健康检查)。提出问题https://github.com/prestosql/presto/issues/5600

    【讨论】:

      【解决方案2】:

      我想最简单的方法是在查询运行时查看 Mongodb 并从那里获取它,例如通过 logging:

      db.setProfilingLevel(2)
      db.system.profile.find().pretty()
      

      您也可以使用一些 GUI,例如 MongoVue 或 Robo 3T - 我过去使用 MongoVue 来评估正在运行的查询。

      【讨论】:

      • 我目前可以访问后端,但会与我们的管理员联系,看看我是否可以查看这些日志。如果我能获得生成的 mongo 查询,将标记为答案。
      • 我们的管理员喜欢您的回答,并且我们能够解决这些问题。它们没有我们希望的那么有用,但这与 presto 如何进行这些翻译有关。
      猜你喜欢
      • 2016-04-25
      • 1970-01-01
      • 2015-08-31
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 2017-10-04
      • 1970-01-01
      • 2014-10-05
      相关资源
      最近更新 更多