我在特定键空间上设置了DSE Cassandra审核日志功能。通过参考以下文档 -
这工作得非常好。但是,问题是在列"操作"中捕获的DML语句。具有已准备语句的绑定变量。这是通过java程序使用DSE Driver执行的。对于UDT,此绑定变量被捕获为一些十六进制值。
for ex:opts = 000000120000002f00000003414c4c000000045253434800000001590000000800000162e0e658180000000641504952414d00000001490000002f0000000
我需要知道如何解析这个十六进制值以获取实际数据。
答案 0 :(得分:0)
特定版本的DSE应该有问题。我刚刚使用5.1和6.0进行了测试,并且在这两个数据中,数据均已正确报告(我已使用映射器生成查询):
INFO [Native-Transport-Requests-1] 2018-08-20 08:53:48,754 SLF4JAuditWriter.java:96 - host:localhost/127.0.0.1|source:/127.0.0.1|user:anonymous|authenticated:anonymous|timestamp:1534748028754|category:DML|type:CQL_PREPARE_STATEMENT|ks:test|cf:audit_test|operation:INSERT INTO test.audit_test (id,u) VALUES (?,?);
INFO [Native-Transport-Requests-1] 2018-08-20 08:53:48,770 SLF4JAuditWriter.java:96 - host:localhost/127.0.0.1|source:/127.0.0.1|user:anonymous|authenticated:anonymous|timestamp:1534748028770|category:DML|type:CQL_UPDATE|ks:test|cf:audit_test|operation:INSERT INTO test.audit_test (id,u) VALUES (?,?); [id=2,u=2:test 2]|consistency level:LOCAL_ONE
至少考虑升级到5.1 ...
P.S。刚刚发现在5.1中,集合的输出不起作用(也许与其他集合也一样)。