2015-07-11 82 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上都能正常工作。 –