Skip to content

GitLab

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

Last edited by songzp Jul 01, 2022
Page history
This is an old version of this page. You can view the most recent version or browse the history.

ic_spider_df

目前工商上线处理流程

目标处理流程

目前工商上线流程的问题

mongo的ic表、股东、主要人员表等没有唯一约束,导致有数据重复

多进程上线,新收录主体注册digest时冲突,导致主体重复

每天采集的大部分数据是没有变化的,但都会更新mongo,且不知道哪些字段有变化

由于mongo对同一个字段的类型没有统一约束,导致同一个字段有不同的数据类型

有些再加工字段,由于不能监控实际有变化的记录,而都放在上线程序中处理,导致上线程序做了太多事情

由于不知道实际有变化的数据信息,在更新对外输出表、联系方式表等时需要对采集的全部数据做处理,严重浪费资源

更新mongo时处理逻辑复杂,上线代码维护难度大

新的处理流程期望达到的效果

1、统一所有字段的数据类型

2、减少后续相关业务表要处理的数据量,即只处理实际数据发生变化的主体信息

3、减少数据重复

4、通过数据更新日志实现动态监控

5、解决上述目前流程的其他问题

待确定问题

1、水滴上需要知道哪些主体去采集更新了,也即最后采集时间,也即现在爬虫结果的lastupdatetime,新的流程中怎么处理该字段

2、注册digest时一个进程是否满足

采集任务提交

工商采集滚动更新任务索引字段

es: ic_spider_task
字段名 注释 字段类型 作用
company_name_digest 唯一键 string 唯一键
company_name 名称 string
company_code 注册号 string
credit_no 统一信用代码 string
ent_type 主体类型标识(小类) int
company_major_type 主体类型标识(大类) int
n_company_status 主体状态 string
province 省份 string 有地方工商网站
city 地市 string 有地方工商网站
find_in_gsxt 能否在公示系统查到 int 提交任务时带上digest,工商查不到的根据digest回写标记
baseinfo_update_time 基本信息更新时间 datetime
partner_update_time 股东更新时间 datetime
employee_update_time 主要人员更新时间 datetime
change_update_time 变更记录更新时间 datetime
branch_update_time 分支机构更新时间 datetime
allow_update_time 行政许可更新时间 datetime
has_allow 是否有行政许可 int 例行更新存量有行政许可的主体的行政许可维度
punish_update_time 行政处罚更新时间 datetime 其他渠道最近更新了该维度可以下轮再更新
has_punish 是否有行政处罚 int 例行更新存量有行政处罚的主体的行政处罚维度
abnormal_update_time 经营异常更新时间 datetime
has_abnormal 是否有经营异常 int
illegal_update_time 严重违法更新时间 datetime
has_illegal 是否有严重违法 int
pledge_update_time 股权出质更新时间 datetime
has_pledge 是否有股权出质 int
justice_update_time 司法协助更新时间 datetime
has_justice 是否有司法协助 int
chattel_update_time 动产抵押更新时间 datetime
has_chattel 是否有动产抵押 int
intellectual_update_time 知识产权出质更新时间 datetime
has_intellectual 是否有知识产权出质 int
clear_update_time 清算信息更新时间 datetime
has_clear 是否有清算信息 int
check_update_time 抽查检查更新时间 datetime
random_check_update_time 双随机抽查检查更新时间 datetime
qy_partner_update_time 企业自主公示股东更新时间 datetime
simple_cancel_update_time 简易注销更新时间 datetime
has_simple_cancel 是否有简易注销 int
cancel_notice_update_time 注销备案公告更新时间 datetime
has_cancel_notice 是否有注销备案公告 int

ic_ods表结构

基本信息表

create table tb_company_base(
    id bigint not null auto_increment comment '自增主键',
    province_short varchar(10) default null comment '省份简称',
    company_name_digest char(32) not null comment '主体唯一键',
    company_name varchar(255) not null comment '主体名称',
    n_company_name varchar(255) default null comment '标准主体名称',
    company_code varchar(50) default null comment '注册号',
    credit_no varchar(50) default null comment '统一信用代码',
    org_code varchar(15) default null comment '组织机构代码',
    tax_code varchar(50) default null comment '税务号',
    establish_date date default null comment '成立日期',
    legal_person varchar(255) default null comment '法定代表人',
    legal_person_caption varchar(10) default null comment '法人头衔',
    company_status varchar(50) default null comment '登记状态',
    n_company_status varchar(15) default null comment '归类后的登记状态',
    company_type varchar(50) default null comment '类型',
    company_major_type tinyint(4) default null comment '归类后的主体类型',
    company_minor_type tinyint(4) default null comment '企业类型编码',
    ent_type tinyint(4) default null comment '工商原始归类后的类型',
    composion_form varchar(20) default null comment '组成形式',
    authority varchar(255) default null comment '登记机关',
    issue_date date default null comment '核准日期',
    operation_startdate varchar(20) default null comment '经营期限自',
    operation_enddate varchar(20) default null comment '经营期限至',
    capital varchar(50) default null comment '注册资本',
    capital_num  decimal(40,6) default null comment '注册资本数值,量纲-万',
    currency varchar(15) default null comment '注册资本币种,默认人民币',
    company_address varchar(300) default null comment '登记地址',
    business_scope text default null comment '经营范围',
    cancel_date date default null comment '注销日期',
    cancel_reason varchar(500) default null comment '注销原因',
    revoke_date date default null comment '吊销日期',
    revoke_reason varchar(500) default null comment '吊销日期',
    real_capital varchar(50) default null comment '实缴资本',
    en_name varchar(255) default null comment '英文名称',
    list_code varchar(15) default null comment '上市代码',
    bond_type varchar(15) default null comment '上市证券类型',
    stock_status varchar(10) default null comment '上市状态',
    location varchar(50) default null comment '经纬度',
    province varchar(20) default null comment '省份',
    area_code char(6) default null comment '省级行政区划代码',
    city varchar(16) default null comment '地市',
    city_code char(6) default null comment '市级行政区划代码',
    district varchar(16) default null comment '区县',
    district_code char(6) default null comment '县级行政区划代码',
    history_name varchar(1000) default null comment '工商展示历史名称',
    parent_company_name_digest char(32) default null comment '母公司的digest',
    last_change_date date default null comment '最后变更日期',
    use_flag smallint(6) default '0' comment '数据有效性,10废弃删除',
    data_source smallint(6) default '1' comment '数据标记',
    create_time datetime default current_timestamp comment '入库时间',
    update_time datetime default current_timestamp on update current_timestamp comment '更新时间',
    primary key (id),
    unique key idx_digest (company_name_digest),
    key idx_name (n_company_name),
    key idx_company_code (company_code),
    key idx_credit_no (credit_no),
    key idx_update_time (update_time)
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='主体基本信息';

法人表

create table tb_company_legalperson (
    id bigint not null auto_increment comment '自增主键',
    company_name_digest char(32) not null comment '主体唯一键',
    legal_person varchar(300) not null comment '处理后法定代表人',
    legal_person_caption varchar(20) default null comment '法人头衔',
    appoint_delegate varchar(50) default null comment '委派代表',
    legal_person_type tinyint(4) not null comment '法人类型,0自然人,1非自然人',
    legal_person_id varchar(50) default null comment '法人id,根据法人类型可以是digest 或 人的id',
    ad_id varchar(50) default null comment '委派代表id',
    is_history tinyint(4) default '0' comment '是否历史法人,0当前法人,1历史法人',
    lp_source tinyint(4) default '0' comment '法人来源,0官网同步,1文本解析',
    use_flag tinyint(4) default '0' comment '数据有效性,10废弃删除',
    include_date date default null comment '任职起始日期',
    remove_date date default null comment '任职结束日期',
    create_time datetime default current_timestamp comment '入库时间',
    update_time datetime default current_timestamp on update current_timestamp comment '更新时间',
    primary key (id),
    unique key idx_company_lp (company_name_digest, legal_person),
    key idx_update_time (update_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='法定代表人表';

股东表

工商公示股东

CREATE TABLE `tb_company_partner` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `company_name_digest` char(32)  NOT NULL COMMENT '主体唯一键',
  `stock_name` varchar(255)  NOT NULL COMMENT '股东名称',
  `company_name` varchar(255)  DEFAULT NULL COMMENT '企业名称',
  `stock_type` varchar(30)  DEFAULT NULL COMMENT '股东类型',
  `is_personal` tinyint(4) DEFAULT NULL COMMENT '自然人/非自然人,1自然人,0机构,2非人非机构',
  `stock_name_digest` char(32)  DEFAULT NULL COMMENT '企业股东id',
  `identify_type` varchar(50)  DEFAULT NULL COMMENT '股东证件类型',
  `identify_no` varchar(50)  DEFAULT NULL COMMENT '股东证件号码',
  `stock_capital` varchar(20)  DEFAULT NULL COMMENT '应缴出资额',
  `stock_capital_num` varchar(20) default null comment '应缴出资额值',
  `stock_capital_unit` varchar(20) default null comment '应缴出资额单位',
  `stock_realcapital` varchar(20)  DEFAULT NULL COMMENT '实缴出资额',
  `stock_realcapital_num` varchar(20)  DEFAULT NULL COMMENT '实缴出资额值',
  `stock_realcapital_unit` varchar(20)  DEFAULT NULL COMMENT '实缴出资额单位',
  `stock_proportion` double(7,6) DEFAULT NULL COMMENT '股权占比',
  `invest_type` varchar(20)  DEFAULT NULL COMMENT '应缴出资方式',
  `invest_realtype` varchar(20)  DEFAULT NULL COMMENT '实缴出资方式',
  `country` varchar(20) default null comment '股东国别',
  `inv_id` varchar(100) default null comment '总局股东出资id',
  `include_date` date default null comment '股东进入日期',
  `remove_date` date default null comment '股东退出日期',
  `pays` text default null comment '认缴出资记录',
  `realpays` text default null comment '实缴出资记录',
  `use_flag` tinyint(4) DEFAULT '0' COMMENT '使用标记',
  `is_history` tinyint(4) DEFAULT '0' COMMENT '状态(0: 有效, 1: 历史)',
  `name_source` tinyint(4) default '0' comment '股东来源,0官网同步,1文本解析',
  `capital_source` tinyint(4) default null comment '出资额及股比来源',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '入库时间',
  `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `idx_partner` (`company_name_digest`,`stock_name`),
  KEY `idx_stock_name` (`stock_name`),
  key `idx_stock_id` (`stock_name_digest`),
  KEY `idx_update_time` (`update_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='股东信息';

最新公示股东表

create table tb_company_partner_latest (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `company_name_digest` char(32)  NOT NULL COMMENT '主体唯一键',
  `stock_name` varchar(255)  NOT NULL COMMENT '股东名称',
  `company_name` varchar(255)  DEFAULT NULL COMMENT '企业名称',
  `stock_type` varchar(30)  DEFAULT NULL COMMENT '股东类型',
  `is_personal` tinyint(4) DEFAULT NULL COMMENT '自然人/非自然人,1自然人,0机构,2非人非机构',
  `stock_name_digest` char(32)  DEFAULT NULL COMMENT '企业股东id',
  `stock_capital` varchar(20)  DEFAULT NULL COMMENT '应缴出资额',
  `stock_capital_num` varchar(20) default null comment '应缴出资额值',
  `stock_capital_unit` varchar(20) default null comment '应缴出资额单位',
  `stock_realcapital` varchar(20)  DEFAULT NULL COMMENT '实缴出资额',
  `stock_realcapital_num` varchar(20)  DEFAULT NULL COMMENT '实缴出资额值',
  `stock_realcapital_unit` varchar(20)  DEFAULT NULL COMMENT '实缴出资额单位',
  `holder_num` varchar(20) default null comment '持股数',
  `stock_proportion` double(7,6) DEFAULT NULL COMMENT '股权占比',
  `invest_type` varchar(20)  DEFAULT NULL COMMENT '应缴出资方式',
  `invest_realtype` varchar(20)  DEFAULT NULL COMMENT '实缴出资方式',
  `pays` text default null comment '认缴出资记录',
  `realpays` text default null comment '实缴出资记录',
  `use_flag` tinyint(4) DEFAULT '0' COMMENT '使用标记',
  `is_history` tinyint(4) DEFAULT '0' COMMENT '状态(0: 有效, 1: 历史)',
  `capital_source` tinyint(4) default null comment '出资额及股比来源',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '入库时间',
  `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `idx_partner` (`company_name_digest`,`stock_name`),
  KEY `idx_stock_name` (`stock_name`),
  key `idx_stock_id` (`stock_name_digest`),
  KEY `idx_update_time` (`update_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='股东信息';

主要人员表

Clone repository
  • README
  • basic_guidelines
  • basic_guidelines
    • basic_guidelines
    • dev_guide
    • project_build
    • 开发流程
  • best_practice
  • best_practice
    • AlterTable
    • RDS
    • azkaban
    • create_table
    • design
    • elasticsearch
    • elasticsearch
      • ES运维
    • logstash
View All Pages