繁体   English   中英

BigQuery 是否可以在完成将文件从 Cloud Storage 上传到 BQ 或通过 Streaming 插入数据时调用端点?

[英]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.

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