完整配置
{
"extends": ["extends.json"],
"imports": {},
"sources": {},
"name": "demo",
"input": "<<&.data.demo.json::_id",
"output": ">>&.stdio.&1::site_id use I",
"databases": [
{
"name": "stdio",
"driver": "textline"
},
{
"name": "data",
"driver": "json",
"path": "./examples/demo/data"
}
],
"logger": {},
"querys": {
"start_date": {">=": "2021-01-01"}
},
"defines": {},
"variables": {},
"schema": {
"id": "$.id"
},
"pipelines": [],
"dependency": []
}
extends
载入外部子配置文件,相同配置会覆盖当前配置。
type: Array[filename]
例:
extends: ["/data/json/log.json", "database.json"]
imports
声明直接导入python package,导入后会自动注册为计算器,通过该方式可以直接调用python编写的函数。
type: Object{name: packagename}
例:
imports: {
"math": "math"
}
使用:
schema: {
"sin2": ["@math::sin", 2]
}
sources
声明预处理文件信息,通过预处理文件可把配置文件的部分信息编写在单独文件中,配置文件载入时会用该文件内容替换对应位置,如可把database raw sql写在单独文件中。
type: Object{name: filename}
例:
imports: {
"order": "sql/order.sql"
}
使用:
databases: [{
"name": "test",
"virtual_views": [{
"name": "order",
"query": "%order", /* 配置文件载入时会自动用sql/order.sql内容替换该处值 */
"args": []
}]
}]
name
配置名称。
type: String
input
数据输入源。
type: String
structure: &.[databasename].[tablename]::[primary_key]
例:
input: "&.json.order.json::id" /* 从数据库json定义的目录中读入order.json文件内容 */
output
数据输出源。
type: String
structure: &.[databasename].[tablename]::[primary_key]
例:
output: "&.json.order.json::id" /* 数据输出到数据库json定义的目录的order.json文件中 */
output: "&.stdio.&1::id" /* 控制台输出 */
databases
数据源定义。
type: Array[Object{
name: dataname,
driver: drivername,
**[database driver params]
/* 数据库连接参数请阅读数据库适配 */
}]
例:
databases: [
{
"name": "stdio",
"driver": "textline"
},
{
"name": "data",
"driver": "json",
"path": "./examples/demo/data"
}
]
详细请查看数据库配置说明。
logger
日志配置,和python内置logging配置格式相同,请自行阅读python logging文档。
arguments
定义外部输入参数,querys定义的查询条件会自定加入外部查询参数,命令行执行时即为定义命令行参数。
type: Object{
name: Object{
type: argument_type,
default: default_value #可选
help: help_message #可选
... #命令行时其余参数请查看 https://docs.python.org/3/library/argparse.html 文档
}
}
例:
arguments: {
"status": {
type: int,
default: 0,
help: "订单状态(默认值:0)"
}
}
querys
数据数据查询条件,默认自动加入arguments。
type: Object
例:
querys: {
"start_date": {">=": "2021-01-01"}
}
querys: {
"m_created_at|datetime": {">=": ["@now|str %Y-%m-%d 22:00:00", "-3d"], "<": ["@now|str %Y-%m-%d 22:00:00"]},
"date|datetime": {">=": ["@now|str %Y-%m-%d 22:00:00", "-3d"], "<": ["@now|str %Y-%m-%d 22:00:00"]}
}
defines
variables
states
caches
schema
输出数据格式定义。
type: Object
例:
schema: {
"id": "$.id"
}