我希望创建一个发布者,将包含特定主题标签的推文流式传输并发送到发布/订阅主题。
然后,这些推文将被云数据流摄取,然后加载到 Big Query 数据库中。
如下article他们执行类似的操作,将发布者托管在 Google Compute Engine 实例上的 Docker 镜像上。
谁能推荐替代的 Google Cloud 资源,可以更简单地托管发布商代码,从而避免创建 docker 文件等? 发布者需要不断运行。云会运行吗?是一个合适的选择吗?
最佳答案
我能想到一些解决方法:
避免容器架构的一种快速方法是在循环中使用
on_data
方法,例如,通过使用while(true)
之类的方法或启动一个像 Create your Python script 中解释的那样进行流式传输并使用nohup python -u myscript.py
在后台计算引擎中运行代码。或者按照 Script on GCE to capture tweets 中描述的步骤操作使用 tweepy.Stream 启动流式传输。您可能需要重新考虑
Dockerfile
选项,因为它的配置可能并不那么困难,请参阅 Tweets & pipelines其中有一个读取数据并发布到 PubSub 的脚本,您将看到 Docker 文件使用了 9 行,并且使用 Cloud Build 将其部署在 App Engine 中。另一种需要更多步骤的 Docker 文件实现是 twitter-for-bigquery ,如果有帮助的话,您会看到有更具体的步骤和更多的配置。云函数也是另一个选项,在本指南中 Serverless Twitter with Google Cloud您可以检查设计部分以了解它是否适合您的用例。
Airflow with Twitter Scraper可以为您工作,因为 Cloud Composer 是 Airflow 的托管服务,您可以快速创建 Airflow 环境。它使用 Twint 库,请查看链接中的技术部分以了解更多详细信息。
Stream Twitter Data into BigQuery with Cloud Dataprep是一种抛开复杂配置的解决方法。在这种情况下,作业不会持续运行,但可以安排在几分钟内运行。
关于python - 在 GCP 上哪里托管 pub sub 发布商?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63309727/