google-cloud-platform - 尝试拉取大于 50KB 的消息时,PubSubPullSensor 失败
问题描述
我一直在尝试使用 Airflow 中的 PubSubPullSensor 来提取 JSON 消息并摄取到 bigquery 中,只要消息大小超过阈值,传感器就无法通过 XCOM 提取消息并推送。我知道 XCOM 有最大尺寸限制,但我们如何克服这种情况,这种情况有什么解决方法吗?
解决方案
对于您描述的场景,Google Cloud Platform 中有专门的解决方案。它是Dataflow Pub/Sub Subscription to BigQuery 模板,可让您从 Pub/Sub 读取 JSON 格式的消息并将其转换为 BigQuery 元素。
正如官方文档中所说,最大 XCom 大小为 48 KB。XComs 让任务交换消息,允许更细微的控制形式和共享状态。XComs 似乎不是为传递大量数据而设计的。
如果您希望继续使用 Airflow 解决方案并且当前 PubSubSensor 的功能不能满足您的需求,您可以使用PubSub Hook开发您的自定义传感器。
另一种解决方案是使用Cloud Functions,它可以由发布到 Pub/Sub 主题的消息触发,以及 Composer DAG 触发解决方案。当消息发布到 Pub/Sub 主题时,Cloud Function 会触发 Composer DAG。
我希望您发现上述信息有用。
推荐阅读
- repeat - 在 Photoshop 中的当前位置平铺图像
- python - 如何使用另一个已在 python-selenium 中选择为根的 xpath 选择元素?
- python - 无法在 kivy 应用程序中禁用全屏选项
- gcc - 使用 g++ -march=x86-64 构建的代码可以在 32 位操作系统上运行吗?
- amazon-web-services - AWS CodeArtifact 令牌更新
- python - 内联 - 在 perl 中从 python 访问 python 变量
- java - 单元测试中的 Mocking Appender 需要创建实例吗?
- python - 自动选择图像亮度的 Gamma 值
- unity3d - 为什么我无法将 3D 动画对象的颜色从搅拌机导出到 Unity?
- html - Thymeleaf URL 语法?