我可以使用nxlog(om_dbi)将数据插入PostgreSQL。
但是我无法使用nxlog从PostgreSQL中选择数据(或获取数据)。我尝试了很多选择没有任何工作。
并且在nxlog文件中也为IM_DBI模块描述只有" FIXME"提及。
文档链接:http://nxlog.org/documentation/nxlog-community-edition-reference-manual-v20928#im_dbi
请帮我解决这个问题。
日志:
<Input dbiin>
Module im_dbi
SavePos TRUE
SQL SELECT * FROM NEW_TABLE
Driver pgsql
Option host 127.0.0.1
Option username chitta
Option password ''
Option dbname db
</Input>
2014-10-16 14:29:17 WARNING nxlog-ce received a termination request signal, exiting...
2014-10-16 14:29:18 INFO nxlog-ce-2.8.1248 started
2014-10-16 14:29:18 ERROR im_dbi failed to execute SQL statement. ERROR: column "id" does not exist;LINE 1: SELECT * FROM NEW_TABLE WHERE id = 1;
Note:
the module will automatically prepends a "WHERE id > %d" clause.
答案 0 :(得分:2)
不是答案,但这里有一些帮助。
缺少最重要的指令:SQL选择ID作为id, DateOccured为EventTime,来自logtable的数据
来源:https://www.mail-archive.com/nxlog-ce-users@lists.sourceforge.net/msg00225.html
我目前在同一条船上。我的假设是你的数据没有以nxlog可以解释的方式格式化。故障排除,如果我能找到解决方案,将会回复您。
还要深入了解im_dbi模块的源代码。
https://github.com/lamby/pkg-nxlog-ce/blob/master/src/modules/input/dbi/im_dbi.c
答案 1 :(得分:0)
SoMuchToGrok的答案是有效的。 实际上问题已经存在:“错误:列”id“不存在”。 该表必须包含 id 列,或者您必须使用 SELECT x作为ID ,以便结果集中包含 id