使用JavaScript的Google-Big Query

时间:2012-07-12 09:26:46

标签: javascript google-api google-bigquery

我是google apis和JavaScript的新手,

是否有任何人有一个示例或教程,说明如何使用JavaScript连接Google-Big Query api并将示例表中的数据加载到简单的HTML页面。

提前致谢。

3 个答案:

答案 0 :(得分:9)

尝试这样的事情:

<html>
  <head>
    <script src="https://apis.google.com/js/client.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script>
      // User Submitted Variables
      var project_id = 'XXXXXXXXXXX';
      var client_id = 'XXXXXXXXXXXXXXXXXX.apps.googleusercontent.com';

      var config = {
        'client_id': client_id,
        'scope': 'https://www.googleapis.com/auth/bigquery'
      };

      function showProjects() {
        var request = gapi.client.bigquery.projects.list();
        request.execute(function(response) {     
            $('#result_box').html(JSON.stringify(response, null));
        });
      }

      function showDatasets() {
        var request = gapi.client.bigquery.datasets.list({
          'projectId':'publicdata'
        });
        request.execute(function(response) {     
            $('#result_box').html(JSON.stringify(response.result.datasets, null));
        });
      }

      function runQuery() {
       var request = gapi.client.bigquery.jobs.query({
          'projectId': project_id,
          'timeoutMs': '30000',
          'query': 'SELECT TOP(repository_language, 5) as language, COUNT(*) as count FROM [publicdata:samples.github_timeline] WHERE repository_language != "";'
        });
        request.execute(function(response) {     
            console.log(response);
            $('#result_box').html(JSON.stringify(response.result.rows, null));
        });
      }

      function auth() {
        gapi.auth.authorize(config, function() {
            gapi.client.load('bigquery', 'v2');
            $('#client_initiated').html('BigQuery client initiated');
            $('#auth_button').fadeOut();
            $('#projects_button').fadeIn();
            $('#dataset_button').fadeIn();
            $('#query_button').fadeIn();
        });
      }

    </script>
  </head>

  <body>
    <h2>BigQuery + JavaScript Example</h2>
    <button id="auth_button" onclick="auth();">Authorize</button>
    <div id="client_initiated"></div>
    <button id="projects_button" style="display:none;" onclick="showProjects();">Show Projects</button>
    <button id="dataset_button" style="display:none;" onclick="showDatasets();">Show datasets</button>
    <button id="query_button" style="display:none;" onclick="runQuery();">Run Query</button>
    <div id="result_box"></div>
  </body>
</html>

答案 1 :(得分:2)

fyi,您可以尝试使用此处提供的JavaScript库: https://developers.google.com/bigquery/docs/libraries

答案 2 :(得分:0)

我发现JavaScript身份验证方法很笨拙且没有很好的文档记录。我建议使用Python服务来运行查询。您可以使用该服务预加载凭证。

看看这个例子:

https://vida.io/documents/icwvp4qcCbEkYW2ve

$.post("https://pyapi-vida.herokuapp.com/bigquery", "SELECT * FROM [nyc_taxi_public.total_amount_month] LIMIT 1000", function(result) {
  result.forEach(function(d) {
    bqData.push({"date": d3.time.format("%m/%Y").parse(d[0]),
        "amount": +d[1]});
  });

  drawLineChart(bqData);
});