需要从oracle数据库中提取数据并存储在Google云平台中。数据大小约为10 TB。有没有可能通过Spark?数据必须每月传输一次。在GCP中存储和处理的数据如下:
Oracle数据库到云存储(不必做CSV导出),然后它将是干净的,并准备在Dataprep中,这将通过数据流进一步处理,最后它将被存储在Big Query下(从大查询数据科学家将使用数据来创建他们的模型)。
在此过程中不能使用第三方工具。任何开源工具都是允许的。
我正在考虑从spark中提取数据(通过将DataProc用于spark作业),并将其存储在GCP (任何一个云存储或大表或大查询)中。通过云sql -这是不可能的,因为它不支持oracle数据库。
如果我上面的逻辑是错误的,任何新的架构也是可以的。请提个建议。谢谢。
发布于 2019-11-17 20:39:13
你的架构听起来不错。只有一些建议:
关于数据传输,在我看来,恢复文件传输比数据库事务更容易。
我的意思是,如果使用spark查询Oracle数据库并执行所需的提取/转换,并且发生连接故障,则整个过程可能会失败并重新启动。或者你必须实现很多智能工程来处理这类问题。
另一方面,如果您有本地执行的文件和Oracle数据库的提取,那么使用gsutil很容易恢复这些传输。此外,您可以在本地查询数据库,这比通过网络查询更有效。要提高10TB文件的文件传输性能,您可以查看this video中的大文件;如果是您的情况,本系列中还有其他关于小文件的视频。
发布于 2020-01-11 01:01:55
希望我的回复不会太晚,但不管怎样,我会把它贴出来的。
您也许能够减少您提到的一些步骤,但这完全取决于数据转换的细节。有太多的可能性要列出,但我认为您正在寻找一组可供选择的选项。如果您仍在调查选项,请参阅下面的内容。
如果还不算太晚,我希望上面的内容能为您指明正确的方向。
发布于 2020-01-21 02:09:47
下面的链接显示您可以使用Cloud Dataflow从Oracle数据库直接读取到BigQuery。如果您想执行任何ETL,您可能需要在两者之间添加更多的步骤。
https://stackoverflow.com/questions/58897814
复制相似问题