You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何去除unixODBC连接BigQuery导出CSV的终端样式边框

unixODBC连接BigQuery导出纯净CSV的配置方案

问题背景

  • 基于unixODBC + Simba BigQuery ODBC驱动搭建了可用的BigQuery连接,终端通过isql交互查询时,结果默认返回+---短横线组成的ASCII表格边框,交互示例如下:
root@e0824e3bec23:/# isql -v BigQuery
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> select 1 as blah;
+---------------------+
| blah                |
+---------------------+
| 1                   |
+---------------------+
SQLRowCount returns -1
1 rows fetched
  • 尝试通过-b批处理参数重定向导出CSV时,ASCII边框、连接提示、执行状态信息依然会被写入导出文件,导出操作示例:
root@e0824e3bec23:/# echo "select 1 as bla;" > query.sql
root@e0824e3bec23:/# isql -v -b BigQuery < query.sql > results.csv
root@e0824e3bec23:/# cat results.csv 
+---------------------+
| bla                 |
+---------------------+
| 1                   |
+---------------------+
SQLRowCount returns -1
1 rows fetched
  • 带冗余格式的文件无法被LibreOffice等工具正常解析为标准CSV,查阅unixODBC参数、Simba驱动配置均未找到直接关闭格式输出的选项,当前ODBC连接配置如下:
[BigQuery]
KeyFilePath=/service.json
Driver=/opt/simba/driver/lib/libgooglebigqueryodbc_sb64.so
OAuthMechanism=0
Catalog=somecatalog
AllowLargeResults=0
LargeResultsDataSetId=_bqodbc_temp_tables
LargeResultsTempTableExpirationTime=3600000

可行解决方案

方案1:管道过滤isql输出(无需额外安装组件)

isql本身没有提供关闭ASCII表格排版、屏蔽状态输出的配置项,可直接通过管道命令过滤冗余内容并转换为标准CSV格式,导出命令如下:

isql -b BigQuery < query.sql | grep -v '^[+-]' | grep -v '^SQL' | grep -v 'rows fetched$' | sed 's/^| //;s/ *| */,/g;s/ |$//' > results.csv

命令逻辑:

  • 去掉-v verbose参数,避免输出多余的连接、调试提示
  • grep -v '^[+-]':过滤所有以+或-开头的表格边框行
  • grep -v '^SQL':过滤SQL执行状态返回行
  • grep -v 'rows fetched$':过滤末尾的行数统计行
  • sed指令:移除每行首尾的|分隔符,将字段间的|替换为逗号,直接输出标准CSV格式
    以上述测试SQL为例,最终导出的文件内容为纯结构化数据:
bla
1

方案2:使用unixODBC自带的odbcsv工具原生导出

unixODBC安装包默认附带odbcsv工具,原生支持结构化CSV导出,不会输出任何ASCII表格、状态提示类冗余内容,导出命令如下:

odbcsv -c "DSN=BigQuery" query.sql > results.csv

该命令会直接输出标准逗号分隔的CSV文件,无需额外过滤,稳定性更高。


内容的提问来源于stack exchange,提问作者Doug Fir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 16:27:39