资源描述
BI.Insurance i.DWM for P&C 模型设计说明,张海彪,日程,为什么需要模型 模型的组织结构 模型实施方法 模型设计策略 Q & A,|,日程,为什么需要模型 模型的组织结构 模型实施方法 模型设计策略 Q & A,|,EDW体系架构,源系统层,ETL层,数据仓库层,ETL层,数据集市层,应用层,展现层,手工数据,外部数据,数据仓库,保险数据模型,核心业务,财务系统,再保险系统,人意险系统,精算系统,客户关系 管理OCRM,客户讯息 ECIF,业务量分析 数据集市,业务持续性 分析数据集市,ALM 数据集市,财务分析 数据集市,车险承保分析 通用承保分析,风险管理 应用,ALM应用,财务分析 应用,aCRM 数据集市,aCRM 报告,大客户分析管理系统,aCRM 引擎,数据挖 掘引擎,数据挖 掘应用,企 业 信 息 门 户,企业统一分析平台,元数据库,监管报表,管理报表,运营报表,仪表盘,随机查询,多维分析,“数据和信息集成平台” “统一的分析平台” “唯一的信息出口”,为什么需要企业模型?,EDW 数据模型在项目实施中的作用,DWM 数据仓库模型,BAM 业务分析模型,运营型业务系统,数据仓库,数据集市,报表 分析型应用,BSA 业务模版应用,日程,为什么需要模型 模型的组织结构 模型实施方法 模型设计策略 Q & A,|,模型总体结构EM & DataMarts,核心原子数据,事实表和维度,企业模型,营销管理快速入门,客户细分和管理,保险盈利性分析,潜在客户管理,数据集市,导出,业务数据模型,映射,指标要素,需求模型,财务报表数据集市,中介绩效分析数据集市,健康险盈利性管理数据集市,DWM 数据模型逻辑结构,BI.Insurance i.DWM for P&C,底层数据模型主题域说明: Agreement:保单、批单申请及管理; Claim:理赔 Financial Transaction:应收应付、实收实付以及交易关联 Party:当事方,包括当事方的组织结构、角色结构及类型 Money Provision:资金管理 Specification And Product:规范及产品管理 Place:地点 Code:标准代码 Activity:活动管理 Physical Object:实物、标的管理,BI.Insurance i.DWM-Agreement,BI.Insurance i.DWM-Claim,BI.Insurance i.DWM-Physical Object,日程,为什么需要模型 模型的组织结构 模型实施方法 模型设计策略 Q & A,|,步骤:,流程:,产出:,原则:,需求文档: 1.报表需求 2.功能需求 3. 非功能需求,1.目前的报表 2.想做的报表 3.想做的功能,1.数据筛选清单 2.数据源报告: 3.数据质量分析报告 4.代码清单,Mapping文档: 源-模型对应关系,A筛选: 去掉ETL需要而模型不需要的字段,1.逻辑模型 2.物理模型 3 逻辑物理数据元素对照表,设计文档: 1.Mapping流程图 2.数据元素Mapping文档,A:数据源报告: 1.主要功能 2.历史数据情况 3.与其它系统关系 4.联系人,B:数据质量报告: 1.数据类型 2.值分布 3.关联情况,B映射: 1.映射到EM 2.结合性能考虑 3.结合实现考虑,数据筛选: 1.程序控制,计算,通讯,安全控制配置,日志 2.汇总类结果一般不要 3.可以由其它字段算出的字段一般不要 4.从其它系统导入的数据不要. 5.代码表不要。 6.单纯的险种定义信息不要,但是具体保单中涉及的险种定义信息可以要。,1.多维模型设计文档: 维度 指标 派生指标 2.需求-模型映射文档 3.报表样张 4.操作说明,EDW具体实施流程,日程,为什么需要模型 模型的组织结构 模型实施方法 模型设计策略 Q & A,|,Hash code,问题的提出: 进行增量加载时无法快速判断对表的原有记录是否新插入。例如: 1. 理赔案件发生的时候,增量文件会把保单数据也传来 2. 保单增量过来,可能只是投保人的信息改了,而目标保单表所需信息并没有改变 解决方案: 使用增量的比较字段生成 Hash code。在对表进行增量加载时,对增量文件中的每一条记录生成 Hash code 将生成完的 Hash code 与原表中同一anchor id并且最新的记录的 Hash code 进行比较 如果一致的话,即不动作;如果不一致的话,即新插入。 使用示例: 在 individual agreement 表中使用各个需要保留历史信息的字段生成 hash code。 在增量加载时,使用业务增量文件中的字段生成 hash code。 与 Individual agreement 表中同一agreement id的最新记录的hash code 进行比较。 如果一致,即不动作 如果不一致,则插入新记录。 备注: relationship表是要根据业务去判断是否关系已经存在,然后,如果有其他属性(如:Role player - Physical object Rlship.Usage),才需要用hashcode判别是否重复。,|,Hash code字段组成规则,带anchor的实体 带status表的实体(Commercial agreement、Group agreement、Individual agreement、Claim folder、Elementary claim) 除表的主键、type id、Partition key、Status、Status date、Status reason、 Valid from date、Valid to date、Effective from date、Effective to date、 Population timestamp之外的所有字段 不带status表的实体 除表的主键、 type id、 Partition key、 Valid from date、Valid to date、Effective from date、Effective to date、 Population timestamp之外的所有字段 不带anchor的实体 原则上不需要保留历史,一般执行Update操作。如果有需要的,ETL Mapping特别指明 关联实体 对于需要保留历史的关联类型,除Identifier、Partition key、Nature id、 Left anchor identifier、 Right anchor identifier、 Left entity identifier、Left entity type id、Right entity identifier、Right entity type id、Valid from date、Valid to date、Effective from date、Effective to date、Population timestamp之外的所有字段,|,Partition key,问题的提出: 在进行多表关联时,所涉及的关联表行数巨大,关联速度达不到要求。 解决方案:在所有大表中建立 Partition key, 按照该键的键值对表进行物理分 区。Partition key 从Partition config 表中获得。分区策略是 按照分公司进行分区。 使用示例:表 A 与表 B 进行关联时,如下进行 select A.column1, B.column2 from A, B where A.foreign_key=B.Primary_key and A.partition_key in (select Storage partition from Partition config where Branch company id=xxxx) and B.partition_key in (select Storage partition from Partition config where Branch company id=xxxxxxx),|,|,对保单和理赔状态的特殊处理,问题的提出: 保单在承保和保全的整个过程中状态变化比较多,如按照 IIW 的原有设计,保单表中的会有巨量的历史记录;理赔在报案、立案和估损的整个过程中状态变化较多,如按照 IIW 的原有设计,理赔表中会有很多的历史记录。 解决方案: 将保单的状态变化过程剥离出来单独建表,在该表中保留与保单的关联;当有新状态插入时,更新对应的保单表中的状态。 将理赔的状态变化过程剥离出来单独建表,在该表中保留与理赔的关联;当有新状态插入时,更新对应的理赔表中的状态。 使用示例: 增加Commercial agreement status,Group agreement status,Individual agreement status 表,分别记录 Commercial agreement , Group agreement ,Individual agreement 的状态变化历史。 当前面状态发生该变时,在status表中插入新记录,更新对于原表中的状态字段。,对保单和理赔状态的特殊处理示例,|,Individual agreement,Individual agreement status,Left/Right Entity ID in Relationship or Role Entity,问题的提出 在IIW中的不同subject area的实体关联通常是走关联实体的,例如:Physical object - Agreement Rlship。在关联实体中是以anchor id进行连接的。在分析的时候,通常是应该按照当时的状况进行分析才有意义。由于EDW是保留历史信息的,同一个Physical object或Agreement会有多条记录,如何找到当时的记录,必须通过effective from/to date的比对才能实现,这非常影响效率。 解决方案 在关联实体中增加Left/Right entity identifier,Left/Right entity type id Left/Right entity type id是指具体基础表的id号 例如:Road vehicle(2001260001) Left/Right entity identifier是指具体基础表中记录的主键id值 例如: Road vehicle中牌照号沪A000001车辆的第一条记录的Road vehicle id值 适用范围: FS Role Physical object - Agreement Rlship,|,Sample of Left/Right Entity ID in Relationship or Role Entity,|,Road vehicle,Individual agreement,Agreement,Physical object,Physical object Agreement Rlship,被保标的,Party role in operation/Internal person,问题的提出 在业务中有很多操作员角色,只有工号、姓名信息,没有身份证等其他信息; 一个操作员在一个业务流程中会同时扮演不同角色,如在A保单核保中他是录入人,在B保单核保中他是复核人或者可能出现在A保单核保中他既是录入人又是复核人 解决方案 建立Internal person表保存业务员、公司管理人员的个人信息,这些信息质量较差 建立Party role in operation表保存操作员角色信息,每次都生成新记录。 录单员冗余到保单中,理赔的操作员也冗余到claim folder中,|,关联实体的版本问题,由于关联实体本身没有对应的anchor实体,不存在版本问题,但是关联存在有以下两种变化情况。 人“王五”拥有一栋房屋,在2007/1/1卖掉了。 更新原有的Role player physical object Rlship记录的 valid to date:if 源系统有系统更新日期,则更新日期1;else,则“2006/12/31” effective to date: “2006/12/31” 人“王五”拥有一栋房屋,在2007/1/1卖掉50的产权。 更新原有的Role player physical object Rlship记录的 valid to date:if 源系统有系统更新日期,则更新日期1;else,则“2006/12/31” effective to date: “2006/12/31” (Ownership percentage: 100) 插入新的Role player physical object Rlship记录 valid from date:if 源系统有系统更新日期,则更新日期1;else,则“2007/1/1” effective from date: “2007/1/1” Ownership percentage: 50,|,Financial Services Role,问题的提出 Person存放人的基本信息,External organisation和Internal organisation存放机构的基本信息 一个人和机构在不同环境下分别扮演不同角色,所以 Financial Services Role存放与保单(各种协议)相关的金融服务角色,如保单持有人,被保险人,受益人等。 Channel role存放中介渠道角色信息,如营销员、收展员 在分析集市中需要获取保单与业务员的关联信息,IIW原连接方式如图:,|,Financial Services Role (Financial services role player id),Person (Role player id),Channel role (Channel role player id),优点:结构清晰统一 缺点:渠道角色信息关联的太远,需要Financial Services Role+Channel role+Person,影响效率,Person (Role player id),External organisation (Role player id),Financial Services Role,解决方案 Financial Services Role用把basis role player type id确定应连接Person 还是External organisation Financial Services Role用把basis role player id确定Person或External organisation中记录的role player id Financial Services Role用把basis role player entity identifier确定Person或External organisation中记录的person id或External organisation id 使用示例,|,Financial Services Role (Financial services role player id),Person (Role player id),Channel role ( Role player id Channel role player id),Person (Role player id),External organisation (Role player id),Currency code,问题的提出: 在 CPIC 的实际业务中,可能出现多币种,在统计中需要进行多币种的转换。 解决方案: 在 IIW 模型中凡出现金额字段的表,都增加金额的币种及对应的 RMB 金额两类字段。 原字段存放原币中金额, RMB 金额存放折算成RMB的金额 使用示例: Elementary claim 表中增加 Total cost currency 和 Total cost RMB 字段 备注:由于CPIC对多币种金额的统计有多种统计方式,不全部是按照发生制来折算RMB的。因此,统计转换金额到RMB的工作,留给统计部分执行,在原子层不计算。币种一定要填。,|,维度表的snapshot,问题的提出 在分析层中,常用的维度表如:保单、立案。分析常用的属性是分散在各个表中的,如:保费、保额在Particular Money Provision中。分析时如果再通过关联来找到这些信息,效率非常低。 解决方案 建立维度的snapshot表,将这些信息冗余存放在这些表中,每个月全量刷新一次。 使用示例: Claim folder dimension Policy dimension Elementary claim dimension Event dimension,|,Commercial agreement/Group agreement/Individual agreement的边界区分,Commercial agreement 存放保险公司和机构投保人签订的关于承保要素约束的框架性协议;不是具体的保单。具体的保单要遵循该协议。 Group agreement 团单 单位和保险公司签订的保一组成员的保单,如:寿险团单、雇主责任险、旅游责任险。 如果源系统提供了每个被保人的投保情况,这些记录在individual agreement(type id个人凭证)中的。如:雇主责任险下每个人的投保份数。 Individual agreement 个单/个人凭证 备注:根据国内系统的情况做了些调整,和机构投保人(非个人)签订的个单也存放在此。 投保单按保单处理,只是状态是投保状态,|,Group agreement/Individual agreement在ETL时处理,车险系统保单 进入Individual agreement 寿险保单 根据来源表,决定进入group agreement还是individual agreement CIBS(包括老系统)和人意险保单 根据Financial services product中的Individual insurance flag判断 个险,进入Individual agreement 团险、个团皆可,进入group agreement,|,最新记录标志,Effective to date = 9999/12/31 00:00:00,|,公司的拆分合并,partition key的处理 1/4,分公司的拆分合并,不需要程序考虑,发生后手工处理。 公司合并 举例:原来有分公司A,分公司B,在2006/1/1分公司B合并到分公司A。,|,合并前,Partition config,External organisation,Individual agreement,公司的拆分合并,partition key的处理 2/4,公司合并 举例:原来有分公司A,分公司B,在2006/1/1分公司B合并到分公司A。,|,合并后,Partition config,External organisation,Individual agreement,Role player Rlship,公司的拆分合并,partition key的处理 3/4,公司合并 举例:原来有分公司A, 在2006/1/1分公司A,拆分成分公司A和分公司B。,|,拆分前,Partition config,External organisation,Individual agreement,公司的拆分合并,partition key的处理 4/4,公司合并 举例:原来有分公司A, 在2006/1/1分公司A,拆分成分公司A和分公司B。,|,拆分后,Partition config,External organisation,Individual agreement,Role player Rlship,按照type id分表,将有些大表按照 Type id 进行拆分 举例:Individual agreement 表按照保单和投保单拆成两张表,|,历史信息的处理,对含有历史记录的大表,应考虑将历史记录剥离出来单独建表,即原表保留最新的信息,而在剥离出来的表中包含这些信息的变化历史。 举例: Individual agreement 原来保留有保单的最新信息及这些信息的历史变化记录。这样这张表就将很大,记录数数以亿计。目前将它拆成 2 个表: 表一,存放保单的最新信息,如最新状态,最新确认的起保日期等,同时保留每条记录最新的刷新时间 表二,存放保单经常变化的值的变化历史,如:保单状态的变化历史 表三,存放保单所有历史变化的信息,|,增加表的冗余字段,问题的提出:原有设计中,一条业务上具有完整意义的信息被拆分在多个表中,在生成分析层(或进行分析时)又要将被拆分的信息通过多表关联的方式关联起来。 解决方案:在表中尽量增加冗余字段。要注意的是,冗余字段并非任意增加,而是要增加: 冗余关联类型为m:1 的字段,如:保单的所属分公司。 从业务上说,基本不变化的冗余字段,|,增加表与表之间的外键,减少走关联表,问题的提出:原有设计中,一条业务上具有完整意义的信息被拆分在多个表中,在生成分析层(或进行分析时)又要将被拆分的信息通过多表关联的方式关联起来。而这样的关联可能要跨多个表。 解决方案: 增加有业务含义的信息之间的直接关联。即如两表的信息如果有业务关联,而在原有设计中这两表之间的关联要借助其他中间表的,应在此两表之间建立直接的关联。 例如:selling channel role id在individual agreement表中的冗余。否则,要走FS Role连接channel role。 尽可能减少关联的层级。即减少不必要的关联中间表 例如:如保单的操作员直接建立到保单中,保单和理赔的科室、部门直接建立到保单和理赔中。 备注:m:m的关系必须走关联表。,|,模型优化任务分配,Jeffrey: Activity, Reinsurance, Claim, Goal and need, Legal action, Physical object, Place, Registration, Specification and product, Standard text and communication, Technical entity, Type 王正茂: Account and fund, Actuarial statistics and index, Assessment and condition, Category, Contact point and preferences, Event, Financial account, Goal and need Ben: Agreement, Financial transaction, Money provision, Party,|,EDW和ODS的关系,Person、External organisation 、FS Role(投保人/被保人)通过ODS产生 由于加载顺序的关系,保单表由业务系统产生,产生保单信息时,ODS数据还没有加载。因此, Individual agreement中的Policyholder id、Group agreement中的Policyholder organisation id不冗余产生,而是通过FS Role走。,|,Id产生规则,每个表单独使用id序列 建id序列表,|,Anchor表是否需要物理产生,建物理产生Anchor表 所有和Anchor直接外键关联的type id冗余,|,Person归并决策,Person,external organisation在EDW不再进行归并,|,Boolean,0 false 1 true,|,Atomic derived data,Atomic层表中,有部分字段保存的是从其他表或字段中导出的数据,如:claim folder中total cost,是从internal claim cost中统计来的。 对于这部分字段,分为两部分: 目前analytical层或data mart用到的,需要处理 暂时没用的字段,暂不处理 这部分字段的处理,在atomic产生完成后,产生analytical层前处理。,|,Atomic,Analytical,1,2,物理分表,|,备注:没特别注明的其他类型的在原Entity中,Money scheduler,Money in scheduler 用于连接对于保险公司来说是进来的钱的particular money provision/Financial transaction,如:保费、储金(包括批增、批减) Money out scheduler 用于连接对于保险公司来说是出去的钱的particular money provision/Financial transaction,如:赔款、支付的养老金(包括摊回赔款) 每个保单签单产生一个Money in scheduler,保单不含批单的保额、保费挂在该Money in scheduler下;每个批单单产生一个Money in scheduler,该批单对应的保额、保费变化挂在该Money in scheduler下。 每个赔案产生一个Money out scheduler,该赔案对应的Particular money provision挂在该Money out scheduler下。,|,关联表冗余进实体表中 1/2,|,关联表冗余进实体表中 2/2,|,Anchor的type id冗余到外键关联的表中 -1/2,|,Anchor的type id冗余到外键关联的表中 -2/2,|,Claim中涉及的各种金额存放规则 1/2,|,Claim中涉及的各种金额存放规则 2/2,Particular money provision对应赔案级,其中不存放金额,起关联作用(Agreement id,Agreement type id,Money scheduler id,(Money payee id,Money payee type id,Money payer id,Money payer type id有则产生)。Money scheduler一个赔案产生一条记录,该赔案下的Particular money provision都挂在这个Money scheduler下。 Claim offer可以存放多种offer,可以为服务、物品或金钱(包括状态是未决的) Internal claim cost用于存放理算后的公司内部发生的各种理赔费用,如查勘费、施救费、律师费等。 Internal claim cost通过Internal claim cost - Claim Rlship 与claim folder关联 查勘表中记录的明细费用(如查勘费、施救费、律师费等)放在Money provision part,通过Money provision cash flow到 Particular money provision中的activity id连接到查勘活动中 Money provision part用于存放赔给客户的赔款明细(包括状态是未决的)、到赔付项目代码级别。 Money provision cash flow用于存放子险级合计的赔款金额,和claim offer对应 放在Money provision cash flow和Money provision part中赔款的钱金额变化、 Money provision cash flow /Money provision part中赔款金额不保留版本,当出现修改时直接修改这些表中的记录 Claim Offer 中的赔款金额不保留历史,将来如果业务需要,再做保留历史处理 立案的估损/定损都放在Financial valuation中 估损/定损明细单独建表,|,核保核赔在EDW模型中的处理,核保核赔本身是一个工作流程的活动,每个核保核赔又细分成不同的步骤,如:收集单证,复核等活动步骤。类似于IIW中的campaign,campaign cell和campaign step的关系。 在EDW中产险使用underwriting check/claim check来存放核保核赔信息,主活动和活动步骤通过不同的type来区分。主活动和活动步骤通过underwriting check/claim check的自关联实现。 每个主活动只需要保留一条记录,有变化update;因为每个具体的步骤包括了该活动变化的信息。 对于一个投保单多次核保的情况,每个核保一个主活动。,|,投保单/协议申请单的处理,以下投保单指:投保单或协议申请单 投保单作为保单的一个历史状态处理。 全量数据: 即使投保单已成为保单,也要插入一条投保单的记录。Valid from date录入日期,valid to date签单日期。 Effective from date投保日期(如果没有投保日期,同valid from date),Effective to date签单日期。如果该投保单记录的目标表是individual agreement,则投保单的记录直接插入individual agreement history。 如果投保单还没有成为保单,投保单的Valid from date录入日期,valid to date9999/12/31。 Effective from date投保日期(如果没有投保日期,同valid from date),Effective to date 9999/12/31 。 增量数据: 如果投保单已经变为保单了,就作为保单的历史记录,新插入保单的记录, 如果目标表是individual agreement,则投保单的记录挪到individual agreement history中。 如果目标表是不是individual agreement,则投保单的记录仍然在原表中。如:group agreement,commercial agreement。 投保单和保单共用同一个agreement id,type id分别为投保单、保单(团单,个单,个单凭证等)。 投保单只保持一条记录,最新状况update该记录。 备注:如果将来投保单数据太多,影响执行效率,由其他程序定期执行归档处理,将已成为保单的n年前的投保单数据归档。 有的系统投保单和保单是同一条记录,有的系统投保单和保单是不同条记录。在EDW中必须保持一致的处理方式。,|,批改申请单的处理,批改不记录历史,因此,批改申请和批改使用同一条记录,有改变直接Update该记录。 在change request中新增一个字段存放批改申请号。,|,日程,为什么需要模型 模型的组织结构 模型实施方法 模型设计策略 Q & A,|,日程,Thank you!,|,
展开阅读全文