Jam*_*mes 13 python google-app-engine google-bigquery
我想开发一个直接将数据流传输到BigQuery表的应用程序引擎应用程序.
根据谷歌的文档,有一种简单的方法可以将数据流式传输到bigquery:
https://developers.google.com/bigquery/streaming-data-into-bigquery#streaminginsertexamples (注意:在上面的链接中你应该选择python选项卡而不是Java)
以下是有关如何编码流式插入的示例代码段:
body = {"rows":[
{"json": {"column_name":7.7,}}
]}
response = bigquery.tabledata().insertAll(
projectId=PROJECT_ID,
datasetId=DATASET_ID,
tableId=TABLE_ID,
body=body).execute()
Run Code Online (Sandbox Code Playgroud)
虽然我已经下载了客户端api,但我没有找到任何对上述Google示例中引用的"bigquery"模块/对象的引用.
应该找到bigquery对象(来自代码段)的位置?
任何人都可以展示更完整的方式来使用这个片段(使用正确的导入)?
我一直在寻找那么多,发现文档令人困惑和偏袒.
Fel*_*ffa 11
最小化工作(只要您为项目填写正确的ID)示例:
import httplib2
from apiclient import discovery
from oauth2client import appengine
_SCOPE = 'https://www.googleapis.com/auth/bigquery'
# Change the following 3 values:
PROJECT_ID = 'your_project'
DATASET_ID = 'your_dataset'
TABLE_ID = 'TestTable'
body = {"rows":[
{"json": {"Col1":7,}}
]}
credentials = appengine.AppAssertionCredentials(scope=_SCOPE)
http = credentials.authorize(httplib2.Http())
bigquery = discovery.build('bigquery', 'v2', http=http)
response = bigquery.tabledata().insertAll(
projectId=PROJECT_ID,
datasetId=DATASET_ID,
tableId=TABLE_ID,
body=body).execute()
print response
Run Code Online (Sandbox Code Playgroud)
正如乔丹所说:"请注意,这会使用appengine机器人对BigQuery进行身份验证,因此您需要将机器人帐户添加到数据集的ACL中.请注意,如果您还想使用机器人运行查询,而不仅仅是流,您需要机器人成为项目"团队"的成员,以便授权他们运行工作."
归档时间: |
|
查看次数: |
4959 次 |
最近记录: |