从SQS读取消息到Dataflow

时间:2015-06-29 21:49:57

标签: amazon-s3 amazon-sqs google-cloud-dataflow

我在AWS S3中生成了大量数据,只要新文件到达S3,就会发出PUT通知being sent to SQS。我想将这些文件的内容加载到BigQuery中,所以我正在设置一个简单的ETL数据流。但是,我无法弄清楚如何将Dataflow与任何尚未开箱即用的服务(Pubsub,Google Cloud Storage等)集成。

The GDF docs say

  

在Cloud Dataflow的初始版本中,尚未实现读写转换的可扩展性。

我想我可以证实这一点,因为我试图编写一个Read转换并且无法弄清楚如何使它工作(我试图在提供的PubsubIO类上建立一个SqsIO类)。

所以我一直在寻找为Dataflow编写自定义source,但无法解决如何调整Source以轮询SQS以进行更改的问题。无论如何,它看起来并不像是正确的抽象,但我真的不在乎是否可以让它工作。

此外,看起来我必须做一些工作来下载S3文件(我尝试为此创建一个Reader,没有上述原因的运气b / c)。

基本上,我被困住了。任何有关将SQS和S3与Dataflow集成的建议都将非常受欢迎。

1 个答案:

答案 0 :(得分:1)

Dataflow Java SDK现在包含一个用于定义自定义无界源的API:

https://github.com/GoogleCloudPlatform/DataflowJavaSDK/blob/master/sdk/src/main/java/com/google/cloud/dataflow/sdk/io/UnboundedSource.java

这可用于实现自定义SQS源。