Можно ли подавить заголовок столбца в выводе cqlsh?

Я хочу, чтобы один из моих нескольких операторов SELECT не печатал заголовки столбцов, а только выбранные записи. Возможно ли это в Cassandra 3.0?

Я попробовал следующее, но он возвращает имя столбца:

cqlsh -e "select count(1) from system_schema.keyspaces where keyspace_name='test'";
 count
-------
     1

MySQL имеет такие опции, как -s -N, чтобы подавить то же самое.

Установка Apache Cassandra на Mac OS
Установка Apache Cassandra на Mac OS
Это краткое руководство по установке Apache Cassandra.
0
0
77
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Попробуйте этот вариант в качестве обходного пути:

# cqlsh -e "select count(1) from system_schema.keyspaces where keyspace_name='test'" | tail -n +4
     0

(1 rows)

@Dexter, для выбора записей, почему ты не можешь просто использовать SELECT * FROM system_schema.keyspaces where keyspace_name='test';?

Чего вы пытаетесь добиться здесь, т.е. конечного результата?

Если вы просто хотите подсчитать количество записей, вы можете просто использовать DataStax Bulk Loader для выполнения операции подсчета.

Использованная литература:

./dsbulk count -k system_schema -t keyspaces

В качестве альтернативы вы можете использовать dsbulk unload -query <...> для выборочной выгрузки записей на основе переданного вами запроса.

Ответ принят как подходящий

В cqlsh нет встроенной опции, которая позволила бы вам подавить заголовок вывода из CQL SELECT.

Лучше всего использовать сценарии оболочки для анализа вывода. Существует несколько доступных утилит Linux, которые вы можете использовать в зависимости от желаемого результата. Вот лишь несколько примеров из длинного списка возможностей:

ПРИМЕР 1. Чтобы распечатать первую строку результатов (4-я строка вывода cqlsh), вы можете использовать утилиту awk:

$ cqlsh -e "SELECT ... FROM ..." | awk 'NR==4'

ПРИМЕР 2. Эквивалент утилиты sed:

$ cqlsh -e "SELECT ... FROM ..." | sed -n '4p'

ПРИМЕР 3. Если вы хотите напечатать все строки, а не только первую (при условии, что ваш запрос возвращает несколько строк):

$ cqlsh -e "SELECT ... FROM ..." | tail -n +4 | head -n -2

tail -n +4 напечатает все строки, начиная с четвертой, а head -n -2 удалит последние 2 строки (пустая строка + (# rows) в конце). Ваше здоровье!

Другие вопросы по теме