java数据流管道,用于将整个GCS纯文本文件内容、路径和创建时间加载到PubSub json格式的消息中
我有一个非常具体的要求,就是使用云数据流将几亿个普通文本文件从GCS bucket读取到Cloud PubSub。我需要将文件的全部内容放在一条消息中,但我能找到的唯一示例只能逐行读取文件,如CSV或JSON
除此之外,还有其他一些需求被证明更难找到解决方案。pubsub消息还应包含GCS对象的完整路径和GCS对象的“创建时间”。PubSub消息格式应类似于此:
{
"gcsCreatedTime": "Apr 1, 2021, 12:34:21 PM",
"gcsPath": "gs://bucketName/xxx/yyy/zzz/file.xml",
"fileStringContent": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
提供的任何解决方案都可以是java或python。没关系,只要行得通
此外,流式传输是首选,但也可以是批量传输
非常感谢你的帮助
# 1 楼答案
您可以查看FileIO api(https://beam.apache.org/releases/javadoc/2.28.0/index.html?org/apache/beam/sdk/io/FileIO.html)。在那里,您可以访问文件名和文件的全部内容