繁体   English   中英

格式化 gcloud spanner 查询

[英]formating gcloud spanner queries

直到最近,我的 gcloud spanner 查询在屏幕上很好地显示为列,每 output 行代表查询中的一行。 但是最近,由于某些未知原因,output 现在显示为单列中的行数据:屏幕下方的值对,例如

PKey: 9moVr4HmSy6GGIYJyVGu3A==

Ty: Pf

IsNode: Y

P: None

IX: X

我尝试了各种 --format 命令行选项,但遗憾的是没有成功生成原始的每行输出格式,即屏幕上显示的列如下所示

PKey                     Ty   IsNode   P   IX    <-- columns names

9moVr4HmSy6GGIYJyVGu3A== Pf    Y      None  X.  <--- row data

我应该使用什么格式选项?

gcloud 查询示例:

gcloud spanner databases execute-sql test-sdk-db --instance=test-instance --sql="Select * from Block "

谢谢

如果将结果写入文件, gcloud结果格式化为表格,否则适用通常的格式化规则

因此,查看 shell 中的表格的一种简单方法是在某处tee

gcloud spanner databases execute-sql test-sdk-db --instance=test-instance --sql="Select * from Block " \
| tee /dev/null

如果由于某种原因你不能这样做,你总是可以通过一些--format手术获得相同的结果。 要打印列名称:

gcloud spanner databases execute-sql test-sdk-db --instance=test-instance --sql="Select * from Block " \
--format 'csv[no-heading, delimiter=" "](metadata.rowType.fields.name)'

并打印行:

gcloud spanner databases execute-sql test-sdk-db --instance=test-instance --sql="Select * from Block " \
--format 'csv[no-heading, delimiter="\n"](rows.map().flatten(separator=" "))'

gcloud spanner databases execute-sql的格式是对格式进行更广泛更改以更好地支持屏幕阅读器的可访问性标准的结果。

有两种方法可以以表格格式接收结果:

  1. accessibility/screen_reader配置属性设置为false

     gcloud config set accessibility/screen_reader false
  2. 与有关使用格式的其他建议类似,您可以在gcloud命令中使用--format=multi(...)选项:

     gcloud spanner databases execute-sql test-sdk-db \ --instance=test-instance --sql="Select * from Block " \ --format="multi(metadata:format='value[delimiter='\t'](rowType.fields.name)', \ rows:format='value[delimiter='\t']([])')"

    第二种方法的警告是列名和值可能由于长度不同而无法对齐。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM