2015-07-11 78 views
2

我正在使用bq load從命名管道將數據加載到Google bigquery。BigQuery:bq加載命令是否支持從命名管道作爲源加載?

控制檯窗口1:

$ mkfifo /usr/pipe1 
$ cat /dev1/item.dat > /usr/pipe1 

控制檯窗口2:

$ bq load --source_format=CSV projectid:dataset.itemtbl /usr/pipe1 field1:integer,field2:integer 

得到了以下錯誤:

BigQuery error in load operation: Source path is not a file: /usr/pipe1 
+0

我相信有一個用於大查詢的流式插入組件,可能用它來代替。 – Paul

回答

1

根據BigQuery客戶bq.py不支持命名管道。它明確要求文件:

https://code.google.com/p/google-bigquery-tools/source/browse/bq/bigquery_client.py?r=30df4638ff2ddb01d3f495af5c131ed3c2cfbd04#617

允許命名管道是一個很好的功能建議。你可以在這裏提出要求:

https://code.google.com/p/google-bigquery/issues/list

看起來,你可以很輕鬆地調整您bigquery_client.py的副本,使這項工作爲好。祝你好運!

+0

謝謝!我將嘗試修改bigquery_client.py。但我認爲調整更改以支持stdin而不是命名管道會更好。這將使bq加載在Windows和Linux上都能正常工作。 –