首页 文章

ETL用于在Cloud SQL中批量加载数据

提问于
浏览
1

我需要将ETL数据导入我的Cloud SQL实例 . 此数据来自API调用 . 目前,我正在使用Cronjobs在Kubernetes中运行自定义Java ETL代码,该代码请求收集此数据并将其加载到Cloud SQL上 . 问题在于管理ETL代码和监视ETL作业 . 当结合更多ETL过程时,当前的解决方案可能无法很好地扩展 . 在这种情况下,我需要使用ETL工具 .

My Cloud SQL实例包含两种类型的表:公共事务表和包含来自API的数据的表 . 第二种类型在“操作数据库透视图”中大部分是只读的,并且大部分表每小时(批量)批量更新以丢弃旧数据并刷新值 .

考虑到这种情况,我注意到Cloud Dataflow是GCP提供的ETL工具 . 但是,这个工具似乎更适合需要进行复杂转换和以多种格式摄取数据的大数据应用程序 . 此外,在Dataflow中,数据是并行处理的,并且工作节点根据需要进行升级 . 由于Dataflow是一个分布式系统,因此在分配资源以执行简单的批量加载时,ETL过程可能会产生开销 . 除此之外,我注意到Dataflow没有针对Cloud SQL的特定接收器 . 这可能意味着Dataflow不是Cloud SQL数据库中简单批量加载操作的正确工具 .

在我目前的需求中,我只需要进行简单的转换并批量加载数据 . 但是,在将来,我们可能希望处理其他数据源(png,json,csv文件)和接收器( Cloud 存储和BigQuery) . 此外,在将来,我们可能希望获取流数据并将其存储在Cloud SQL上 . 从这个意义上讲,底层Apache Beam模型非常有趣,因为它为批处理和流式传输提供了统一的模型 .

给出所有这些背景,我可以看到两种方法:

1)使用 Cloud 中的Talend等ETL工具来帮助监视ETL作业和维护 .

2)使用Cloud Dataflow,因为我们可能需要流功能并与各种源和接收器集成 .

第一种方法的问题在于,当未来的requeriments到来时,我最终可能会使用Cloud Dataflow,这对我的项目在基础架构成本方面会有所不利,因为我会为两个工具付费 .

第二种方法的问题是Dataflow似乎不适合 Cloud SQL数据库中的简单批量加载操作 .

我有什么问题吗?有人可以开导我吗?

1 回答

相关问题