Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
project-collie
project-collie
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 5
    • Issues 5
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 2
    • Merge requests 2
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • granite
  • project-collieproject-collie
  • Wiki
    • Data_pump
    • Readers
  • sql

sql · Changes

Page history
增加pack的说明 authored Apr 26, 2020 by 吴一博's avatar 吴一博
Hide whitespace changes
Inline Side-by-side
Showing with 88 additions and 1 deletion
+88 -1
  • data_pump/readers/sql.md data_pump/readers/sql.md +88 -1
  • No files found.
data_pump/readers/sql.md
View page @ 32105786
> 从mysql数据库中读取 ## 从mysql数据库作为数据输入源
**class**参数配置为```sql.SqlDocReader``` **class**参数配置为```sql.SqlDocReader```
### init 参数
|配置参数|子项|说明|
|----|----|----|
|db||数据库配置|
|query| |查询条件配置|
| |table|要查询的数据库表名|
| |columns|查询返回的字段列表|
| |order_by|返回结果排序的字段|
| |limit|返回结果的条数|
| |condition|查询条件|
| |query_sql|完整的查询sql语句, 语句需必需包含占位符 $CONDITIONS。 |
| |pack|关联查询子表,并将子表记录以数据形式存放在结果数据的指定字段中|
|offset|查询偏移记录|
#### 查询参数(query)
数据筛选的行为可能通过参数query_sql指定完整的SQL语句或分别指定 table, columns,condition等参数进行配置。
当指定了query_sql参数,table,columns,condition,order_by, limit等参数将被忽略。
##### 完整查询语句 (query_sql)
查询语句的Where子句中必需包含占位符 $CONDITIONS。
$CONDITIONS 可被认为是一个条件表达式, 且它应该与SQL其它条件以 AND 连接。
##### 关联查询(pack)
该功能用于将主表与关联子表数据一起查出。如: 将如下表的记录,进行关联查询,并打包为一条数据:
tb_team
|id|name|
|----|----|
|1|marvel|
tb_members
|id|team_id|member_name|
|----|----|----|
|1|1|Iron Man|
|2|1|Spider Man|
打包后的数据为:
```json
{
"id": 1,
"name": "marvel",
"members": [
{
"id": 1,
"team_id": 1,
"member_name": "Iron Man"
},
{
"id": 2,
"team_id": 1,
"member_name": "Spider Man"
}
]
}
```
所需的配置如下:
```yaml
pack:
- name: "members"
table: "tb_members"
join_on:
left: "id"
right: "team_id"
columns:
- id
- team_id
- member_name
```
|配置参数|说明|
|----|----|
|name|打包后数据的字段名|
|table|关联的子表名称|
|join_on|关联查询所使用的关联字段. left: 主表字段名, right: 子表字段名|
|columns|查询返回的字段列表|
##### 查询参数(query)
示例: 示例:
```yaml ```yaml
sql_qichacha_push: sql_qichacha_push:
...@@ -31,6 +116,8 @@ sql_qichacha_push: ...@@ -31,6 +116,8 @@ sql_qichacha_push:
field: id field: id
store: "file:///home/collie/project-collie/offset_company_lawsuit.txt" store: "file:///home/collie/project-collie/offset_company_lawsuit.txt"
``` ```
* **db**: mysql数据库连接配置 * **db**: mysql数据库连接配置
* **query**: 查询条件,支持直接完整sql语句、指定表名和列名两种方式 * **query**: 查询条件,支持直接完整sql语句、指定表名和列名两种方式
1. 完整sql语句 1. 完整sql语句
......
Clone repository
  • README
  • data_pump
    • data_pump
    • filters
    • filters
      • bloom
    • readers
    • readers
      • file
      • kafka
      • mongodb
      • sql
    • writers
    • writers
      • file
  • dev_guide
  • dev_manual
  • Home
  • ops
    • ansible
View All Pages