我已经使用 Cassandra sstable2json 实用程序将 sstable 转换为 Json 文件,然后修改了一些行值,现在我调用了实用程序 json2sstable。使用以下命令成功执行了 Utlity json2sstable。
命令:
bin/json2sstable -s -K UserDemo -c Users Users.json /opt/dse-2.1/dse-data/UserDemo/Users-hd-1-Data.db
我尝试使用 cassandra 客户端查看更改是否反射(reflect)出来。请注意,更改并未反射(reflect)我使用 json2sstable 实用程序所做的操作。
我尝试使用 nodetool 刷新 CF 用户,但没有发现任何变化。
请指教不反射(reflect)在 cassandra 中的可能原因。
提前致谢。
最佳答案
JSON 导入/导出真正用于调试;如果您正在尝试进行某种批量加载,请查看 cqlsh COPY FROM
(从 1.1.2 开始)或 sstableloader 工具。
也就是说,如果您手动注入(inject)新的 sstables,则需要调用 ColumnFamilyStore.loadNewSSTables 方法。这不会通过 nodetool 公开。 (记住:用于调试。)您需要使用 jvisualvm 或类似工具调用它。
关于Cassandra 客户端未显示通过 json2sstable 所做的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12366884/