我正在寻找一些关于为简单ETL工作构建架构的指导。我已经构建了一个解决方案,但我正在寻找改进的方法,或者尝试一种替代的体系结构。
这是我的用例:
- 源数据以csv格式从移动设备上传到云存储
- 处理数据&将其转换为json格式
- 使用大数据存储解决方案进行分析
- 使用可视化解决方案显示数据
为此,我构建了一个解决方案,用户可以将csv格式的源数据上传到云存储。我使用云函数来监控我的云存储桶中的更改,并触发Dataflow管道对其进行批处理,并将数据(json格式(存储在bigquery中进行分析。最后,我使用DataStudio来可视化bigquery表中的信息。
这是我的工作流程:
云存储->云功能(触发器(->云数据流->大查询->Data Studio
我还可以使用哪些替代体系结构来实现这一点?云发布/订阅是批量处理的选项吗?使用Apache Kafka进行管道处理怎么样?
看起来还不错。我在AWS上构建了许多数据湖解决方案,这些解决方案的架构或多或少都很相似。我偶尔会使用DynamoDB
来存储信息,稍后在创建管道(如AMI Id
、Instance Types
等(之前,我会在Lambda
函数(动态创建管道(中使用这些信息。
您可以使用Cloud Datastore
来代替DynamoDB
。