Google-Big Query with JavaScript

2019-02-03 19:50发布

i am kind of new with google apis and JavaScript,

Does any one have a example or a tutorials of how i can connect with the Google-Big Query api using JavaScript and load data from the sample tables to a simple HTML page.

Thanks in advance for this.

3条回答
闹够了就滚
2楼-- · 2019-02-03 20:34

Try something like this:

<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>
查看更多
兄弟一词,经得起流年.
3楼-- · 2019-02-03 20:38

fyi, you may want to try the JavaScript library available here: https://developers.google.com/bigquery/docs/libraries

查看更多
趁早两清
4楼-- · 2019-02-03 20:38

I find JavaScript authentication method clunky and not well documented. I suggest to use a Python service to run the query. You can pre-load your credential with the service.

Check out this example:

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);
});
查看更多
登录 后发表回答