![](/img/trans.png)
[英]BigQuery error when loading csv file from Google Cloud Storage
[英]Is it possible for BigQuery to call an endpoint when it has finished uploading a file from Cloud Storage to BQ or when inserting data via Streaming?
我正在从 Cloud Storage 和通过流将文件上传到 BigQuery,我想知道当 BigQuery 完成将数据加载到表中时,它是否可以调用我选择的端点。
例如,存储中的文件:
load_job = bq_client.load_table_from_uri(
source_uris=uri,
destination=destination_table,
job_config=job_config, endpoint="http://my-endpoint.com"
)
或者,例如,在流媒体中:
rows_to_insert = [
{ "name": "John", "age": 22},
{"name": "Will", "age": 33},
]
errors = bq_client.insert_rows_json(table_id, rows_to_insert, endpoint="http://my-endpoint.com)
在我的端点中,我有一个 python 代码,我想在数据插入 BigQuery 时执行该代码。
插入数据(流式或来自存储)的代码不应等待 BigQuery 确认数据已插入,这应该由 BigQuery 调用端点来完成。
有没有办法做到这一点?
对于该用例,您可以使用Eventarc 。 Eventarc 根据审计日志捕获事件并生成事件以调用 Cloud Run 和 Cloud Functions V2(还有 Cloud Workflows,还有更多端点即将到来)。
您必须检查事件的状态是否已完成。 您应该会收到每个 state 更新的事件。
另一种解决方案是从Cloud Workflow触发您的加载作业,并使用阻塞 BigQuery 作业插入连接器等待加载作业结束,然后再进入下一步
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.