Нет эквивалента sstabledump в Python Я знаю, что это позволило бы получить прямой доступ к C* sstables.
В некоторых решениях можно использовать либо cql sh COPY TO (формат csv или txt) ) или dsbulk для получения данных в формате json напрямую
https://cassandra.apache.org/doc/latest/tools/cqlsh.html#copy -в
https://docs.datastax.com/en/dse/6.7/cql/cql/cql_reference/cqlsh_commands/cqlshCopy.html
https://docs.datastax.com/en/dsbulk/doc/dsbulk/reference/dsbulkCmd.html
Обратите внимание, что последний (dsbulk) использует драйвер java и подключается через клиентский порт для извлечения информации из кластера, что создает некоторую нагрузку на кластер во время извлечения - та же проблема с CQL SH.
Что касается использования sstabledump, непосредственное чтение sstables не обязательно является рекомендуемым подходом, так как оно включает в себя надгробные камни и дубликаты, основанные на коэффициенте репликации, поэтому имеется механизм анализ данных в большинстве случаев является лучшим вариантом (но если на самом деле цель заключается в том, чтобы сделать это, то установка C* на рассматриваемый кластер приложений может быть единственным способом).
РЕДАКТИРОВАТЬ: Таким образом, sstable2 json устарел согласно https://issues.apache.org/jira/browse/CASSANDRA-7464, поскольку я вижу, что это часть репо, упомянутая в предоставленном ответе, и jira объясняет причины этого.
Я не проверял решение в репо, но у dsbulk есть одно преимущество перед COPY TO
, заключающееся в том, что он делает многопоточность, поскольку использует драйвер java. И может использоваться для запроса или выгрузки таблицы - см. Пример ниже таблицы экспорта ks.kv
.
$ dsbulk unload -h $(hostname -i) -k ks -t kv --connector.name json --connector.json.url /home/user/export
Operation directory: /home/automaton/logs/UNLOAD_20200114-092515-429006
total | failed | rows/s | p50ms | p99ms | p999ms
9 | 0 | 30 | 2.94 | 7.50 | 7.50
Operation UNLOAD_20200114-092515-429006 completed successfully in 0 seconds.
$ head /home/user/export/output-000001.json
{"k":5,"v":5}
{"k":1,"v":1}
...
Боюсь, что нет готового решения (я знаю) для python эквивалент sstable2 json на более поздних версиях