Google cloud platform 云SQL中批量加载数据的ETL方法

Google cloud platform 云SQL中批量加载数据的ETL方法,google-cloud-platform,google-cloud-dataflow,google-cloud-sql,Google Cloud Platform,Google Cloud Dataflow,Google Cloud Sql,我需要将数据ETL到我的云SQL实例中。这些数据来自API调用。目前,我正在Kubernetes和Cronjobs中运行一个定制Java ETL代码,该代码请求收集这些数据并将其加载到云SQL中。问题在于管理ETL代码和监控ETL作业。当合并更多ETL过程时,当前的解决方案可能无法很好地扩展。在这种情况下,我需要使用ETL工具 我的云SQL实例包含两种类型的表:公共事务表和包含来自API的数据的表。第二种类型在“operational database perspective”(操作数据库透视图

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

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

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

在我当前的需求中,我只需要做简单的转换和批量加载数据。然而,在未来,我们可能希望处理其他数据源(PNG、json、csv文件)和接收器(云存储,可能还有BigQuery)。此外,在未来,我们可能希望接收流数据并将其存储在云SQL上。从这个意义上讲,底层的apachebeam模型非常有趣,因为它为批处理和流式处理提供了统一的模型

考虑到所有这些情况,我可以看到两种方法:

1) 在云中使用像Talend这样的ETL工具来帮助监控ETL作业和维护

2) 使用云数据流,因为我们可能需要流功能以及与各种源和汇的集成

第一种方法的问题是,当未来的需求到来时,我可能最终使用云数据流,这对我的项目在基础设施成本方面是不利的,因为我将为两个工具付费

第二种方法的问题是,数据流似乎不适合在云SQL数据库中进行简单的批量加载操作


我有什么地方做错了吗?有人能告诉我吗?

您可以使用云数据流来加载操作。这是一本书。它使用BigQuery,但您可以将其调整为或其他

更多的例子可以在用户生成内容的官方网站上找到

您还可以看看这一点,它自动化了从操作数据库提取数据的任务

对于更简单的ETL操作,它是一个易于使用的工具,并提供了