首页 > 解决方案 > 如何将实时 JSON 提要从 RESTful API 接收到 BigQuery?

问题描述

我想从一个可公开访问的 API 中持久保存数据,该 API 在调用时返回一个 JSON 对象列表,每个过去 N 个事件都有一个。JSON 对象的结构简单且一致。N 无法指定(据我所知),因此需要频繁地轮询 API,以确保数据没有间隙。我需要检查它的频率,但绝对不止一分钟一次。

看起来 BigQuery 并没有简单地接受 RESTful API 作为流数据源。对于 Cron 来说,粒度似乎太细了,这通常是最好的(从https://cloud.google.com/solutions/reliable-task-scheduling-compute-engine判断,它也可能超过配额)。是否有其他选项可以一致地轮询 RESTful API?

如果可能的话,我更喜欢涉及编码的 Python 解决方案,但我会尽我所能。简单地将数据获取到 Google Cloud Storage(例如,每次调用一个 JSON 文档)也是可以接受的;我可以编写一个流程(数据流或其他东西)来处理重复项并将它们提取到 BigQuery 中。

我觉得这个问题必须在过去被问过和回答,但经过几天的搜索我没有找到任何东西,所以任何帮助将不胜感激!

标签: pythongoogle-cloud-platformgoogle-bigquerygoogle-cloud-storagepolling

解决方案


您可以使用流式插入来执行此操作。使用 Python 轮询 API 后,您可以使用 BigQuery 客户端库将该数据直接流式传输到 Bigquery (这里是一个示例)


推荐阅读