Google cloud platform 如何将谷歌扳手查询结果导出到.csv或谷歌工作表?
我是谷歌扳手的新手,我运行了一个查询,发现了大约5万行数据。我想将该结果集导出到本地计算机,如.csv或谷歌工作表。以前我用过蟾蜍,在那里我有一个导出按钮,但在这里我看不到这些选项中的任何一个。有什么建议吗 您可以使用JDBC驱动程序将许多标准数据库工具与googlecloud扳手配合使用 看看这篇文章:Google cloud platform 如何将谷歌扳手查询结果导出到.csv或谷歌工作表?,google-cloud-platform,export,resultset,google-cloud-spanner,Google Cloud Platform,Export,Resultset,Google Cloud Spanner,我是谷歌扳手的新手,我运行了一个查询,发现了大约5万行数据。我想将该结果集导出到本地计算机,如.csv或谷歌工作表。以前我用过蟾蜍,在那里我有一个导出按钮,但在这里我看不到这些选项中的任何一个。有什么建议吗 您可以使用JDBC驱动程序将许多标准数据库工具与googlecloud扳手配合使用 看看这篇文章: Toad并没有作为示例包括在内,我不知道Toad是否支持动态加载JDBC驱动程序并连接到任何通用JDBC数据库。如果没有,您可以尝试本文中列出的其他工具之一。其中大多数还包括导出功能。gclo
Toad并没有作为示例包括在内,我不知道Toad是否支持动态加载JDBC驱动程序并连接到任何通用JDBC数据库。如果没有,您可以尝试本文中列出的其他工具之一。其中大多数还包括导出功能。gcloud-panner-databases-execute-sql命令允许您在命令行上运行sql语句,并将输出重定向到文件。
--format=csv
全局参数应以csv格式输出
不幸的是,
gcloud-panner databases execute sql
与--format=csv
不太兼容,因为数据在引擎盖下的布局方式(数组而不是地图)。虽然不太好看,但这是可行的:
SQL_STRING='select * from your_table'
gcloud spanner databases execute-sql [YOURDB] --instance [YOURINSTANCE] \
--sql=SQL_STRING --format json > data.json
jq '.metadata.rowType.fields[].name' data.json | tr '\n' ', ' > data.csv
echo "" >> data.csv
jq '.rows[] | @csv' data.json >> data.csv
这会将json形式的查询转储到data.json,然后将列名写入CSV,后面是换行符,最后是行内容。另外,默认情况下,jq安装在cloudshell上,因此不会带来任何额外的依赖关系。正如@redpandacurios所述,您可以使用
gcloud-panner-databases-execute-sql
CLI命令来实现这一点,尽管没有--format-csv
选项,因为它会导致format[csv]需要非空投影。
gcloud v286.0.0上出现错误
这不会产生投影错误:
gcloud spanner databases execute-sql \
[DATABASE] \
--instance [INSTANCE] \
--sql "<YOUR SQL>" \
>output.csv
gcloud扳手数据库执行sql\
[数据库]\
--实例[实例]\
--sql“”\
>output.csv
但您得到的输出格式如下:
<column1> <column2>
<data1> <data1>
<data2> <data2>
...
<dataN> <dataN>
...
所以不完全是csv,而是空格分隔的。如果需要JSON,请使用--format JSON>output.JSON
代替最后一行
要获得CSV,您可能需要按照另一个答案中的说明将JSON转换为CSV。I get
Format[CSV]需要一个非空投影。
@therealmitchconnors删除--Format=CSV
修复了这一问题,因为它现在似乎是扳手的默认设置gcloud panner databases[DATABASE]--instance[instance]--sql”“>output.csv
下面是一个脚本,它可以使这一过程更快一些,格式也更好: