Google cloud dataflow 简单的Google云数据流ETL,从xls到db再到xls

Google cloud dataflow 简单的Google云数据流ETL,从xls到db再到xls,google-cloud-dataflow,Google Cloud Dataflow,我需要开发一个全新的小系统,它将从几个上传的xls文件中获取数据,并将其放入关系数据库中,然后再查询以输出另一个xls文件。 它必须在谷歌云上运行,所以我考虑使用谷歌云数据流。数据流是正确的工具吗?我应该从哪里开始熟悉它,如何做我上面提到的事情?推荐的编程语言是什么?有人建议使用Python,因为他们认为它比Java更轻量级,但果真如此吗 此外,我还想了解成本,考虑到提取数据并将其转换为数据库的过程可以每天进行一到两次,并且生成xls输出的次数将根据需要进行(每天20到30次) 银行 这可以在数

我需要开发一个全新的小系统,它将从几个上传的xls文件中获取数据,并将其放入关系数据库中,然后再查询以输出另一个xls文件。 它必须在谷歌云上运行,所以我考虑使用谷歌云数据流。数据流是正确的工具吗?我应该从哪里开始熟悉它,如何做我上面提到的事情?推荐的编程语言是什么?有人建议使用Python,因为他们认为它比Java更轻量级,但果真如此吗

此外,我还想了解成本,考虑到提取数据并将其转换为数据库的过程可以每天进行一到两次,并且生成xls输出的次数将根据需要进行(每天20到30次)


银行

这可以在数据流中完成,但我不确定如何处理xls文件格式。这是一种二进制格式,不是吗?如果可能的话,保存为csv文件可能更容易

对于可以使用的CSV文本文件,它一次处理一行文件。将您的文件存储在GCS中,并设置一个管道,以便使用TextIO逐行读取它们。然后使用自定义ParDo处理每一行并解析它。然后将其传递给BigQueryIO以将其写入表中

如果要使用xls文件,则可能需要使用和调用库来解析xls文件

您可能希望将数据存储在BigQuery中。你可以用这个


Java通常要快一点,但要处理的数据量似乎不是很大。因此,如果您愿意,可以使用Python,我不希望在这种情况下有显著的区别。

我实际上在考虑使用Google Cloud SQL,因为电子表格看起来像关系表。有一个问题要问你:文件只会被上传到数据流处理,但当数据进入数据库后,就不再需要它们了。在这种情况下,是否仍需要存储?是否有其他选择?存储在GCS中的文件?是的,一旦您处理了它们并将它们放入数据库中,您就不再需要它们了,并且可以与数据库交互。在成功完成管道运行并验证输出后,您可以随意删除它们。如果出于某种特殊原因,某些用户希望重新运行管道,则会保留这些文件。如果希望在数据流中再次处理它,则需要运行一个从CloudSQL读取的管道。但是在dataflow SDK中,现在对读取BigQuery有了更多的支持。Beam有一个用于sql的JDBCIO源,但没有数据流。