You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Code

https://github.com/apache/incubator-eagle/tree/master/eagle-core/eagle-query/eagle-storage-jdbc

Configuration

  • eagle.storage.type: jdbc
  • eagle.storage.adaptermysql mysql oracle postgres mssql hsqldb derby
  • eagle.storage.username
  • eagle.storage.password
  • eagle.storage.database
  • eagle.storage.connection.url
  • eagle.storage.connection.props
  • eagle.storage.driver.class
  • eagle.storage.connection.max

Sample:

eagle.storage.type=jdbc
eagle.storage.adapter=mysql
eagle.storage.username=eagle
eagle.storage.password=eagle
eagle.storage.database=eagle
eagle.storage.connection.url=jdbc:mysql://localhost:3306/eagle
eagle.storage.connection.props=encoding=UTF-8
eagle.storage.driver.class=com.mysql.jdbc.Driver
eagle.storage.connection.max=8

Rowkey

We simply use UUID as row key of entities and use the key as the primary key named "uuid" in RDBMS table schema.

Features

  • Support basic entity operation like CREATE, READ, UPDATE and DELETE
  • Support flatten aggregation query
  • Support customized entity field type (JdbcEntityDefinitionManager#registerJdbcSerDeser)

Dependencies

 

Table DDL

  • alertdatasource
    create table alertdatasource_alertdatasource(uuid varchar(100), timestamp bigint, enabled bool, config varchar(100), description varchar(100), site varchar(10),datasource varchar(10));
    insert into alertdatasource_alertdatasource (uuid, timestamp, enabled, config, description, site, datasource) values("uuid-1", 0, 1,'testconfig','testdesc','testsite','testsource');
  • alertstream
    create table alertstream_alertstream(uuid varchar(100), timestamp bigint, datasource varchar(100), streamname varchar(100), description varchar(200));
    insert into alertstream_alertstream(uuid, timestamp, datasource, streamname, description) values("uuid-1",  0, 'testsource', "teststream", "testdesc")
  • alertdef
    create table alertdef_alertdef(uuid varchar(100), timestamp bigint, site varchar(100), datasource varchar(100), alertexecutorid varchar(100), policyid varchar(100), policytype varchar(100), description varchar(200), policydef varchar(1000), dedupedef varchar(1000), notificationdef varchar(1000), remediationdef varchar(1000), enabled bool, owner varchar(100), lastmodifieddate bigint, severity bigint, createdtime bigint)

 

TO-DO

  • Support time-series based aggregation
  • Investigate why writing performance becomes slower as records count in table increases
  • Implement batch insert in JdbcEntityWriterImpl
  • Implement DDL Management to generate default table schema DDL according entity definition
  • No labels