AirJD 焦点
AirJD

没有录音文件
00:00/00:00
加收藏

如何成为真正的数据架构师 by 郑保卫

发布者 arch
发布于 1453164830049  浏览 5177 关键词 数据库, 架构 
分享到

第1页

pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential





第2页

为什么需要构建数据架构 数据架构的构成 如何成为数据架构师 问题讨论



第4页

数据标准不一致

列名相同,列的数据类型不同



列名相同,列的数据类型相同,长度不同



列名定义没有统一标准,识别困难



列名定义不统一,类型不一致,长度不相 同



pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential



中文名称相同,英文缩写不同,英文缩写 相同,中文名称不同

模型中缺失中文注释,难以验证。





第5页

数据模型管理混乱



pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential





第6页

深入的性能的问题无法解决



需要通过SQL 语句及数据 模型分析性

能问题



缩减H/W Resource



优化比重超过80%



INDEX



SQL 优化比重超过50%



Hin t 优化比重超过30%



帮助开发人员及 运维人员提高数据

库技术水平



优化比重未达10%

pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential





第7页

SQL语句编写水平不高导致出现严重性能问题



select a.*

from LCCont a, lcpol b, lccontstate c

where 1 = 1

and a.contno = b.contno and a.manageCom like '86%'

and a.appflag = '1' and b.appflag = '1' and c.contno = b.contno

and b.polno = b.mainpolno and c.polno = b.mainpolno and c.StateType = 'Available'

and c.State = '0' and c.EndDate is null and b.AutoPayFlag = '1' and not exists (select 'X' from lcconthangupstate where contno = a.contno and posflag = '1')

and exists (select 1 from LMRiskApp where RiskCode = b.RiskCode and AutoPayFlag = '0') and exists (select 1 from LJSPayPerson d where d.ContNo = b.ContNo

and not exists (select 1 from LJTempFee where otherno = a.contno and TempFeeType = '2' and confdate is null and (enteraccdate is null or enteraccdate < date '3000-1-1'))

and nvl((select BankOnTheWayFlag from ljspay s where s.getnoticeno = d.getnoticeno), '0') <> '1'

and d.LastPayToDate < to_date('2015-01-27', 'YYYY-MM-DD') and d.PayType = 'ZC')



pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential





第8页

开发人员对执行计划收悉



-----------------------------------------------------------------------------------------------------------------------------------



| Id | Operation



| Name



| Starts | E-Rows | A-Rows | A-Time | Buffers | Reads |



-----------------------------------------------------------------------------------------------------------------------------------



| 0 | SELECT STATEMENT



|



| 1|



| 2356 |00:23:58.36 | 4589K| 287K|



| 1 | NESTED LOOPS



|



| 1 | 1 | 2356 |00:23:58.36 | 4589K| 287K|



| 2 | NESTED LOOPS ANTI



|



| 1 | 1 | 3530 |00:23:41.89 | 4578K| 283K|



| 3 | NESTED LOOPS SEMI



|



| 1 | 1 | 3553 |00:23:41.54 | 4574K| 283K|



| 4 | NESTED LOOPS



|



| 1 | 1 | 3556 |00:23:41.51 | 4570K| 283K|



|* 5 |



TABLE ACCESS BY INDEX ROWID | LCPOL



| 1 | 1 | 162K|00:08:32.81 | 1776K| 40189 |



|* 6 |



INDEX RANGE SCAN



| IDX_ENCN_LCPOL_C04



| 1 | 1 | 1905K|00:00:00.01 | 28971 | 0 |



|* 7 |



TABLE ACCESS BY INDEX ROWID | LCCONT



| 162K|



1 | 3556 |00:15:08.56 | 2794K| 242K|



|* 8 |



INDEX UNIQUE SCAN



| PK_LCCONT



| 162K|



1 | 3556 |00:14:28.01 | 2791K| 237K|



|* 9 |



FILTER



|



| 162K|



| 3556 |00:14:20.10 | 2465K| 235K|



|* 10 |



FILTER



|



| 162K|



| 5847 |00:14:04.26 | 2450K| 231K|



|* 11 |



TABLE ACCESS BY INDEX ROWID| LJSPAYPERSON



| 162K|



1 | 5847 |00:01:10.04 | 505K| 16934 |



|* 12 |



INDEX RANGE SCAN



| IDX_LJSPAYPERSON_1



| 162K|



2 | 30421 |00:00:04.05 | 488K| 863 |



|* 13 |



TABLE ACCESS BY INDEX ROWID| LJTEMPFEE



| 162K|



1 | 101 |00:12:53.91 | 1944K| 214K|



|* 14 |



INDEX RANGE SCAN



| IDX_LJTEMPFEE_1



| 162K|



2 | 1453K|00:00:55.19 | 493K| 17104 |



| 15 |



TABLE ACCESS BY INDEX ROWID | LJSPAY



| 4993 |



1 | 4993 |00:00:15.74 | 15075 | 3941 |



|* 16 |



INDEX UNIQUE SCAN



| PK_LJSPAY



| 4993 |



1 | 4993 |00:00:02.49 | 10082 | 727 |



|* 17 | TABLE ACCESS BY INDEX ROWID | LMRISKAPP



| 3556 | 116 | 3553 |00:00:00.02 | 3652 |



0|



|* 18 |



INDEX UNIQUE SCAN



| PK_LMRISKAPP



| 3556 |



1 | 3556 |00:00:00.01 |



96 |



0|



|* 19 | TABLE ACCESS BY INDEX ROWID



| LCCONTHANGUPSTATE



| 3553 |



5 | 23 |00:00:00.36 | 3675 | 41 |



|* 20 | INDEX RANGE SCAN



| PK_LCCONTHANGUPSTATE | 3553 |



1 | 23 |00:00:00.35 | 3651 | 41 |



|* 21 | INDEX RANGE SCAN



| IDX_ENCN_LCCONTSTATE_C01 | 3530 |



1 | 2356 |00:00:16.46 | 10799 | 4485 |



-----------------------------------------------------------------------------------------------------------------------------------



ELASPED TIME : 23.58.36



pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential





第9页

开发人员对执行计划收悉



-----------------------------------------------------------------------------------------------------------------------------------



| Id | Operation



| Name



| Starts | E-Rows | A-Rows | A-Time | Buffers | Reads |



-----------------------------------------------------------------------------------------------------------------------------------



| 0 | SELECT STATEMENT



|



| 1|



| 2356 |00:02:56.73 | 581K| 31409 |



| 1 | NESTED LOOPS ANTI



|



| 1 | 1 | 2356 |00:02:56.73 | 581K| 31409 |



| 2 | NESTED LOOPS



|



| 1 | 1 | 2436 |00:00:01.41 | 555K| 0 |



| 3 | NESTED LOOPS ANTI



|



| 1 | 1 | 3610 |00:00:01.38 | 544K| 0 |



| 4 | NESTED LOOPS



|



| 1 | 1 | 3634 |00:00:01.35 | 540K| 0 |



| 5|



NESTED LOOPS SEMI



|



| 1 | 1 | 3634 |00:00:01.29 | 529K| 0 |



| 6|



TABLE ACCESS BY INDEX ROWID | LCPOL



| 1 | 1 | 3637 |00:00:01.29 | 529K| 0 |



|* 7 |



INDEX RANGE SCAN



| IDX_ENC_TEST_B05



| 1 | 1 | 3637 |00:00:01.27 | 526K| 0 |



|* 8 |



FILTER



|



| 162K|



| 3637 |00:00:01.02 | 521K|



0|



|* 9 |



TABLE ACCESS BY INDEX ROWID| LJSPAYPERSON



| 162K|



1 | 5928 |00:00:00.88 | 506K|



0|



|* 10 |



INDEX RANGE SCAN



| IDX_LJSPAYPERSON_1



| 162K|



2 | 30587 |00:00:00.70 | 488K|



0|



| 11 |



TABLE ACCESS BY INDEX ROWID| LJSPAY



| 5074 |



1 | 5074 |00:00:00.05 | 15318 |



0|



|* 12 |



INDEX UNIQUE SCAN



| PK_LJSPAY



| 5074 |



1 | 5074 |00:00:00.02 | 10244 |



0|



|* 13 |



TABLE ACCESS BY INDEX ROWID | LMRISKAPP



| 238 | 116 | 235 |00:00:00.01 | 298 |



0|



|* 14 |



INDEX UNIQUE SCAN



| PK_LMRISKAPP



| 238 |



1 | 238 |00:00:00.01 |



60 |



0|



|* 15 |



TABLE ACCESS BY INDEX ROWID | LCCONT



| 3634 |



1 | 3634 |00:00:00.05 | 10998 |



0|



|* 16 |



INDEX UNIQUE SCAN



| PK_LCCONT



| 3634 |



1 | 3634 |00:00:00.02 | 7364 |



0|



|* 17 | TABLE ACCESS BY INDEX ROWID | LCCONTHANGUPSTATE



| 3634 |



5 | 24 |00:00:00.02 | 3756 |



0|



|* 18 |



INDEX RANGE SCAN



| PK_LCCONTHANGUPSTATE | 3634 |



1 | 24 |00:00:00.02 | 3732 |



0|



|* 19 | INDEX RANGE SCAN



| IDX_ENCN_LCCONTSTATE_C01 | 3610 |



1 | 2436 |00:00:00.03 | 11041 |



0|



|* 20 | TABLE ACCESS BY INDEX ROWID



| LJTEMPFEE



| 2436 |



3 | 80 |00:02:55.31 | 26161 | 31409 |



|* 21 | INDEX RANGE SCAN



| IDX_LJTEMPFEE_1



| 2436 |



2 | 21203 |00:00:06.93 | 5034 | 2424 |



-----------------------------------------------------------------------------------------------------------------------------------



ELASPED TIME : 02.56.73



pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential





第10页

上线前缺乏审计

有必要构建流程+工具+指标的代码(SQL)性 能审计体系,将90%以上的系统性能问题防止

于未然,保障系统效率,提升用户体验。



现有问题

 SQL质量低  索引问题多  系统性能差



1 系统性能问题频繁出现,用户体验差,业务处理效率低。现有问题



2 数据库参数优化已无明显效果,性能问题依然存在。



3 现有人员性能优化经验不足。 4 开发过程中未对SQL及索引进行全面审查。



 运维压力大  性能审计缺失  用户体验不好



5 因性能问题导致运维压力大,难度不断提升。



6 缺乏体系化的代码(SQL)质量审计体系和流程。



7 亟待构建工具+人的半自动化代码(SQL)审计体系。



当前上线前无审计的开发方式,给系统运维带来巨大压力,造成系统执行效率低,用户体验差等问题

pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential





第11页

上线前审计体系



数据架构师



标准指标 需求指标



专家 评审



审计指标库

审计工具

输出



修改或新增指标 插件包

修改及优化建议



研发团队

数据库 管理小组



产品 研发



提交测试



功能测试



压力测试



输出



搭建 验证环境



功能测试



压力测试



执行审计



审计 报告



否 是 产品



是否达标



发布



执行审计



否 是否达标 是

审计 报告



正式上线



pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential





第12页

相对复杂的数据处理能力欠缺 X



pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential





第13页

相对复杂的数据处理能力欠缺 X=

统计结果

pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential





第14页

数据质量差需要执行数据质量管理



1. 质量标准/诊断对象 定义



DQI 定义



CTQ 定义 CTQ 候补对象选定



CTQ 重要性 评估



CTQ 认定



业务域定义 DQ 业务域 定义

业务域/ DBMS 映射



3. BR 定义

CTQ 应用对象 列 收集



2.剖析

剖析对象选定

剖析 列 分析

Pattern分析 日期分析 代码 分析

有效值分析



各个 列 BR 定义



BR 确定



4.数据质量诊断

各个BR 错误率 测算



5. 数据质量改进



错误原因分析



数据质量改进计划订 立



数据质量改进



质量诊断 按照各BR 次数 增加



1. 质量基准/诊断对象的定义

• 作为数据质量测定的基本信息,需要设定 DQI, CTQ, 业务域等

•产 出 物 : 数 据 质 量 管 理 定 义 书 (DQI & CTQ)

2. 剖析

• 对选定的业务域,掌握数据质量的现状,而执行 的分析手段

• 数据质量管理对象明确的时候,可以跳过剖析过 程

3. BR 定义

• 数据质量基准以及诊断对象为基础,收集各种业 务规则,将其定义为可测算的形态

• 产出物 : 业务规则定义书

4. 数据质量测定

• 对确定的BR进行错误率测算

5. 数据质量改进

• 业务负责人对数据错误进行原因分析,并确定计 划进行改进和清洗



pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential





第16页

数据架构在企业结构中的定位



企业架构(EA)



架构矩阵



企业架构蓝图 企业架构策略



企业架构信息 当前架构 开发部门



需求部门



技术规划



迁移 计划



目标架构 数据架构



业务架构



技术架构



运维部门



应用架构



企业架构管理



企业架构管理体系



企业架构管理系统



企业架构评估



pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential





第17页

企业架构流程构成



设计企业架构蓝图

企业架构定义

企业架构环境分析

企业架构构建方向定义

企业架构构成定义



企业架构构建



企业架构信息构成定 义

企业架构环境分析



企业架构信息构建



当 数据架构



前 架



业务架构



技术架构



构 应用架构



企业架构构建方向定义 企业架构构成定义



目 数据架构 标



架 业务架构



技术架构



构 应用架构



企业架构管理



企业架构管理体系构 建

企业架构组织设置



企业架构管理系统

企业架构建模工具



企业架构应用

企业架构迁移计划



架构差异分析



项目设立



迁移计划制定



企业架构流程设计



企业架构知识库构建



企业架构人员设置



企业架构信息管理系统



pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential



IT规划



企业架构落地



IT构建



IT管控





第18页

数据架构构成



数据架构管理



数据架构管理对象



数据标准



数据模型



数据库



数据质量



数据架构管理流程

数据标准管理流程 数据模型管理流程 数据库管理流程 数据质量管理流程



数据架构管理组织

数据架构师主席 数据架构师 数据建模人员 数据库管理员



用户



管理系统

数据质量管理系统 配置管理系统 变更影响评估系统 元数据管理系统 数据建模工具



pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential





第19页

数据架构组织结构



数据管理

数据治理政策 数据标准管理 需求事项管理 数据结构管理

数据流管理 数据库管理 数据运用管理 数据治理质量改善



数据管理组织

数据架构总监

(Chief Data Architect)

数据架构师

(Data Architect)

数据建模设计师

(Data Modeler)

数据库管理员

(Database Administrator)

用户



19 pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential



数据管理组织角色



第20页

数据架构部门的角色及工作



从企业全局出发,让标准化的数据处理贯穿于整个系统生命周期



数据架构



数据模型



程序开发



数据迁移



测试及优化



在整个系统生命周期中数据架构部门始终扮演重要角色



数据架构构建阶段 • 构建数据架构 • 制定管理体系 • 标准化



设计阶段

• 概念模型设计 • 逻辑模型设计 •物理模型设计 • 培训



pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential



开发阶段

• 开发技术支持 • 形状管理 • 编写核心SQL



迁移阶段

• 迁移技术支持



测试阶段

• TUNING • 设计最优INDEX • 提出问题解决方案



第21页

数据架构部门的角色及工作



如下表中列举了在分析、设计、开发阶段中DA团队与开发团队的角色和任务, 以及详细的设计步骤。



企业主题域及 企业概念模型



分析 概念数据模型



逻辑数据模型



设计 物理数据模型



开发 DBMS



角色



DA 开发团队



DA T A S K

开发团队



概念数据模型设计 及标准化



逻辑数据模型设计 及技术支持



逻辑数据模型



概念模型设计 概念模型共享



逻辑数据模型设计 及标准化

逻辑数据模型 验证及反馈



培训



- 数据模型设计 - 建模工具介绍,用户API使用方法 - 数据模型登录步骤



业务分析

提出概念数据模型 设计需求



逻辑数据模型设计

逻辑数据模型 验证申请及修改



物理数据模型设计 及技术支持

物理数据模型



开发技术支持 SQL编写



物理模型设计 及标准化

物理数据模型 验证及反馈

数据模型登录技术支持



SQL编写技术支持

性能改善技术支持

数据模型修改管理 (变更承认)



数据标准应用 物理数据模型设计

数据模型登录



SQL编写

SQL应用 数据模型修改管理

(修改申请)



pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential





第22页

数据架构部门详细工作任务

数据设计政策及详细任务 ( ※ 必选项 )

1.1 数据标准定义※



1.2 数据模型设计标准定义 ※ 1.3 逻辑数据模型设计方法 ※



数据架构师



2.3 数据标准申请支持※ 2.4 数据标准应用API支持 ※ 2.5 数据模型变更管理 2.6 复杂数据处理支持



2.1 物理模型设计方法 ※ 2.2 模型管理技术支持 ※



3.1 SQL及数据库技术培训※ 3.2 SQL编写规则设计及审计※ 3.3 INDEX优化及SQL优化



pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential





第23页

数据架构管理体系



制度和指南

请求及使用



数据标准及模型



管理体系



宣讲及应用



数据政策管理



数据值管理



检查

审批及管理



请求制 数据用户 定标准



企 业 信 建模人员 息 系 统



请求结 构变更

查询 元数据



系统开发员 标准 应用



系统分析员



企业元数据库



数据分类体系



数据标准



数据模型



数据库对象



应用程序影响度分析



数据质量



元数据管理系统



数据标准管理



数据结构管理



企业数据管理方案

pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential



企业数据管理原则



数据标准管理指南



审核

标准 检查

结构 检查

培训 宣讲



数据架构主席 数据管理委员会 数据架构师



数据标准管理 员

数据架构方法论



第24页

数据架构内部工作流程



需求管理系统



数据模型管控系统



数据治理系统



需求登录



数据标准登录/申请



数据标准审计/审批



数据模型设计/审计



数据模型申请



数据架构师模型审计



信息项管理



数据架构师模型审批

DDL自动生成 DBA 审计

DBA脚本执行



信息项审计/审批



数据模型生成/评审



影响评估



信息项登录/申请



数据标准审计/审批



pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential



数据标准登录/申请



数据质量管理系统



变更影响评估系统



 从信息形成的时间点开始治理  通过流程进行管控  减少人工参与,提高自动化程度



变更影响评估



基于数据模型登录BR 基于业务规则登录BR

错误数据分析 错误数据清洗



相关程序分析 24



第26页

数据架构部门详细工作任务



 了解数据架构师的定义  了解数据架构师从事那

些工作  了解数据架构师应该具

备的能力  了解数据架构师在企业

中位置及职业生涯



 了解成为数据架构师的

途径  寻找合适的书籍和培训

课程  向有经验的专业人士学

习经验  参与相关交流活动



 学习理论知识的同时, 从技术上、组织上、流 程上、产品上等方面逐 渐尝试将其落地,并在 实战中提升

 扩大数据架构师在现有 工作环境中影响力和价 值,寻找合适定位。



 稳定数据架构在企业系 统设计、开发、运维环 节的地位。

 将其作为企业架构中必 不可少的组成部分,形 成四足鼎立之势



pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential





第27页

成为数据架构师需要学习的技术



企业架构概要 1 数据架构建设 2

企业架构管理及应用 3



数据库设计 1 数据库应用 2 数据库性能优化 3



企业 架构



数据库设计 及应用



1 数据质量、标准、模型、管理等内容

2 数据结构,概念、逻辑、物理模型

3 数据管理流程,标准、策略、需求、模型、 数据库、数据应用、数据流等管理



数据质 量管理



1 信息需求事项概要 2 信息需求项调查 3 需求项分析及验证



数据需

求분分석析



数据建模

概念数据建模技术 1 逻辑数据建模技术 2 物理数据建模技术 3

pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential



数据标准化

1 构建原子性单词词典 2 构建由原子性单词自动拼接而成的用语词典 3 构建标准编码词典及标准管理体系



第28页

pyright ⓒ 2012 EN-CORE Co., Ltd. All rights reserved | Confidential





支持文件格式:*.pdf
上传最后阶段需要进行在线转换,可能需要1~2分钟,请耐心等待。