| .. Licensed to the Apache Software Foundation (ASF) under one |
| .. or more contributor license agreements. See the NOTICE file |
| .. distributed with this work for additional information |
| .. regarding copyright ownership. The ASF licenses this file |
| .. to you under the Apache License, Version 2.0 (the |
| .. "License"); you may not use this file except in compliance |
| .. with the License. You may obtain a copy of the License at |
| .. |
| .. http://www.apache.org/licenses/LICENSE-2.0 |
| .. |
| .. Unless required by applicable law or agreed to in writing, software |
| .. distributed under the License is distributed on an "AS IS" BASIS, |
| .. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| .. See the License for the specific language governing permissions and |
| .. limitations under the License. |
| |
| sstabledump |
| ----------- |
| |
| Dump contents of a given SSTable to standard output in JSON format. |
| |
| You must supply exactly one sstable. |
| |
| Cassandra must be stopped before this tool is executed, or unexpected results will occur. Note: the script does not verify that Cassandra is stopped. |
| |
| Usage |
| ^^^^^ |
| sstabledump <options> <sstable file path> |
| |
| =================================== ================================================================================ |
| -d CQL row per line internal representation |
| -e Enumerate partition keys only |
| -k <arg> Partition key |
| -x <arg> Excluded partition key(s) |
| -t Print raw timestamps instead of iso8601 date strings |
| -l Output each row as a separate JSON object |
| =================================== ================================================================================ |
| |
| If necessary, use sstableutil first to find out the sstables used by a table. |
| |
| Dump entire table |
| ^^^^^^^^^^^^^^^^^ |
| |
| Dump the entire table without any options. |
| |
| Example:: |
| |
| sstabledump /var/lib/cassandra/data/keyspace/eventlog-65c429e08c5a11e8939edf4f403979ef/mc-1-big-Data.db > eventlog_dump_2018Jul26 |
| |
| cat eventlog_dump_2018Jul26 |
| [ |
| { |
| "partition" : { |
| "key" : [ "3578d7de-c60d-4599-aefb-3f22a07b2bc6" ], |
| "position" : 0 |
| }, |
| "rows" : [ |
| { |
| "type" : "row", |
| "position" : 61, |
| "liveness_info" : { "tstamp" : "2018-07-20T20:23:08.378711Z" }, |
| "cells" : [ |
| { "name" : "event", "value" : "party" }, |
| { "name" : "insertedtimestamp", "value" : "2018-07-20 20:23:08.384Z" }, |
| { "name" : "source", "value" : "asdf" } |
| ] |
| } |
| ] |
| }, |
| { |
| "partition" : { |
| "key" : [ "d18250c0-84fc-4d40-b957-4248dc9d790e" ], |
| "position" : 62 |
| }, |
| "rows" : [ |
| { |
| "type" : "row", |
| "position" : 123, |
| "liveness_info" : { "tstamp" : "2018-07-20T20:23:07.783522Z" }, |
| "cells" : [ |
| { "name" : "event", "value" : "party" }, |
| { "name" : "insertedtimestamp", "value" : "2018-07-20 20:23:07.789Z" }, |
| { "name" : "source", "value" : "asdf" } |
| ] |
| } |
| ] |
| }, |
| { |
| "partition" : { |
| "key" : [ "cf188983-d85b-48d6-9365-25005289beb2" ], |
| "position" : 124 |
| }, |
| "rows" : [ |
| { |
| "type" : "row", |
| "position" : 182, |
| "liveness_info" : { "tstamp" : "2018-07-20T20:22:27.028809Z" }, |
| "cells" : [ |
| { "name" : "event", "value" : "party" }, |
| { "name" : "insertedtimestamp", "value" : "2018-07-20 20:22:27.055Z" }, |
| { "name" : "source", "value" : "asdf" } |
| ] |
| } |
| ] |
| } |
| ] |
| |
| Dump table in a more manageable format |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| Use the -l option to dump each row as a separate JSON object. This will make the output easier to manipulate for large data sets. ref: https://issues.apache.org/jira/browse/CASSANDRA-13848 |
| |
| Example:: |
| |
| sstabledump /var/lib/cassandra/data/keyspace/eventlog-65c429e08c5a11e8939edf4f403979ef/mc-1-big-Data.db -l > eventlog_dump_2018Jul26_justlines |
| |
| cat eventlog_dump_2018Jul26_justlines |
| [ |
| { |
| "partition" : { |
| "key" : [ "3578d7de-c60d-4599-aefb-3f22a07b2bc6" ], |
| "position" : 0 |
| }, |
| "rows" : [ |
| { |
| "type" : "row", |
| "position" : 61, |
| "liveness_info" : { "tstamp" : "2018-07-20T20:23:08.378711Z" }, |
| "cells" : [ |
| { "name" : "event", "value" : "party" }, |
| { "name" : "insertedtimestamp", "value" : "2018-07-20 20:23:08.384Z" }, |
| { "name" : "source", "value" : "asdf" } |
| ] |
| } |
| ] |
| }, |
| { |
| "partition" : { |
| "key" : [ "d18250c0-84fc-4d40-b957-4248dc9d790e" ], |
| "position" : 62 |
| }, |
| "rows" : [ |
| { |
| "type" : "row", |
| "position" : 123, |
| "liveness_info" : { "tstamp" : "2018-07-20T20:23:07.783522Z" }, |
| "cells" : [ |
| { "name" : "event", "value" : "party" }, |
| { "name" : "insertedtimestamp", "value" : "2018-07-20 20:23:07.789Z" }, |
| { "name" : "source", "value" : "asdf" } |
| ] |
| } |
| ] |
| }, |
| { |
| "partition" : { |
| "key" : [ "cf188983-d85b-48d6-9365-25005289beb2" ], |
| "position" : 124 |
| }, |
| "rows" : [ |
| { |
| "type" : "row", |
| "position" : 182, |
| "liveness_info" : { "tstamp" : "2018-07-20T20:22:27.028809Z" }, |
| "cells" : [ |
| { "name" : "event", "value" : "party" }, |
| { "name" : "insertedtimestamp", "value" : "2018-07-20 20:22:27.055Z" }, |
| { "name" : "source", "value" : "asdf" } |
| ] |
| } |
| ] |
| } |
| |
| Dump only keys |
| ^^^^^^^^^^^^^^ |
| |
| Dump only the keys by using the -e option. |
| |
| Example:: |
| |
| sstabledump /var/lib/cassandra/data/keyspace/eventlog-65c429e08c5a11e8939edf4f403979ef/mc-1-big-Data.db -e > eventlog_dump_2018Jul26_justkeys |
| |
| cat eventlog_dump_2018Jul26b |
| [ [ "3578d7de-c60d-4599-aefb-3f22a07b2bc6" ], [ "d18250c0-84fc-4d40-b957-4248dc9d790e" ], [ "cf188983-d85b-48d6-9365-25005289beb2" ] |
| |
| Dump row for a single key |
| ^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| Dump a single key using the -k option. |
| |
| Example:: |
| |
| sstabledump /var/lib/cassandra/data/keyspace/eventlog-65c429e08c5a11e8939edf4f403979ef/mc-1-big-Data.db -k 3578d7de-c60d-4599-aefb-3f22a07b2bc6 > eventlog_dump_2018Jul26_singlekey |
| |
| cat eventlog_dump_2018Jul26_singlekey |
| [ |
| { |
| "partition" : { |
| "key" : [ "3578d7de-c60d-4599-aefb-3f22a07b2bc6" ], |
| "position" : 0 |
| }, |
| "rows" : [ |
| { |
| "type" : "row", |
| "position" : 61, |
| "liveness_info" : { "tstamp" : "2018-07-20T20:23:08.378711Z" }, |
| "cells" : [ |
| { "name" : "event", "value" : "party" }, |
| { "name" : "insertedtimestamp", "value" : "2018-07-20 20:23:08.384Z" }, |
| { "name" : "source", "value" : "asdf" } |
| ] |
| } |
| ] |
| } |
| |
| Exclude a key or keys in dump of rows |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| Dump a table except for the rows excluded with the -x option. Multiple keys can be used. |
| |
| Example:: |
| |
| sstabledump /var/lib/cassandra/data/keyspace/eventlog-65c429e08c5a11e8939edf4f403979ef/mc-1-big-Data.db -x 3578d7de-c60d-4599-aefb-3f22a07b2bc6 d18250c0-84fc-4d40-b957-4248dc9d790e > eventlog_dump_2018Jul26_excludekeys |
| |
| cat eventlog_dump_2018Jul26_excludekeys |
| [ |
| { |
| "partition" : { |
| "key" : [ "cf188983-d85b-48d6-9365-25005289beb2" ], |
| "position" : 0 |
| }, |
| "rows" : [ |
| { |
| "type" : "row", |
| "position" : 182, |
| "liveness_info" : { "tstamp" : "2018-07-20T20:22:27.028809Z" }, |
| "cells" : [ |
| { "name" : "event", "value" : "party" }, |
| { "name" : "insertedtimestamp", "value" : "2018-07-20 20:22:27.055Z" }, |
| { "name" : "source", "value" : "asdf" } |
| ] |
| } |
| ] |
| } |
| |
| Display raw timestamps |
| ^^^^^^^^^^^^^^^^^^^^^^ |
| |
| By default, dates are displayed in iso8601 date format. Using the -t option will dump the data with the raw timestamp. |
| |
| Example:: |
| |
| sstabledump /var/lib/cassandra/data/keyspace/eventlog-65c429e08c5a11e8939edf4f403979ef/mc-1-big-Data.db -t -k cf188983-d85b-48d6-9365-25005289beb2 > eventlog_dump_2018Jul26_times |
| |
| cat eventlog_dump_2018Jul26_times |
| [ |
| { |
| "partition" : { |
| "key" : [ "cf188983-d85b-48d6-9365-25005289beb2" ], |
| "position" : 124 |
| }, |
| "rows" : [ |
| { |
| "type" : "row", |
| "position" : 182, |
| "liveness_info" : { "tstamp" : "1532118147028809" }, |
| "cells" : [ |
| { "name" : "event", "value" : "party" }, |
| { "name" : "insertedtimestamp", "value" : "2018-07-20 20:22:27.055Z" }, |
| { "name" : "source", "value" : "asdf" } |
| ] |
| } |
| ] |
| } |
| |
| |
| Display internal structure in output |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| Dump the table in a format that reflects the internal structure. |
| |
| Example:: |
| |
| sstabledump /var/lib/cassandra/data/keyspace/eventlog-65c429e08c5a11e8939edf4f403979ef/mc-1-big-Data.db -d > eventlog_dump_2018Jul26_d |
| |
| cat eventlog_dump_2018Jul26_d |
| [3578d7de-c60d-4599-aefb-3f22a07b2bc6]@0 Row[info=[ts=1532118188378711] ]: | [event=party ts=1532118188378711], [insertedtimestamp=2018-07-20 20:23Z ts=1532118188378711], [source=asdf ts=1532118188378711] |
| [d18250c0-84fc-4d40-b957-4248dc9d790e]@62 Row[info=[ts=1532118187783522] ]: | [event=party ts=1532118187783522], [insertedtimestamp=2018-07-20 20:23Z ts=1532118187783522], [source=asdf ts=1532118187783522] |
| [cf188983-d85b-48d6-9365-25005289beb2]@124 Row[info=[ts=1532118147028809] ]: | [event=party ts=1532118147028809], [insertedtimestamp=2018-07-20 20:22Z ts=1532118147028809], [source=asdf ts=1532118147028809] |
| |
| |
| |
| |
| |