数据库接入
被集成系统提供DB访问的配置信息,由平台定时请求的方式采集需要集成得数据,以逐条记录的方式传递给处理规则,并通过规则处理后,保存入平台。
# database
[DatabaseInput]
type = "DatabaseInput"
poolsize = 2
domain = "test"
# test databased
[TestDatabasedInput]
type = "ProcessInput"
splitter = "split_n"
stdout = true
stderr = true
is_daemon = true
[TestDatabasedInput.command.0]
bin = "./databased"
directory = "/opt/matrix/var/test/databased"
args = ["-etcd", "/matrix/apps/collector/databased/config.json","-name", "databased_wecise_test", "-debug"]
[TestDatabasedOutput]
type = "LogOutput"
use_global_logger = false
console = false
server_log_name = "databased_wecise"
server_log_type = "daemon"
server_log_keyspace = "matrix"
message_matcher = "Logger == 'TestDatabasedInput'"
encoder = "PayloadEncoder"
[!NOTE]
配置文件支持存放在ETCD上,也支持存放在操作系统的文件系统里
示例
/matrix/apps/collector/databased/config.json
{
"rule": "/matrix/rules/test/omni",
"rulemode": "eachone",
"perfrule": "/matrix/rules/test/omniperf",
"perfmode": "eachone",
"domain": "test",
"dbs": [
{
"dbname": "wecise_mysql_test",
"type": "mysql",
"ip": "127.0.0.1",
"port": 3306,
"db": "test_db",
"user": "",
"password":""
},
{
"dbname": "wecise2_oracle_test",
"type": "oracle",
"ip": "127.0.0.1",
"port": 1521,
"db": "XE",
"user": "sys",
"password":"1qaZ2wsX",
"options": {
"DBA PRIVILEGE": "SYSDBA"
}
}
],
"sqls": [
{
"enable": true,
"dbname": "wecise_mysql_test",
"sqlname": "testtable",
"sql": "select id, name, deptId, salary from npm where id >
$id.last and name = 'testusera' limit 10",
"initvar": {
"id": 0
},
"timeout": 10,
"poll": 10,
"failureretests": 0,
"retestinterval": 0,
"description": "Test mysql task"
},
{
"enable": true,
"dbname": "wecise_mysql_test",
"sqlname": "testtable2",
"sql": "select id, name, deptId, salary from npm where id > $id.max
and name = 'testuserc' limit 10",
"initvar": {
"id": 0
},
"timeout": 10,
"poll": 10,
"failureretests": 0,
"retestinterval": 0,
"description": "Test mysql task2"
},
{
"enable": true,
"dbname": "wecise2_oracle_test",
"sqlname": "testtable3",
"sql": "SELECT person_id, first_name, last_name FROM test_persons
WHERE person_id > $person_id.last",
"initvar": {
"id": 0
},
"timeout": 10,
"poll": 10,
"failureretests": 0,
"retestinterval": 0,
"description": "Test oracle task"
}
]
}