使用 Cloud Functions 从 API 检索流数据

Retrieve streaming data from API using Cloud Functions

我想将实时数据从 Twitter API 流式传输到云存储和 BigQuery。我必须使用 Cloud Functions 摄取和转换数据,但问题是我不知道如何从 Twitter API 提取数据并将其摄取到云端。

我知道我还必须创建一个调度程序和一个 Pub/Sub 主题来触发 Cloud Functions。我已经创建了一个 Twitter 开发者帐户。主要问题实际上是将数据流式传输到 Cloud Storage。

我对 GCP 和流数据真的很陌生,所以很高兴看到对此有明确的解释。非常感谢:)

您必须首先设计您的解决方案。你想达到什么目的?流式处理还是微批处理?

如果流式传输,您必须使用 Twitter 的流式传输 API。简而言之,您启动一​​个连接,然后保持连接并 运行(并连接)接收数据。

如果是批量,则需要查询一个API并下载一组消息。在 Query-response 模式下。


话虽如此,如何使用 Google 云实施它。流式传输是有问题的,因为您必须始终保持连接。对于无服务器产品,您有超时问题(Cloud Functions V1 为 9 分钟,Cloud 运行 和 Cloud Functions V2 为 60 分钟)。

但是你可以想象定期调用你的无服务器产品,保持连接一段时间(比如 1 小时)并安排每小时触发一次。

或者使用虚拟机(或 K8S 容器上的 pod)


您还可以考虑每分钟调用您的 Cloud Functions 并获取过去几分钟的所有消息的微批处理。


最后,一切都取决于您的用例。您期望的实际时间是多少?你想使用哪个产品?