【问题标题】:Get list of queries executed in a cassandra cluster获取在 cassandra 集群中执行的查询列表
【发布时间】:2019-07-05 23:12:57
【问题描述】:

有什么方法可以在集群 cassandra 中获取所有执行的查询?

感谢您的帮助

【问题讨论】:

    标签: cassandra datastax cqlsh


    【解决方案1】:

    在开源 Cassandra 中,只能在 4.0 版(尚未发布)中通过审核日志记录。看到这个blog post about it

    DataStax Enterprise 也提供此功能 - 您可以将其启用为 described in documentation

    【讨论】:

    • 您同时涵盖了开源和 DSE,这对您很有帮助。此外,您回答了关于查询审计日志记录而不是跟踪的问题——这就是 OP 想要的。
    【解决方案2】:

    如果我没记错的话,您是在问批处理执行吗?您可以在 cqlsh 中使用“SOURCE”命令。请参考下面的链接。 https://docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlshSource.html

    【讨论】:

    • 感谢 Pandey 的回复,我正在寻找的是每天在我的 cassandra 集群中执行的所有查询的列表,以便对其进行分析
    • 然后您可以启用跟踪级别日志记录,这将在 system.log 中打印您的查询。
    【解决方案3】:

    启用跟踪 - 在 Cassandra 配置中,或者您也可以从客户端覆盖它,

    https://docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlshTracing.html

    【讨论】:

      【解决方案4】:

      你不一定非得有Cassandra 4.0,你也可以看看爱立信的ecaudit插件

      https://github.com/Ericsson/ecaudit

      设置说明

      https://github.com/Ericsson/ecaudit/blob/release/c3.0.11/doc/setup.md

      示例输出

      2019-02-28 15:18:14.089-> client=127.0.0.1, user=cassandra, status=ATTEMPT, operation='SELECT * FROM students'
      2019-02-28 15:18:14.090-> client=127.0.0.1, user=cassandra, status=ATTEMPT, batch-id=6f3cae9b-f1f1-4a4c-baa2-ed168ee79f9d, operation='INSERT INTO ecks.ectbl (partk, clustk, value) VALUES (?, ?, ?)[1, '1', 'valid']'
      2019-02-28 15:18:14.091-> client=127.0.0.1, user=cassandra, status=ATTEMPT, batch-id=6f3cae9b-f1f1-4a4c-baa2-ed168ee79f9d, operation='INSERT INTO ecks.ectbl (partk, clustk, value) VALUES (?, ?, ?)[2, '2', 'valid']'
      

      【讨论】:

        猜你喜欢
        • 2015-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-03
        • 2013-04-07
        • 1970-01-01
        • 2016-08-02
        • 2012-10-08
        相关资源
        最近更新 更多