-
Notifications
You must be signed in to change notification settings - Fork 255
MongoDB Reader
Sun Jianbo edited this page Aug 3, 2017
·
8 revisions
MongoDB reader 是logkit提供的从MongoDB读取数据的配置方式。
"reader":{
"mongo_host":"localhost:27017",
"meta_path":"./meta",
"mode":"mongo",
"mongo_database":"app123",
"mongo_collection": "collection1",
"mongo_offset_key":"_id",
"mongo_cron":"00 00 04 * * *",
"mongo_exec_onstart":"true",
"mongo_filters":"{\"foo\": {\"i\": {\"$gt\": 10}}}",
"mongo_cacert": "/path/to/cert.pem"
},
- MongoDB reader 输出的是json字符串,需要使用json的parser解析。
-
mongo_host
必填 是mongodb的url地址,基础的是mongo的host地址以及端口,扩展形式可以写为:mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
,用户名密码也可以写在这里。 -
meta_path
是reader的读取offset的记录路径,记录mongo读取时的Offset,路径必须是一个文件夹。 -
mode
是读取方式,使用MongoDB Reader必须填写mongo
。 -
mongo_database
mongo的数据库名称 -
mongo_collection
mongo的表名 -
mongo_offset_key
指定一个mongo的列名,作为offset的记录,类型必须是整型(比如unixnano的时间,或者自增的primary key)。 每次查询会指定这个key做where条件大于上次查询最后的记录
这样的限制,避免单次查询性能消耗过大,同时也支持持续的数据导入过程中避免数据重复。 若不指定,则使用mongo的_id
键,_id
键是由时间戳(秒)+机器+进程号+自增位组成的,在低频数据写入的情况下是自增的,在多机器组成的mongo集群高并发写入的情况下,_id
不是自增的,存在漏数据的可能。 默认使用_id
,也保证了在纯粹从静态的mongo数据库导入pandora过程中,若重启logkit不会导致数据重复。 -
mongo_cron
定时任务触发周期,支持两种写法。- crontab的写法,类似于
* * * * * *
,对应的是秒(0~59
),分(0~59
),时(0~23
),日(1~31
),月(1-12
),星期(0~6
),填*号表示所有遍历都执行。 - 描述式写法,类似于"@midnight", "@every 1h30m",必须
@
符合开头,目前支持@hourly
,@weekly
,@monthly
,@yearly
,@every <time duration>
- crontab的写法,类似于
-
mongo_exec_onstart
true
表示启动时执行一次,以后再按cron处理;false
则表示到cron预设的时间才执行,默认为true。 -
mongo_filters
表示collection的过滤规则,最外层是collection名称,里面对应的是json的规则。如示例所示,表示foo
这个collection,i
字段的值大于10的全部数据。 -
mongo_cacert
存放mongo的鉴权证书,目前暂时不支持
快速开始 | Pandora | Readers | Parsers | Senders | Download | 七牛智能日志管理平台 | logkit-pro专业版