如何在app引擎和python上使用Bigquery流媒体插件

Jam*_*mes 13 python google-app-engine google-bigquery

我想开发一个直接将数据流传输到BigQuery表的应用程序引擎应用程序.

根据谷歌的文档,有一种简单的方法可以将数据流式传输到bigquery:

以下是有关如何编码流式插入的示例代码段:

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中.请注意,如果您还想使用机器人运行查询,而不仅仅是流,您需要机器人成为项目"团队"的成员,以便授权他们运行工作."