通过自定义网页(不是内置的WebUI)从BigQuery中提取数据

时间:2017-01-06 14:06:17

标签: google-bigquery

我正在尝试构建一个简单的基于Web的前端工具,直接从BigQuery中获取数据,最好不要使用中间层类型的Web服务器应用程序。我不是指通过Google控制台提供的WebUI工具,而是可以从网页内部进行身份验证,根据用户输入发送查询,并将数据作为JSON / JavaScript数组等返回。

本文通过使用Polymer工具包概述了一种有趣的方法 - 我理解了Google Authentication元素,查询元素和数据绑定元素的某种组合? Visualization At Scale

我在网上找到了Google身份验证的示例,但没有看到有关查询部分的任何信息。除了使用WebUI的指南之外,我在Google的在线BigQuery文档中没有看到任何相关内容,这不适用于此任务。任何例子都非常感谢!

1 个答案:

答案 0 :(得分:1)

您是否在Querying Data上看过该页面?例如,它包含使用node.js发出查询的示例。在不了解您的应用程序的情况下,我假设您希望使用异步API启动查询(或查询)。它给出的示例a more complete version of which is also available on Github是:

function asyncQuery (sqlQuery) {
  // Instantiates a client
  const bigquery = BigQuery();

  // Query options list: https://cloud.google.com/bigquery/docs/reference/v2/jobs/query
  const options = {
    query: sqlQuery,
    useLegacySql: false // Use standard SQL syntax for queries.
  };

  let job;

  // Runs the query as a job
  return bigquery.startQuery(options)
    .then((results) => {
      job = results[0];
      console.log(`Job ${job.id} started.`);
      return job.promise();
    })
    .then(() => {
      console.log(`Job ${job.id} completed.`);
      return job.getQueryResults();
    })
    .then((results) => {
      const rows = results[0];
      console.log('Rows:');
      rows.forEach((row) => console.log(row));
      return rows;
    });
}