... | @@ -3,25 +3,31 @@ |
... | @@ -3,25 +3,31 @@ |
|
1.数据获取来源于官网
|
|
1.数据获取来源于官网
|
|
* 因为此前发现综合查询入口查询数据不全的情况,便选择从子入口获取不同维度数据。
|
|
* 因为此前发现综合查询入口查询数据不全的情况,便选择从子入口获取不同维度数据。
|
|
* 目前爬取的数据包括失信被执行人,限制消费人员,被执行人,终结本次案件和财产处置的询价评估
|
|
* 目前爬取的数据包括失信被执行人,限制消费人员,被执行人,终结本次案件和财产处置的询价评估
|
|
* 失信被执行人:目前业务库数据来源于第三方,我们也爬取了官网的数据,
|
|
* 失信被执行人:
|
|
|
|
目前业务库数据来源于第三方,我们也爬取了官网的数据未入业务库,
|
|
表位于bdp-ext.rwlb.rds.aliyuncs.com bdp_risk.risk_shixin_spider_find_new。
|
|
表位于bdp-ext.rwlb.rds.aliyuncs.com bdp_risk.risk_shixin_spider_find_new。
|
|
* 被执行人,限制消费人员与终结本次案件:目前业务库更新与例行都依靠从官网爬取的数据。
|
|
* 被执行人,限制消费人员与终结本次案件:目前业务库更新与例行都依靠从官网爬取的数据。
|
|
业务库中存在第三方数据,标识为update_source字段非空。
|
|
业务库中存在第三方数据,标识为update_source字段非空。
|
|
表位于bdp-rds-001.mysql.rds.aliyuncs.com utn_ng_risk
|
|
表位于bdp-rds-001.mysql.rds.aliyuncs.com utn_ng_risk
|
|
* 询价评估:处于开发阶段。
|
|
* 询价评估:处于开发阶段。
|
|
|
|
|
|
|
|
2.数据关系
|
|
|
|
* 详见 [zxgk找新说明](data_stream/risk/risk_zxgk_find_new)
|
|
|
|
* 一条名称+案号的数据先进入被执行人,再可能进入终本或失信,再可能进入限制消费。
|
|
|
|
|
|
## 数据例行与找新
|
|
## 数据例行与找新
|
|
1.例行
|
|
1.例行
|
|
* 被执行人
|
|
* 被执行人
|
|
* 通过zhixing_id进行例行。例行更新发布的zhixing_id都是use_flag为0的数据。
|
|
* 通过zhixing_id进行例行。例行更新发布的zhixing_id都是use_flag为0的数据。
|
|
表内的唯一键是对名称+案号拼接后的字符串进行md5加密生成的。
|
|
表内的唯一键是对规范处理后的名称+案号拼接后的字符串进行md5加密生成的。
|
|
zhixing_id爬取结果为1101时,标记为历史数据,即将表内use_flag置为9。
|
|
zhixing_id爬取结果为1101时,标记为历史数据,即将表内use_flag置为9。
|
|
爬取结果为1000时,进行插入或更新。
|
|
爬取结果为1000时,进行插入或更新。
|
|
* 通过pname进行例行。每天取前一天use_flag被置为9的数据中的pname发布任务。
|
|
* 通过pname进行例行。每天取前一天use_flag被置为9的数据中的pname发布任务。
|
|
这是因为同一条数据的zhixing_id会变化,为了避免误置为历史数据才发布此任务。
|
|
这是因为同一条数据的zhixing_id会变化,为了避免误置为历史数据才发布此任务。
|
|
|
|
|
|
* 终结本次案件
|
|
* 终结本次案件
|
|
* 通过zhongben_id进行例行,zhixing_id爬取结果为1101时,标记为历史数据,即将表内is_history置为1。
|
|
* 通过zhongben_id进行例行,zhixing_id爬取结果为1101时,标记为历史数据,即将表内is_history置为1。
|
|
爬取结果为1000时,进行插入或更新。业务表没有唯一键,通过入库的代码通过案号和名称保证数据不重复。
|
|
爬取结果为1000时,进行插入或更新。业务表没有唯一键,通过入库的代码验证案号和名称保证数据不重复。
|
|
* 终本暂未开发按名称查询的爬虫。
|
|
* 终本暂未开发按名称查询的爬虫。
|
|
|
|
|
|
* 限制消费人员
|
|
* 限制消费人员
|
... | @@ -33,236 +39,75 @@ |
... | @@ -33,236 +39,75 @@ |
|
2.找新
|
|
2.找新
|
|
* 详见 [zxgk找新说明](data_stream/risk/risk_zxgk_find_new)
|
|
* 详见 [zxgk找新说明](data_stream/risk/risk_zxgk_find_new)
|
|
* 被执行人
|
|
* 被执行人
|
|
* 通过zhixing_id进行找新。
|
|
* 通过任务表中的zhixing_id进行找新。zhixing_id一般为连续自增。
|
|
|
|
* 也存在zhixing_id跳跃的情况,比如正常找新zhixing_id在13开头号段,突然跳跃到15开头。 这种情况暂时没有预防措施。
|
|
|
|
|
|
* 终结本次案件
|
|
* 终结本次案件
|
|
* 通过zhongben_id进行找新。
|
|
* 通过任务表中的zhongben_id进行找新。
|
|
|
|
* 每天zhongben_id找新的范围取决于当天从网页上获取的zhongben_id。zhongben_id存在重复的情况。
|
|
|
|
|
|
* 失信被执行人
|
|
* 失信被执行人
|
|
* 通过失信id ep_id进行找新。
|
|
* 通过失信id ep_id进行找新。
|
|
|
|
|
|
* 限制消费人员
|
|
* 限制消费人员
|
|
* 通过name进行找新。
|
|
* 通过前一天失信和终本新增数据中的name发布任务,进行找新。
|
|
## 数据问题
|
|
|
|
|
|
|
|
## 清洗程序及部署
|
|
|
|
|
|
|
|
## 找新简述
|
|
## 问题跟踪
|
|
```buildoutcfg
|
|
* 详见 [zxgk问题跟踪](http://192.168.109.110/granite/project-lake/-/wikis/data_issues_tracking/zxgk%E6%95%B0%E6%8D%AE%E9%97%AE%E9%A2%98%E8%B7%9F%E8%B8%AA)
|
|
执行公开找新(包含:'zhixing','shixin','xianxiao','zhongben')
|
|
|
|
zhixing: 通过任务表增加的zhixing_id和爬取结果1101的zhixing_id进行找新
|
|
|
|
shixin: 通过任务表增加的ep_id和爬取结果1101的ep_id进行找新
|
|
|
|
zhongben: 通过任务表增加的zhongben_id和爬取结果1101的zhongben_id进行找新
|
|
|
|
xianxiao: 通过shixin和zhongben新增数据的name进行找新
|
|
|
|
```
|
|
|
|
### 数据关系
|
|
|
|
执行公开网站信息首先进入被执行人数据库,如果被执行人未履行生效法律文书确定的义务并具有相关法律规定的情形则纳入失信被执行人。如果被执行人确无可供执行财产,则纳入终本案件。失信和终本都可能被纳入限消名单。
|
|
|
|
```plantuml
|
|
|
|
@startuml
|
|
|
|
left to right direction
|
|
|
|
|
|
|
|
database zxgk_info as zxgk1
|
|
|
|
file zhixing as zhixing
|
|
|
|
file zhongben as zhongben
|
|
|
|
file shixin as shixin
|
|
|
|
file xianxiao as xianxiao
|
|
|
|
|
|
|
|
zxgk1 --> zhixing
|
|
|
|
zhixing --> zhongben:被执行人无可执行财产
|
|
|
|
zhixing --> shixin:被执行人拒不履行
|
|
|
|
shixin --> xianxiao:部分进入
|
|
|
|
zhongben --> xianxiao:部分进入
|
|
|
|
@enduml
|
|
|
|
```
|
|
|
|
## 找新策略详情
|
|
|
|
|
|
|
|
<!--新增数据怎么来?无需单独采集新增数据?-->
|
|
|
|
```buildoutcfg
|
|
|
|
* 被执行人
|
|
* 被执行人
|
|
* 每天发布四次任务,每次发布的zhixing_id为距今十五天内且爬取失败次数小于80次且爬取结果为1101或null的zhixing_id
|
|
* 同一条数据zhixing_id发生变化。原有的zhixing_id查不到数据,导致误置为历史数据。
|
|
* 每次发布任务前,判断任务表内执行结果为1000的最大zhixing_id id1与表内最大zhixing_id id2,若两个id之差(id2-id1)小于七万,就补充差额的zhixing_id到任务表内。
|
|
* 官网上存在同一条数据列表展示多条,我们库内按照姓名+案号去重,只保留一条。
|
|
|
|
|
|
* 终本案件
|
|
* 终结本次案件
|
|
* 根据每天终本网页上的最大zhongben_id(有些zhongben_id为错误值,需要排除),按照向上增加2万,向下增加6万的范围补充执行任务表内没有的id
|
|
* zhongben_id变化,业务库中同一个zhongben_id对应多条数据,导致更新异常。因为只有此zhongben_id爬不到时才会把库内此zhongben_id的数据置为历史数据。
|
|
* 每天发布四次任务,每次发布的zhongben_id为距今3天内且爬取失败次数小于80次且爬取结果为1101或null的zhongben_id
|
|
|
|
|
|
* 限制消费人员
|
|
* 限制高消费
|
|
* 通过前一天失信和终本新增数据中的name发布任务。无法确认找新是否找全。
|
|
* 使用每天失信和终本新增的name作为任务进行查找
|
|
|
|
|
|
## 相关程序及部署
|
|
* 失信被执行人
|
|
* 清洗入库程序
|
|
* 与被执行招新策略一致,增大ep_id后发布任务
|
|
* 部署机器:10.8.6.228
|
|
```
|
|
* 部署方式:supervisor + data_pump
|
|
```发布id的时间范围,最大失败次数以及补充id的范围都可通过data_pump的参数进行调整```
|
|
* [supervisor文件地址](http://192.168.109.110/granite/project-collie-app/-/blob/master/app_risk/supervisor/zxgk_spider.conf)
|
|
|
|
* [data_pump配置文件地址](http://192.168.109.110/granite/project-collie-app/-/blob/master/app_risk/data_pump/zxgk_spider.yml)
|
|
### data_pump参数说明
|
|
* reader:读爬虫文件或kafka
|
|
| task_type<br/>(任务类型) | search_days<br/>(任务表发布时间范围) | incre<br/>(向上扩大id数量) | decre<br/>(向下扩大id数量) | max_failure_number<br/>(爬取失败最大次数,默认80) |
|
|
* 最初是读爬虫文件,只能单进程,数据量多时无法及时入库。测试时可以读文件。
|
|
|:---------------:|:----------------------:|:--------------------:|:--------------------:|:--------------------------------------:|
|
|
* 已更新为读kafka,多进程清洗入库。
|
|
| zhixing | -v search_days 16 | -v incre 70000 | -v decre 0 | 80 |
|
|
* filter:清洗入库,包含字段清洗及入库逻辑
|
|
| zhongben | -v search_days 4 | -v incre 20000 | -v decre 40000 | 80 |
|
|
* 字段清洗:对姓名、案号半角转全角,关联公司digest等
|
|
| shixin | -v search_days 16 | -v incre 70000 | -v decre 0 | 80 |
|
|
* 入库逻辑:
|
|
## 队列名称及队列地址
|
|
* 被执行人:按照姓名+案号生成唯一键进行更新
|
|
|
|
* 终本:与被执行人逻辑一致
|
|
<!--redis host port db key 优先级说明-->
|
|
* 限消:按照xianxiao_id进行更新
|
|
|
|
* 失信:按照外部数据源更新。我们自己爬的数据按照ep_id进行更新。
|
|
* redis host: redis://:utn@0818@bdp-mq-001.redis.rds.aliyuncs.com:6379/7
|
|
* writer:写到kafka,推送到水滴
|
|
* redis port: 6379
|
|
* 程序中只有被执行人做了推送数据的处理。 后来由企业监控项目统一推送,程序中的推送被取消了。
|
|
* redis db: 7
|
|
|
|
* redis key:
|
|
* 例行更新程序
|
|
* risk_zxgk
|
|
* 部署机器:10.8.6.63
|
|
|
|
* 部署方式:crontab + data_pump
|
|
### 优先级队列说明
|
|
* [data_pump配置文件地址](http://tech.pingansec.com/granite/project-gravel/-/blob/develop_general_taxpayer/app_risk_zxgk/data_pump/app_risk_zxgk.yaml)
|
|
|
|
|
|
* risk_zxgk 支持队列优先级
|
|
* 找新程序
|
|
* 找新任务
|
|
* 部署机器:10.8.6.18
|
|
* zhixing:risk_zxgk:101
|
|
* 部署方式:crontab + data_pump
|
|
* shixin:risk_zxgk:102
|
|
* data_pump配置文件地址
|
|
* zhongben:risk_zxgk:103
|
|
* [任务表发布任务到redis](http://192.168.109.110/granite/project-collie-app/-/blob/master/app_risk/data_pump/zxgk_update_id_to_redis.yml)
|
|
* xianxiao:risk_zxgk:4
|
|
* [读爬虫结果更新mysql任务表](http://192.168.109.110/granite/project-collie-app/-/blob/master/app_risk/data_pump/zxgk_update_id.yml)
|
|
* 存量循环更新任务
|
|
* 预警程序
|
|
* zhixing:risk_zxgk:51
|
|
* 详见 [zxgk找新说明](data_stream/risk/risk_zxgk_find_new)
|
|
* shixin:risk_zxgk:52
|
|
* 部署机器:10.8.6.18
|
|
* zhongben:risk_zxgk:53
|
|
* 部署方式:crontab + data_pump
|
|
* xianxiao:risk_zxgk:2
|
|
* data_pump配置文件地址
|
|
* 补漏及其他任务
|
|
* [将表中统计结果写到es,配置报警](http://192.168.109.110/granite/project-collie-app/-/blob/master/app_risk/data_pump/zxgk_update_id_alert.yml)
|
|
* risk_zxgk:60
|
|
## 爬虫说明
|
|
|
|
* 详见[爬虫说明](data_stream/risk/risk_zhixing)
|
|
## 任务输入参数(样例)
|
|
* 任务参数
|
|
找新任务
|
|
* 任务id:
|
|
```json
|
|
<br>"zhixing_id": "1371041114"
|
|
zhixing
|
|
* 任务类型:
|
|
{
|
|
<br>"task_type": "spider_zhixing_task"
|
|
"zhixing_id": "1371041114",
|
|
* 是否通过pname查询:
|
|
"task_type": "spider_zhixing_task",
|
|
<br>"pname_id_task": true
|
|
"update_id_type": "zhixing"
|
|
* 数据类型:为了进一步区分不同任务类型增加的字段
|
|
}
|
|
<br>"update_id_type": "zhixing_routine" |
|
|
|
\ No newline at end of file |
|
shixin
|
|
|
|
{
|
|
|
|
"shixin_id": "1371041114",
|
|
|
|
"task_type": "spider_shixin_task",
|
|
|
|
"update_id_type": "shixin"
|
|
|
|
}
|
|
|
|
|
|
|
|
xianxiao
|
|
|
|
{
|
|
|
|
"pname": "刘春志",
|
|
|
|
"task_type": "spider_xianxiao_task",
|
|
|
|
"update_id_type": "xianxiao"
|
|
|
|
}
|
|
|
|
|
|
|
|
zhongben
|
|
|
|
{
|
|
|
|
"zhongben_id": "1371041114",
|
|
|
|
"task_type": "spider_zhongben_task",
|
|
|
|
"update_id_type": "zhongben"
|
|
|
|
}
|
|
|
|
```
|
|
|
|
例行更新任务
|
|
|
|
```angular2html
|
|
|
|
任务参数中update_id_type变化
|
|
|
|
zhixing
|
|
|
|
{
|
|
|
|
"zhixing_id": "1371041114",
|
|
|
|
"task_type": "spider_zhixing_task",
|
|
|
|
"update_id_type": "zhixing_routine"
|
|
|
|
}
|
|
|
|
|
|
|
|
shixin
|
|
|
|
{
|
|
|
|
"shixin_id": "1371041114",
|
|
|
|
"task_type": "spider_shixin_task",
|
|
|
|
"update_id_type": "shixin_routine"
|
|
|
|
}
|
|
|
|
|
|
|
|
xianxiao
|
|
|
|
{
|
|
|
|
"pname": "刘春志",
|
|
|
|
"task_type": "spider_xianxiao_task",
|
|
|
|
"update_id_type": "xianxiao_routine"
|
|
|
|
}
|
|
|
|
|
|
|
|
zhongben
|
|
|
|
{
|
|
|
|
"zhongben_id": "1371041114",
|
|
|
|
"task_type": "spider_zhongben_task",
|
|
|
|
"update_id_type": "zhongben_routine"
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
## 代码地址
|
|
|
|
|
|
|
|
| data_type | 代码简介 |代码地址 |
|
|
|
|
|:-------------------------:|:--------------------------------:| :--------|
|
|
|
|
| zhixing, shixin, zhongben | 通过任务表发布任务到redis | http://192.168.109.110/granite/project-collie-app/-/blob/master/app_risk/data_pump/zxgk_update_id_to_redis.yml |
|
|
|
|
| zhixing, shixin, zhongben | 将爬虫结果更新到任务表中 |http://192.168.109.110/granite/project-collie-app/-/blob/master/app_risk/data_pump/zxgk_update_id.yml |
|
|
|
|
| xianxiao | 将新增的shixin和zhongben的name发布到redis |http://192.168.109.110/granite/project-collie-app/-/blob/master/app_risk/data_pump/xianxiao_find_new_to_redis.yml|
|
|
|
|
## 数据存储表地址
|
|
|
|
```angular2html
|
|
|
|
任务表:主要包括id(zhixing_id,ep_id,zhongben_id),task_result(1000/1101/null),
|
|
|
|
failures_number(爬取失败次数:0--max_failure_number)等字段
|
|
|
|
```
|
|
|
|
| data_type | 表简介 | 数据库地址 | 表名 |
|
|
|
|
|:------------------:|:--------------------:|:-----------------------------:|:----------|
|
|
|
|
| zhixing| zhixing任务表,用于发布爬虫任务 | bdp-ext.rwlb.rds.aliyuncs.com | bdp_risk.risk_zhixing_loss
|
|
|
|
| shixin | shixin任务表,用于发布爬虫任务 | bdp-ext.rwlb.rds.aliyuncs.com | bdp_risk.risk_shixin_loss
|
|
|
|
| zhongben | zhongben任务表,用于发布爬虫任务 | bdp-ext.rwlb.rds.aliyuncs.com | bdp_risk.risk_zhongben_loss
|
|
|
|
```angular2html
|
|
|
|
业务表:业务数据,包含爬虫结果(id,name等)以及内部分析字段(company_name_digest等)
|
|
|
|
```
|
|
|
|
| data_type | 表简介 | 数据库地址 | 表名 |
|
|
|
|
|:---------:|:--------------------:|:----------------------------------:|:----------|
|
|
|
|
| zhixing | zhixing业务表,记录所有业务字段 | bdp-rds-001.mysql.rds.aliyuncs.com | utn_ng_risk.risk_zhixing
|
|
|
|
| shixin | shixin业务表,记录所有业务字段 | bdp-rds-003.mysql.rds.aliyuncs.com | utn_risk.risk_shixin
|
|
|
|
| zhongben | zhongben业务表,记录所有业务字段 | bdp-rds-001.mysql.rds.aliyuncs.com | utn_ng_risk.risk_zhongben
|
|
|
|
| xianxiao | xianxiao业务表,记录所有业务字段 | bdp-rds-001.mysql.rds.aliyuncs.com | utn_ng_risk.risk_xianxiao
|
|
|
|
|
|
|
|
## 钉钉预警
|
|
|
|
|
|
|
|
**找新预警:以zhongben找新为例,其余三种数据预警逻辑一致,每天找新成功的爬虫日志少于10条时预警**
|
|
|
|
```angular2html
|
|
|
|
报警信息:zhongben24小时内找新失败
|
|
|
|
索引:public-company-spider-data-*
|
|
|
|
监控频率:每4小时一次
|
|
|
|
监控起止时间: 06:00到20:00
|
|
|
|
报警条件:spider_name=risk_zxgk 且 task_params.update_id_type=zhongben 且 task_result=1000 24小时内量少于10条
|
|
|
|
```
|
|
|
|
**补漏预警:以zhongben补漏为例,zhixing与shixin预警逻辑一致,统计每天任务表内未更新的数据写到total字段,total>10报警,或补漏预警程序失败未向es写入数据时报警**
|
|
|
|
```angular2html
|
|
|
|
报警内容:"报警:zhongben补漏数据24小时内未更新"
|
|
|
|
索引:mysql_stat-*
|
|
|
|
监控频率:每天两次
|
|
|
|
监控时间:10:00和16:00
|
|
|
|
报警条件:db_host=bdp-ext.rwlb.rds.aliyuncs.com且db_name=bdp_risk且db_table=risk_zhongben_loss 24小时内量为0条
|
|
|
|
或db_host=bdp-ext.rwlb.rds.aliyuncs.com且db_name=bdp_risk且db_table=risk_zhongben_loss 且total>10 24小时内量大于1条
|
|
|
|
```
|
|
|
|
**例行更新预警:zhixing T+3预警,统计三天内es例行任务量与业务表中满足例行条件的数据量进行比较,差值计入total字段,total<0,说明三天内未例行完成,进行报警**
|
|
|
|
```angular2html
|
|
|
|
报警内容:"报警:被执行表T+3更新未完成"
|
|
|
|
索引:mysql_stat-*
|
|
|
|
监控频率:每天一次
|
|
|
|
监控时间:10:00
|
|
|
|
报警条件:db_host=bdp-rds-001.mysql.rds.aliyuncs.com且db_name=utn_ng_risk且db_table=risk_zhixing且total<0 24小时内量大于0条
|
|
|
|
```
|
|
|
|
## 部署地址
|
|
|
|
|
|
|
|
<!--机器及线上代码地址-->
|
|
|
|
```angular2html
|
|
|
|
10.8.6.18
|
|
|
|
```
|
|
|
|
|
|
|
|
## 部署方法及说明
|
|
|
|
|
|
|
|
<!--运行方法及运行命令、supervisor配置、supervisor的program等-->
|
|
|
|
|
|
|
|
- [X] crontab + data_pump
|
|
|
|
- [ ] supervisor + data_pump
|
|
|
|
- [ ] supervisor + consumer
|
|
|
|
|
|
|
|
## 数据接收来源
|
|
|
|
|
|
|
|
```angular2html
|
|
|
|
1.爬虫数据进行数据更新
|
|
|
|
2.代码生成新的执行id进行爬虫任务发布
|
|
|
|
```
|
|
|
|
|
|
|
|
<!--来源于kafka还是归集的文件、topic的group?--> |
|
|
|
\ No newline at end of file |
|
|