【发布时间】:2021-04-15 15:45:54
【问题描述】:
我想要达到的目标:
将每小时传入的数据文件从几个不同的源传输到位于计算引擎 VM 上的 SFTP 文件服务器上,并以经济高效的方式进行实时更新。
上下文:
-
我尝试从中导入数据的软件是旧版软件,不支持直接导出到云。因此,从软件直接连接到云不是一种选择。
-
但它确实支持将数据导出到 SFTP 服务器。不能直接通过任何 GCP 工具获得。
-
因此,我在具有可扩展存储的计算引擎 VM 实例上使用
vsftpd设置了手动 SFTP 服务器,然后为其提供静态 IP 并将该 IP 硬连线到我的软件中。数据现在每隔一小时无缝地到达计算引擎实例。 -
文件按小时生成。因此每个小时都有一个不同的文件。但是它们可能包含一些重复。即前一小时文件的一些结束记录可能与当前小时文件的开头重叠。
-
文件来自不同的源提要,我在文件名中有提要名称,因此我的计算引擎 VM 实例上不断增长的数据如下所示:
feed1_210301_0500.csv feed2_210301_0500.csv feed3_210301_0500.csv feed1_210301_0600.csv feed2_210301_0600.csv feed3_210301_0600.csv feed1_210301_0700.csv feed2_210301_0700.csv feed3_210301_0700.csv ...
我尝试过的:
- 我已在 VM 实例中设置 Bigquery 访问权限和云存储权限,以便将数据从 VM 实例访问到 BigQuery:
-
我尝试将数据直接导入 BigQuery 以及在谷歌云存储上从那里导入数据,但没有选项可以直接将数据从 VM 实例导入 BigQuery,我也无法以某种方式将数据从 VM 导入 GCS,然后再导入加载到 BigQuery 中,但没有选择,文档也没有提及计划传输的问题。
-
有一些外部数据传输服务,例如 Fivetran 和 HevoData,但它们相对昂贵,而且似乎有点矫枉过正,因为我的源或目标都在 GCP 上,与拥有第三个服务没有太大区别虚拟机并为导入安排一些脚本。 (顺便说一句,我目前的解决方法是:D 即使用 python 脚本将数据流式传输到 BigQuery 中,如 here 所述)
-
目前我正在探索DataFusion,它每个月只有 120 小时免费,基础Dataprep 管道需要额外费用,并且不确定它是否正确。此外,我目前正在探索Cloud Scheduler 和Cloud Composer 之类的工具,看看是否有适合我的数据需求的工具,但目前还没有找到可行的解决方案。
我很高兴学习任何新的工具和技术,任何改善这种情况的建议也值得赞赏。
【问题讨论】:
标签: google-cloud-platform google-bigquery scheduled-tasks sftp