Sql 源
流扫描表查询表
NeuronEX 数据处理模块通过 SQL
类型的数据源,支持对接sqlserver
、postgres
、mysql
、sqlite3
和oracle
等数据库,可以定期查询数据库以获取数据流。
创建流
登录 NeuronEX,点击数据处理 -> 源管理。在流管理页签,点击创建流。
在弹出的源管理 / 创建页面,进入如下配置:
流名称:输入流名称
是否为带结构的流:勾选确认是否为带结构的流,如为带结构的流,则需进一步添加流字段。可默认不勾选。
流类型:选择 SQL
配置组:可编辑使用默认配置组,或点击添加配置组,在弹出的对话框中进行如下设置,设置完成后,可点击测试连接进行测试:
- 名称:输入配置组名称。
- 数据库地址:数据库的连接地址,各类数据库的详细配置请参考 数据库连接地址 。
- 间隔时间:发出查询的时间间隔(毫秒)。
- TemplateSql:SQL 语句模板,详见SQL 语句模板示例。
- indexField:可选参数,表的哪一列作为索引来记录偏移量。
- indexValue:可选参数,初始索引值,如果用户指定该字段,查询将使用这个初始值作为查询条件,当获得更大的值时将更新下一个查询。
- indexFieldType:可选参数,索引字段的列类型,如果是 dateTime 类型,必须将该字段设置为 DATETIME。
- dateTimeFormat:可选参数,索引字段的时间格式。
流格式:默认 json 格式。
共享:勾选确认是否共享源。
数据库连接地址
数据库连接地址参考:
database | url sample |
---|---|
mysql | mysql://username:password@127.0.0.1:3306/testdb?parseTime=true |
sql server | sqlserver://username:password@127.0.0.1:1433/testdb |
postgres | postgres://username:password@127.0.0.1:5432/testdb |
oracle | oracle://username:password@127.0.0.1:1521/testdb |
sqlite | sqlite:/tmp/test.db |
SQL 语句模板示例
通过单独使用
TemplateSql
配置项,获取数据库数据。TemplateSql输入:
sqlselect top 10 * from Student where id > 1010 order by id ASC
向数据库执行的输出:
sqlselect top 10 * from Student where id > 1010 order by id ASC
通过
TemplateSql
配置项和indexField
、indexFieldType
、indexValue
组合使用,获取数据库数据。indexField 输入:
stun
indexFieldType 输入:
INT
indexValue 输入:
100
TemplateSql 输入:
sqlselect * from Student where stun > {{.stun}} limit 10
向数据库执行的输出:
sqlselect * from Student where stun > 100 limit 10
TIP
该配置方式,支持对数据库中的数据进行增量查询,即每次查询时,会将上次查询的
indexField
最大值作为查询条件,查询出大于该值的数据。通过
TemplateSql
配置项和indexField
、indexValue
、indexFieldType
、dateTimeFormat
组合使用,获取数据库数据。indexField输入:
registerTime
indexValue输入:
2022-04-21 10:23:55
indexFieldType:
DATETIME
dateTimeFormat:
YYYY-MM-dd HH:mm:ss
TemplateSql输入:
sqlselect * from Student where registerTime > '{{.registerTime}}' order by registerTime ASC limit 10
向数据库执行的输出:
sqlselect * from Student where registerTime > '2022-04-21 10:23:55' order by registerTime ASC limit 10
TIP
该配置方式,支持对数据库中的数据进行增量查询,即每次查询时,会将上次查询的
indexField
最大值作为查询条件,查询出大于该值的数据。
创建扫描表
请参考创建流部分。
创建查询表
SQL 源支持成为一个查询表。我们可以使用创建表语句来创建一个 SQL 查询表。它将与实体关系数据库绑定并按需查询。
- cache: bool 值,表示是否启用缓存。
- cacheMissingKey:是否对空值进行缓存。
- cacheTtl: 缓存的生存时间,单位是秒。
查询外部数据库比在内存中计算要慢。如果吞吐量很高,可以使用查找缓存来提高性能。如果不启用查找缓存,那么所有的请求都被发送到外部数据库。当启用查找缓存时,每个查找表实例将持有一个缓存。当查询时,我们将首先查询缓存,然后再发送到外部数据库。