有没有办法在 Cassandra cqlsh 的寻呼机中显示结果?

Is there a way to display results in a pager in Cassandra cqlsh?

如果查询的输出无法在用于发出查询的终端的尺寸内正确显示,用于绘制 table 布局的 ASCII 艺术通常会中断并成为更大的障碍而不是在尝试阅读显示的结果时提供帮助。

这在使用 Cassandra 的 cqlsh 时也经常发生。虽然有选项 EXPAND ON 可以在基于行的布局中显示结果,但我更愿意以某种方式配置 cqlsh,这样 table 输出对于终端来说太大了, 自动通过管道传送到寻呼机中。

在 PostgreSQL 的 psql 实用程序中,只要输出不适合终端,就会自动使用在环境变量 PAGER 中配置的寻呼机。通常 less 命令用作寻呼机。在 MySQL 中,您可以使用 PAGER less 之类的命令通过寻呼机 less.

显示所有结果

cqlsh 中是否有类似的功能?

如果需要,您可以将输出捕获到一个文件,然后 运行 通过寻呼机捕获该文件。

例如 运行 cqlsh 上的这个命令 shell

CAPTURE '~/out.txt'

现在,当您 运行 任何 select 命令时,输出将写入该文件,而不是在终端中显示。您可以使用 less 或 more 对文件 (out.txt) 进行分页。

这是文档:http://docs.datastax.com/en/cql/3.1/cql/cql_reference/capture_r.html

cqlsh 也有分页选项。 运行下面的命令看是否启用

paging

运行关注启用

paging on

但是它在开始分页之前仍然显示 100 行。我不确定是否有一种方法可以将分页配置为在输出超过一个屏幕后立即开始分页。