CQL не имеет общего термина для первичного ключа; вместо этого вам нужно будет предоставить его явно. Предположительно, приложение или скрипт, который читает из Cassandra, уже знает схему и, следовательно, знает имена ключей.
Однако, если вы хотите получить имена столбцов первичного ключа программно, вот один из подходов: используйте системные таблицы Cassandra для запроса определений таблиц и проанализируйте результаты, чтобы выбрать имена ключей.
Например, вот простая таблица с простым первичным ключом (ключом раздела):
cqlsh:key1> create table table1 (a int, b int, c int, primary key (a));
cqlsh:key1> select column_name,component_index,type from system.schema_columns
... where keyspace_name='key1' and columnfamily_name='table1';
column_name | component_index | type
-------------+-----------------+---------------
a | null | partition_key
b | 0 | regular
c | 0 | regular
А вот немного более сложный первичный ключ, как предложил @reggoodwin:
cqlsh:key1> create table table2 (a int, b int, c int, d int, e int,
... primary key ((a, b), c, d));
cqlsh:key1> select column_name,component_index,type from system.schema_columns
... where keyspace_name='key1' and columnfamily_name='table1';
column_name | component_index | type
-------------+-----------------+----------------
a | 0 | partition_key
b | 1 | partition_key
c | 0 | clustering_key
d | 1 | clustering_key
e | 2 | regular
Для получения дополнительной информации посетите страницу документации по Запрос к системной таблице< /а>.
person
BrianC
schedule
20.05.2014