繁体   English   中英

在GCP中创建REST API从BigQuery读取数据

[英]Creating REST API in GCP to read data from BigQuery

Google Cloud Platform 非常新,因此会问基本问题。 我正在寻找将在 GCP 中托管的 API。 外部应用程序将调用 API 从 BigQuery 读取数据。 谁能帮我解决任何示例代码/方法?

寻找基于 Python 的端到端云解决方案

我无法为您提供完整的代码示例。 但:

不要忘记设置 CORS 和潜在的身份验证,就是这样

您可以使用Bigquery 客户端创建一个Python程序,然后将此程序部署为HTTP Cloud FunctionCloud Run服务:

from flask import escape
from google.cloud import bigquery

import functions_framework

@functions_framework.http
def your_http_function(request):
    #HTTP Cloud Function.
  
    request_json = request.get_json(silent=True)
    request_args = request.args
    
    # example to retrieve argument param in the HTTP call
    if request_json and 'name' in request_json:
        name = request_json['name']
    elif request_args and 'name' in request_args:
        name = request_args['name']
    
   
    # Construct a BigQuery client object.
    client = bigquery.Client()

    query = """
      SELECT name, SUM(number) as total_people
      FROM `bigquery-public-data.usa_names.usa_1910_2013`
      WHERE state = 'TX'
      GROUP BY name, state
      ORDER BY total_people DESC
      LIMIT 20
  """
  query_job = client.query(query)  # Make an API request.

  rows = query_job.result()  # Waits for query to finish

  for row in rows:
     print(row.name)

  return rows

在此示例中,您必须将Python代码部署为云 Function

您的 function 可以通过带有参数nameHTTP调用来调用:

https://GCP_REGION-PROJECT_ID.cloudfunctions.net/hello_http?name=NAME

您还可以使用提供更大灵活性的Cloud Run ,因为您部署了一个Docker图像。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM