-1

对我的状况和问题的解释

我觉得这有点太复杂了,可能是因为我不熟悉这个活动和 LINUX 的世界。

  1. 所以我在我的电脑(WINDOWS 7)上,然后我需要创建一个基于 sql 的报告站点,但我需要的数据还没有在 oracle 中。
  2. 我需要在 oracle sql 中查看来自另一个控制器 -> 另一台 PC (UNIX) 的许多文件的数据。
  3. 文件的格式最初是 .gz 但实际上它的 FILE FORMAT 就像这个 machinedump.log.gz05052012 (它仍然是 .gz -> 里面是一个 .log 但仍然是一个 .txt 内容)

注意:我连接的控制器/个人计算机有用户名、密码和端口号。

在每个 .log.gz 数据中,它都有如下数据:

20120806_161944: 08.06 16:17:29.574 t_cm_03 C3011099140000 at_sts       =    0 
20120806_161944: 08.06 16:17:29.574 t_cm_03 C3011099140000 at_sts       =    1
20120806_161944: 08.06 16:17:29.574 t_cm_03 C3011099140000 at_sts       =    2
20120806_161944: 08.06 16:17:29.574 t_cm_03 C3011099140000 at_sts       =    3
20120806_161944: 08.06 16:17:29.574 t_cm_03 C3011099140000 at_sts       =    4 
20120806_161944: 08.06 16:17:29.574 t_cm_03 C3011099140000 at_sts       =    5
20120806_161944: 08.06 16:17:29.574 t_cm_03 C3011099140000 at_sts       =    6
20120806_161944: 08.06 16:17:29.574 t_cm_03 C3011099140000 at_sts       =    7

但我也看到了一个更大的问题:MACHINEDUMP.LOG.GZ 文件很多像:

machinedump.log.gz05052012
machinedump.log.gz05062012
machinedump.log.gz05072012
machinedump.log.gz05082012
etc.

所以这里是我的问题的问题和帮助需要:

  1. 我想问你们将这些文件内容存储到单个表中的最佳方法是什么?从那些 .LOG.GZ 文件到单个表?

  2. 关于第一个问题,是否有可能使基于“日期”的数据获取自动化?这意味着如果有一个与当前日期匹配的文件,它将执行并将这些数据保存到所需的表中?

  3. 你们有什么办法可以告诉我该怎么做吗?

  4. 另外各位,这里有什么我必须深入研究的吗?

我需要使这些数据成为使用至少 SQL(oracle 或有更好的方法)和 NETBEANS 来完成其余工作的有用且可读的报告(这些我知道)。

版主

是否可以删除我之前失败的问题?谢谢...

4

1 回答 1

1

您没有说您使用的是哪个版本的 Oracle。这很重要,因为 Oracle 在每个版本中都为其库添加了新功能。以下解决方案适用于 11.0.1.7(即 11gR1 的最后一个补丁版本)或更高版本;早期版本需要更多的争论。

但首先:

您是否需要将此信息存储在表格中?读一遍就够了吗?因为像 Oracle 这样的关系数据库并不是存储机器日志的最佳选择。有很多免费(或免费的)文档数据库可能更适合 - MongoDB、Cassandra 等。或者有专门用于此目的的 Splunk。

无论如何,在数据库中读取文件的第一种方法是在文件上构建一个外部表。这就像一个常规表,只是数据位于操作系统文件而不是表空间中。在 11gR2 中,Oracle 引入了该preprocessor子句,它允许我们将一个 shell 脚本与表相关联,该脚本在 SELECT 语句执行之前运行。这在您的情况下特别相关,因为您可以使用预处理器脚本来解压缩文件。

所以基本的工作流程是:

  1. 在一个目录中定位 GZ 文件的脚本,将其解压缩为具有标准名称的文件。
  2. 一个从标准名称文件中读取的外部表,该表将该脚本作为其预处理脚本
  3. 从外部表中选择并写入目标表的 INSERT 语句

更精确的版本将需要比您提供的有关业务规则的更多详细信息,但您应该能够自己弄清楚。

在文档中了解有关外部表的更多信息。

在此处此处阅读 Adrian Billington 关于预处理器脚本的优秀文章。

于 2013-05-15T08:28:11.447 回答