首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从oracle数据库中提取数据并保存到Google云平台

如何从oracle数据库中提取数据并保存到Google云平台
EN

Stack Overflow用户
提问于 2019-11-17 13:34:32
回答 3查看 1.7K关注 0票数 0

需要从oracle数据库中提取数据并存储在Google云平台中。数据大小约为10 TB。有没有可能通过Spark?数据必须每月传输一次。在GCP中存储和处理的数据如下:

Oracle数据库到云存储(不必做CSV导出),然后它将是干净的,并准备在Dataprep中,这将通过数据流进一步处理,最后它将被存储在Big Query下(从大查询数据科学家将使用数据来创建他们的模型)。

在此过程中不能使用第三方工具。任何开源工具都是允许的。

我正在考虑从spark中提取数据(通过将DataProc用于spark作业),并将其存储在GCP (任何一个云存储或大表或大查询)中。通过云sql -这是不可能的,因为它不支持oracle数据库。

如果我上面的逻辑是错误的,任何新的架构也是可以的。请提个建议。谢谢。

EN

回答 3

Stack Overflow用户

发布于 2019-11-17 20:39:13

你的架构听起来不错。只有一些建议:

  • 如果您从spark job查询数据库,同时执行转换,则会增加网络中断的风险和恢复处理的困难(请参阅下面的内容)
  • 模式:云存储->数据流-> BigQuery非常适合批处理,就像您一样,每月一次。
  • 云SQL无法满足您的需求(不支持oracle,数据库限制为10TB)
  • BigQuery与Oracle功能不匹配(如云SQL引擎(MySQL和PostGre),函数、存储过程、查询的方言不同...)但它是it级的数据库。专为分析而设计(不要期望网站使用的响应时间以毫秒为单位,例如,查询至少需要1秒)数据音频数据可视化的->例外,您可以插入BI引擎,这是一个内存缓存,允许您加速Datastudio
  • BigTable的BigQuery查询是针对具有高吞吐量要求的时间序列而设计的;而不是您的情况,您处于批处理模式。

关于数据传输,在我看来,恢复文件传输比数据库事务更容易。

我的意思是,如果使用spark查询Oracle数据库并执行所需的提取/转换,并且发生连接故障,则整个过程可能会失败并重新启动。或者你必须实现很多智能工程来处理这类问题。

另一方面,如果您有本地执行的文件和Oracle数据库的提取,那么使用gsutil很容易恢复这些传输。此外,您可以在本地查询数据库,这比通过网络查询更有效。要提高10TB文件的文件传输性能,您可以查看this video中的大文件;如果是您的情况,本系列中还有其他关于小文件的视频。

票数 0
EN

Stack Overflow用户

发布于 2020-01-11 01:01:55

希望我的回复不会太晚,但不管怎样,我会把它贴出来的。

您也许能够减少您提到的一些步骤,但这完全取决于数据转换的细节。有太多的可能性要列出,但我认为您正在寻找一组可供选择的选项。如果您仍在调查选项,请参阅下面的内容。

  • 我找到了一篇介绍如何从Oracle OLTP迁移到扳手或从OLAP迁移到BigQuery的this文章。这里有一个完整的工作流,它太长了,不能在这里列出。此外,this文章还在页面顶部显示了常规传输选项,如“在线传输”、“传输服务”、“传输设备”和"Bigquery数据传输服务“。页面的其余部分提供了有关如何根据数据量和吞吐量选择正确服务的信息。

如果还不算太晚,我希望上面的内容能为您指明正确的方向。

票数 0
EN

Stack Overflow用户

发布于 2020-01-21 02:09:47

下面的链接显示您可以使用Cloud Dataflow从Oracle数据库直接读取到BigQuery。如果您想执行任何ETL,您可能需要在两者之间添加更多的步骤。

https://github.com/rrakesh2690/dataengineering

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58897814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档