我需要每小时从 dmp 文件中读取数据以创建仪表板,这是获取数据的唯一方法,并且我没有使用 oracle 的经验,从 Python 读取数据需要哪些步骤?
2 回答
来自评论:
我们无权访问主数据库
这是一个XY 问题;因为您无权访问您尝试读取转储文件的数据库。解决方案不应该是读取转储文件,而应该是与 DBA 和数据库所有者交谈并获得对数据库的访问权限(即使它只是对数据库的读取访问权限)。
如果您无法访问数据库,那么您应该问,是否应该允许我访问备份?答案可能是否定的,如果不允许您访问主数据库中的实时数据,那么您不应该被允许靠近灾难恢复所需的备份,并且可能包含没有访问控制的数据实时数据库将适用。
如果允许您使用备份,则:
- 创建一个新的数据库实例。
- 从备份中恢复数据库。
- 将您的 python 代码连接到该新实例。
- 与 DBA 交谈,以后让他们跳过步骤 1 和 2 并设置一个副本数据库,其中所有更改都从主数据库推送到您的副本,而无需经历备份和恢复周期。
另一方面,我不知道 Python。
但是:.dmp 文件是 Oracle 数据泵导出的结果(可能;除非您使用了原始的EXP 实用程序)。可以使用 Import 实用程序读取它们(然后将其导入 Oracle 数据库)。由于 .dmp 文件不是文本文件,因此您不能只是“阅读”它们;它们的格式是专有且未记录的,所以... YMMV。
也许您想检查Intelligent Converters;他们说他们
研究了 Oracle 转储格式并发布了一组工具,用于读取数据并将数据导出到最流行的数据源。这是 OraDump 导出工具包,用于将 Oracle 转储文件转换为 Microsoft SQL、Microsoft Access、Microsoft Excel、MySQL 和 CSV 的产品。它直接从转储文件中读取,因此不需要 Oracle 组件。
它不是免费的;目前,起价为 149 美元。
此外,即使您选择了它(或任何其他能够读取 .dmp 文件的工具),其结果仍然是另一个文件;比方说,一个 CSV - 所以您必须阅读该文件格式并创建一个仪表板。
所有这些都引出了另一个想法:例如,您为什么不使用安装在 Oracle 数据库中、直接从 Oracle 读取数据并能够创建各种网页的Oracle Application Express ?
我明白 - 如果你知道 Python,你想使用它,但是......也许它只是不适合这项任务的工具。