大数据

企业工商数据+联系人管理+专利签单流程的主题域与业务域划分

1. 业务流程梳理

2. 主题域模型划分(数据本质视角)

核心数据对象识别

  • 企业主体:工商注册号、名称、注册资本、行业分类
  • 企业联系网络:联系人姓名、职位、电话、邮箱
  • 知识产权服务:专利类型、申请状态、服务合同编号
  • 沟通记录:通话时间、沟通内容、意向等级

主题域定义表

主题域核心实体数据示例
企业档案企业主体统一信用代码、法人代表、成立日期
企业关系联系人/联系方式联系人手机、部门、是否决策人
服务过程沟通记录/商机通话时长、下次跟进时间
知识产权专利项目/合同专利号、合同金额、服务周期

3. 业务域划分(流程视角)

根据业务流程分组

  • 数据采集域:爬虫获取工商数据、联系人清洗
  • 客户管理域:企业客户档案维护、联系人标签管理
  • 销售管理域:商机跟进、合同签订
  • 服务交付域:专利撰写、官费代缴

业务域与主题域映射

业务域关联主题域典型数据表
数据采集企业档案+企业关系ods_company_crawler
客户管理企业档案+企业关系dim_companydim_contact
销售管理服务过程+知识产权fact_sales_opportunity
服务交付知识产权fact_patent_application

4. 数仓建模实施示例

(1) 主题域→逻辑模型设计

企业档案主题域

(2) 业务域→数仓分层实现

数据采集域(ODS层)

-- 爬虫原始数据表
CREATE TABLE ods.company_crawler (
    credit_code STRING COMMENT '统一信用代码',
    company_name STRING,
    contact_name STRING,
    mobile STRING,
    crawl_time TIMESTAMP
) PARTITIONED BY (dt STRING);

客户管理域(DIM层)

-- 企业维度表(拉链表)
CREATE TABLE dim.dim_company (
    credit_code STRING,
    company_name STRING,
    legal_rep STRING,
    start_date STRING,
    end_date STRING
) STORED AS PARQUET;

-- 联系人维度表
CREATE TABLE dim.dim_contact (
    contact_id STRING,
    credit_code STRING,
    is_decision_maker BOOLEAN
);

销售管理域(DWD层)

-- 商机事实表
CREATE TABLE dwd.fact_sales_opportunity (
    opportunity_id STRING,
    credit_code STRING,
    contact_id STRING,
    intention_level INT COMMENT '1-5级意向度'
) PARTITIONED BY (dt STRING);
(3) 业务域命名规范
业务域表前缀示例表名
数据采集ods_ods_company_crawler
客户管理dim_dim_company
销售管理dwd_sales_dwd_sales_opportunity
服务交付dwd_ip_dwd_ip_patent_application

5. 关键协作点说明

  • 主题域模型确保数据一致性
    所有业务域中使用的credit_code必须来自企业档案主题域的定义(如长度18位且符合国标)
  • 业务域划分支持流程优化
    当销售团队需要增加"客户行业分析"功能时:
    1. 确认需求属于客户管理域
    2. 企业档案主题域获取行业分类数据
    3. dim_company表中补充行业标签字段

6. 典型数据分析场景

需求:分析"高科技行业决策人的签约转化率"

  • 主题域联动
    企业档案(行业分类) + 企业关系(决策人标记) + 知识产权(签约结果)
  • 业务域协作
    1. 数据采集域:过滤高科技行业企业
    2. 客户管理域:标记决策人联系人
    3. 销售管理域:统计商机→合同的转化率

SQL实现

SELECT 
    c.industry_type,
    COUNT(DISTINCT o.opportunity_id) AS opp_count,
    COUNT(DISTINCT p.contract_id) AS signed_count,
    signed_count/opp_count AS conversion_rate
FROM dim_company c
JOIN dim_contact ct ON c.credit_code = ct.credit_code AND ct.is_decision_maker
JOIN dwd_sales_opportunity o ON ct.contact_id = o.contact_id
LEFT JOIN dwd_ip_patent_application p ON o.opportunity_id = p.source_opportunity
WHERE c.industry_type = '高科技'
GROUP BY c.industry_type;

总结:如何避免混淆?

  1. 先画主题域:回答"我们有哪些核心数据对象?"(企业、联系人、专利...)
  2. 再划业务域:回答"这些数据怎么被使用?"(采集→客户管理→销售→服务)
  3. 命名显式关联:通过表前缀(如dwd_sales_)体现业务域归属
  4. 验证关系:确保每个业务域的表能映射到主题域实体(如销售域的商机表必须关联企业主题域的信用代码)