简体中文 | English 一个强大的数据连接器框架,支持使用类SQL语法统一查询多种数据源,包括数据库、文件和REST API。
- 统一查询接口: 使用类SQL语法查询多样化数据源
- 多数据源支持:
- 数据库: MySQL、PostgreSQL、Oracle、ClickHouse、H2等
- 文件: CSV、Excel、JSON
- REST API: 基于jQuickCURL的HTTP请求
- 灵活字段映射: 通过字段处理器提取和转换数据
- 类型安全: 支持数据字段的强类型定义
- 上下文变量: 支持使用变量的参数化查询
SELECT
field(源字段) -> 目标字段:数据类型,
path('$.json.路径') -> json字段:string
FROM 连接器类型(
属性1: '值1',
属性2: 123,
属性3: {变量名}
)SELECT
field(id) -> cid:Long,
field(user_id) -> user_id:Long,
field(title) -> title:String,
field(content) -> content:String,
field(type) -> type:String,
field(tenant_id) -> tenant_id:Long,
field(created_time) -> created_time:Date,
field(is_deleted) -> is_deleted:Boolean
FROM MYSQL(
url: 'jdbc:mysql://localhost:3306/database',
username: 'root',
password: 'password',
sql: 'select * from business_activity',
driver: 'com.mysql.jdbc.Driver'
)SELECT
field(id) -> id:Long,
field(name) -> name:String,
field(age) -> age:Integer,
field(salary) -> salary:Double,
field(is_active) -> is_active:Boolean,
field(birth_date) -> birth_date:Date
FROM CSV(
filepath: 'D:/data/data.csv',
split: ',',
header: 'true'
)SELECT
field(id) -> id:string,
field(name) -> name:string,
path('$.manager.title') -> title:string,
field(manager) -> manager:object
FROM JSON(
filepath: 'D:/data/data.json',
searchPath: '$.departments'
)SELECT
field(projectId) -> projectId:string,
field(projectName) -> projectName:string,
field(projectStage) -> projectStage:object
FROM CURL(
curl: `curl -X GET 'http://api.example.com/data' -H 'User-Agent: Mozilla/5.0'`,
searchPath: '$.data'
)SELECT
field(is_active) -> is_active:boolean,
field(birth_date) -> birth_date:date,
field(name) -> name:string,
field(id) -> id:Long,
field(salary) -> salary:double,
field(age) -> age:integer
FROM excel(
filepath: 'D:/data/data.xlsx',
sheet: 'Sheet1',
header: 'true'
)SELECT
path('$.attributes.id[0]')->id:Long,
path('$.user.name[0]')->name:string,
path('$.user.email[0]')->email:string,
path('$.user.age[0]')->age:string,
path('$.user.department[0]')->department:object
path('$.user.salary[0]')->salary:object
path('$.user.hireDate[0]')->hireDate:object
FROM XML(
filepath: 'D:\my\jquick-connector\src\test\resources\file\user.xml',
searchPath: '$.users'
)SELECT
field(name)->name:string,
field(age)->age:Long,
field(email)->email:string
FROM Redis(
host: '127.0.0.1',
port: 6379,
password: '',
database: 0,
redisKey: 'user:1'
)SELECT
path('$.database.username')->username:string,
path('$.app.version')->name:string,
path('$.database.url')->email:string,
path('$.database.username')->age:string,
path('$.database.password')->department:object
path('$.server.port')->salary:object
path('$.logging.level')->hireDate:object
FROM PROPERTIES(
filepath: 'D:\idea\jquick-connector\src\test\resources\file\config.properties',
searchPath: '$'
)SELECT
path('$.app.name')->name:string,
path('$.app.version')->version:string
FROM YAML(
filepath: 'D:\idea\jquick-connector\src\test\resources\file\config.yml',
searchPath: '$'
)SELECT
path('$.database.username')->username:string,
path('$.app.version')->name:string,
path('$.database.url')->email:string,
path('$.database.username')->age:string,
path('$.database.password')->department:object
path('$.server.port')->salary:object
path('$.logging.level')->hireDate:object
FROM PROPERTIES(
filepath: 'D:\idea\jquick-connector\src\test\resources\file\config.properties',
searchPath: '$'
) ```sql
SELECT field(id) -> b:Integer, field(c) -> b:Integer FROM MYSQL( url: 'localhost', port: 3306, database: 'user_db', sql: 'select * from a', username: {db_user}, password: {db_password} )
### 数据类型
支持的数据类型包括:
- Integer - 整数
- Long - 长整数
- Float - 浮点数
- Double - 双精度浮点数
- String - 文本数据
- Boolean - 布尔值
- Date - 日期时间值
- Object - 复杂对象(JSON)
### 字段处理器
#### Field 处理器
从扁平结构中提取数据(数据库列、CSV 字段),语法格式:
```sql
field(列名) -> 目标字段:数据类型
从扁平结构中提取数据(数据库列、CSV 字段),语法格式:
field(列名) -> 目标字段:数据类型| 连接器类型 | 处理器类 | 必需参数 | 可选参数 |
|---|---|---|---|
| MySQL | MySqlConnectorHandler | url, username, password, sql | driver, database, port |
| PostgreSQL | PostgreSQLConnectorHandler | url, username, password, sql | driver, database, port |
| Oracle | OracleConnectorHandler | url, username, password, sql | driver, serviceName, port |
| ClickHouse | ClickHouseConnectorHandler | url, username, password, sql | driver, database, port |
| H2 | H2ConnectorHandler | url, username, password, sql | driver |
| DB2 | DB2ConnectorHandler | url, username, password, sql | driver, database, port |
| Derby | DerbyConnectorHandler | url, username, password, sql | driver |
| Hive | HiveConnectorHandler | url, username, password, sql | driver, database |
| Impala | ImpalaConnectorHandler | url, username, password, sql | driver, database |
| 金仓 | KingBaseConnectorHandler | url, username, password, sql | driver, database, port |
| SQLite | SQliteConnectorHandler | url, sql | driver |
| Sybase | SysbaseConnectorHandler | url, username, password, sql | driver, database, port |
| 达梦 | DaMengConnectorHandler | url, username, password, sql | driver, database, port |
| Informix | InfomixConnectorHandler | url, username, password, sql | driver, database, port |
| 连接器类型 | 处理器类 | 必需参数 | 可选参数 |
|---|---|---|---|
| REDIS | RedisConnectorHandler | host ,port |
文件连接器
| 连接器类型 | 处理器类 | 必需参数 | 可选参数 |
|---|---|---|---|
| CSV | CsvConnectorHandler | filepath | split, header, encoding |
| Excel | ExcelConnectorHandler | filepath | sheet, header, startRow |
| JSON | JsonConnectorHandler | filepath | searchPath, encoding |
| XML | XmlConnectorHandler | filepath | searchPath, encoding |
| YAML | YMLConnectorHandler | filepath | searchPath, encoding |
| Properties | PropertiesConnectorHandler | filepath | searchPath, encoding |
| 连接器类型 | 处理器类 | 必需参数 | 可选参数 |
|---|---|---|---|
| CURL | CurlConnectorHandler | curl | searchPath |