跳转至

6.7—6.8、6.10—6.11 索引、数仓与数据治理

本页要点:索引换取定位效率但需要维护;数仓先明确事实粒度;OLAP操作围绕维度和层级;分布式与治理结论必须说明条件。事务备份恢复主讲在事务专题,挖掘算法主讲在数据挖掘。

6.7 索引:用目录减少扫描

索引保存键与记录定位信息,类似按姓名查目录后定位档案,代价是目录本身占空间、每次变更要维护。B树可在内部结点保存记录入口;B+树内部主要保存分隔键和孩子指针,记录入口集中在同层叶子,叶子通常有序连接。找某账号先沿树下行,找账号100—200先定位100再沿叶链扫描,不必对每行重新从根查找;节点分裂/合并需要维护,缓存命中时不一定每层都产生磁盘I/O。

哈希索引把键映射到桶,适合等值定位,例如账号=1001;不保留一般大小顺序,所以不能只靠一次哈希完成1000—2000范围扫描。查询返回大比例记录时全表扫描也可能更便宜,低区分度不是“禁止索引”,应结合组合条件、覆盖与负载评估。

产品边界:MySQL8.4 InnoDB。 聚簇索引叶层承载行,优先使用主键;无主键时使用首个全列NOT NULL的UNIQUE索引,否则生成隐藏行ID聚簇索引。二级索引叶层包含索引列和主键列,例如按客户号找到主键后再到聚簇索引取余额,称回表;若查询只需客户号和主键,索引已覆盖所需列,可避免为取其他列回表。其他DBMS的非聚簇索引可用不同定位信息,不能把“叶子总是主键”泛化到所有产品。

联合B+索引(客户号,日期)按字典序组织:客户号固定后,日期范围连续,适合查询某客户某月交易;单查日期不能简单按第一列直接定位连续范围,但优化器可能使用跳扫/全索引扫描。索引不保证结果顺序,输出仍需ORDER BY;YEAR(日期)=2026能否高效使用取决于表达式索引与优化器,改为半开日期范围通常更容易匹配普通索引。

I/O分离:目录不同不等于设备独立

I/O(Input/Output,输入输出)分离是按访问模式把表、索引、临时排序或日志等负载安排到合适的存储路径,以减少资源争用或给热点更快的设备;它不等于逻辑上的读写分离。例:冷归档表放容量盘,频繁读取的索引放低延迟SSD;只有实际设备、控制器或带宽提供了所需独立资源,分路径才可能减少瓶颈。同一块盘上新建两个目录、分区或表空间,不能据此宣称吞吐翻倍。缓存已命中、查询受CPU/锁/网络限制时,分盘也未必改善响应;应先减少不必要扫描、检查执行计划,再测I/O等待与延迟。

PostgreSQL18 §22.6 Tablespaces本轮已读:表空间指定对象文件位置,可按负载把常用索引放快盘、归档表放慢盘,支持表/索引/临时对象放置;同一逻辑文件系统建立多个表空间通常无意义。表空间仍依赖集群元数据,不能独立备份或丢失后当作无关文件。上段性能收益是这些前提下的分析,不是源题某个选项的无条件正确性证明。对应R-2022-051。

创建与删除索引:操作对象与方言

假设transactions已有customer_id、create_time,且以下是独立的普通非唯一索引,PostgreSQL18可写:

CREATE INDEX ix_tx_customer_time ON transactions (customer_id, create_time);
DROP INDEX ix_tx_customer_time;

创建后常用“客户固定、日期范围”查询可能减少扫描;插入、删除和修改相关列则需要维护索引并占存储。删除索引移除访问结构,不是删除表中交易;查询仍可执行但可能改走更贵的计划。支持主键/唯一约束的索引不能当作无依赖普通索引任意删,应按产品处理约束依赖。PostgreSQL普通DROP INDEX会取得表ACCESS EXCLUSIVE锁;CONCURRENTLY可减少阻塞但有等待,且不能在事务块中运行,不等于零影响。

MySQL8.4同名普通索引的删除写成DROP INDEX ix_tx_customer_time ON transactions;,必须带表名,不能直接把两种语法互换。本轮已读PostgreSQL18 CREATE INDEX的定义/多列语法、DROP INDEX的Synopsis、锁及约束依赖限制,和MySQL8.4 §15.1.27 DROP INDEX的ON表名语法;示例未在真实服务器执行。对应R-2024-092。

6.8.1 数据仓库、ETL与模型

OLTP(Online Transaction Processing,联机事务处理)面向短事务,如扣款、入账;OLAP(Online Analytical Processing,联机分析处理)面向跨时间和多维聚合,如各省年度交易额,关注查询完成时间和扫描效率。数仓常描述为面向主题、集成、相对稳定、随时间变化;稳定不是永不加载或纠错,历史数据也有治理规则。

ETL(Extract, Transform, Load,抽取、转换、加载)从源系统取数据,统一代码/单位、去重及校验后装载;ELT先装载再在目标平台转换。例:两个渠道分别用“元”“分”记金额,直接相加会错100倍,必须先统一口径与时间边界,保留加工血缘。数据集市面向一个部门/主题,不是任意导出的Excel就天然成为受治理的集市。

星型模型以事实表为中心连时间、客户、产品等维度;雪花模型进一步规范化维度层级,减少维度冗余但增加连接。事实表先声明一行是什么,例如“一笔交易一行”,不能把月汇总与单笔金额混合后直接求和。维度代理键是不依赖业务含义的标识,可用整数或其他生成方案,并非只能数据库自增。

事实类型 一行的粒度 例子与限制
事务事实 一次事件 每笔转账金额可按同币种相加
周期快照 每对象每周期 日末余额可按账户汇总,但跨日期相加不能解释为月末余额
累积快照 一次流程的多个阶段 贷款申请/审批/放款日期,随流程推进更新,并非完全只追加

缓慢变化维SCD(Slowly Changing Dimension)处理属性变化:类型1覆盖旧值,如修正错别字;类型2新增版本行并保存有效期,如客户搬家后要按交易发生时地址分析;类型3新增列存有限前值,不能追踪任意多次历史。类型2需正确匹配事实发生时间,不能把所有历史交易都连到当前地址。独立依据为本轮实际读取的Ralph Kimball,Slowly Changing Dimensions, Part 2:Type 2条目1要求新版本使用新代理键,条目2说明生效时间区间,条目3要求事实匹配当时正确的维度代理键;Type 3段支持用新增字段保存有限替代值。该文章不单独验证上文全部事实表类型或下文OLAP五操作。

6.8.2 OLAP五种操作

设数据维度为时间、地区、产品,度量为同币种销售额。上卷roll-up沿层级由城市汇总为省,粒度变粗;下钻drill-down由年展开为月,要求有对应细粒度数据,不能凭年度总额还原真实每月分布。切片slice固定某个维值,如年份=2025,通常降低一个自由维;并非任何原维数下都固定变成二维。切块dice选择若干维的取值子集或范围,如2024—2025、华东、A/B产品,不要求必须固定“两维以上”才有意义。旋转pivot改变行列展示,例如行放地区改成列放地区,不改原始事实。

6.10 大数据、NoSQL与分布式(补充)

对象 工作机制 例子与限制
HDFS(分布式文件系统) NameNode管理命名空间/块元数据,DataNode存块 大文件顺序读写;副本数可配置,不把常见3当协议常量
MapReduce Map生成中间键值,Shuffle按键重分发,Reduce聚合 统计各地区总额;跨节点传输与落盘有成本
Spark 通过DAG执行引擎组织任务,可缓存复用中间结果 RDD为弹性分布式数据集,另有DataFrame;不保证所有任务都比MapReduce快
YARN ResourceManager与NodeManager协同管理资源和容器 资源调度不等于数据存储或查询语言
键值/文档/列族/图 按键取值/按文档字段/按行键列族/沿关系遍历 会话/商品JSON/设备宽行/资金转账图;访问模式决定选型,NoSQL不等于无事务

数据湖保留结构化、半结构化与非结构化原始数据,配目录、权限、血缘、版本与生命周期,否则变成难以发现与信任的文件堆。湖仓一体尝试结合开放存储与分析治理,不是自动消除质量、成本与安全问题。

分布式数据库用水平分片拆行、垂直分片拆列,用副本提高读取或容错能力;全行平均余额应汇总各分片“总和与数量”再相除,不能直接平均各地均值。CAP讨论发生网络分区时线性一致性C与每个非故障节点请求均能响应的可用性A不能同时保证,不能无条件缩成任意“三选二”。BASE(基本可用、软状态、最终一致)是工程取舍描述,最终一致也需更新传播、冲突解决等机制。全局ID的生成与跨片查询会受分片键影响,协议级副本一致性概述见05架构基础设施页;Raft/Paxos多数派复制不等于跨分片原子事务。

分布式一致性协议与原子提交需要区分:Raft/Paxos的副本日志复制见架构模块唯一主讲;两阶段提交(2PC)的协调者投票、参与者阻塞及产品实现边界也在该页完整讲解,本节仅提示:副本多数派共识本身不等于跨分片原子事务。NewSQL强调可扩展与SQL/事务能力,但具体产品隔离、故障与分布式事务支持必须逐项查版本。

6.11 数据治理与待核实标准

数据治理为数据定义责任、标准、质量和使用规则,数据管理把规则落实到采集、存储、共享、归档及删除。例如客户主数据统一客户标识;元数据记录“余额字段单位为分”;血缘记录它由哪个源字段如何转换。数据清洗只是其中一环,不能替代责任与审批。

质量需按具体维度检验:完整性看字段是否缺,准确性看是否反映事实,一致性看跨系统口径是否相符,及时性看是否按时更新,唯一性看是否重复,有效性看值是否符合格式/范围。例如日期格式合法但错写一年,满足格式有效性却不保证事实准确性;去重后也不证明每条记录真实。

DCMM:能力成熟度与版本要分开

DCMM全称为《数据管理能力成熟度评估模型》,评估对象是组织的数据管理能力。机制是按能力域、能力项与等级要求收集制度、执行记录、度量和改进等证据,识别能力差距,再制定改进任务;不是按数据库容量或采购软件数量定级。例如组织虽制定了统一客户编码,但多渠道仍持续生成重复客户,就应继续核对制度落实、质量监测和责任闭环,不能凭一份文件自称某成熟度等级。此例为机制说明,正式定级须依对应版本全部评估规则。

本轮实际读取全国DCMM评估公共服务平台标准介绍,该页明确讲的是GB/T 36073-2018:八域为数据战略、数据治理、数据架构、数据标准、数据质量、数据安全、数据应用、数据生存周期;五级为初始级、受管理级、稳健级、量化管理级、优化级。手册“八域五级”可按这一历史版本理解,不能直接贴成现行版全部结构。

截至2026-11-04,国家标准全文公开系统信息页确认GB/T 36073-2025现行,2025-12-31发布、2026-07-01实施。已实际读取官方原文阅读器前言及§5.1—5.2:新版代替2018版,模型为9个能力域、33个能力项、5个成熟度等级;用语是“能力域/能力项”,不自行改称CMMI的“过程域”。表1的完整清单如下。

能力域 能力项
数据战略 数据战略规划、数据战略实施、数据战略评估
数据治理 数据治理组织、数据制度建设、数据文化建设
数据架构 数据模型、数据分布、数据集成与共享、元数据管理
数据资产 权属管理、价值评估、资产运营
数据标准 业务术语、主数据、参考数据、数据元、指标数据
数据质量 数据质量需求、数据质量检查、数据质量分析、数据质量提升
数据安全 数据合规管理、数据安全防护、数据安全审计
数据生存周期 数据需求、数据设计与开发、数据运维、数据退役
数据应用流通 数据应用、外部数据管理、数据开放、数据服务

§5.2.1—5.2.5依次为初始级、受管理级、稳健级、量化管理级、优化级。初始级主要在项目层面开展,受管理级已建基本流程并主要在部门层面开展;稳健级建立统一体系、在组织层面推进管理及价值释放;量化管理级通过量化评估管理过程、效率等持续提升能力;优化级将数据视为生存发展的基础,推进业务及产业生态融合。这是所读等级特征的概括,不能据单条特征直接授级。前言还明确新增数据资产域,将旧“数据应用”域更改为“数据应用流通”,并修改等级描述及各项能力等级标准,不能把旧八域直接套用新版。

来源读取边界:官方阅读器共55页,本轮按其公开图片及页面图块位置渲染后目读物理p4—5(目录II、前言III)、p8—11(正文p2—5,含§5.1表1及续表、§5.2五级全部);未逐项读取第6—14章33项的全部实现过程、过程目标及分级要求,逐项定级门槛仍未核全。中国标准在线服务网的适用范围支持组织自评估或第三方评估定位;此前3页公开PDF仅为封面、空白页和目录I,不再据它推断正文。GB/T为推荐性国家标准,不能仅由其存在推出全部银行必须获某等级,也不能把成熟度等级等同监管评级。

EAST与1104:报送口径必须可追溯

1104是银行业非现场监管信息系统;EAST涉及监管标准化数据,通常从业务明细按规定结构抽取,以支持穿透核查与关联分析。二者不是同一报表的两个名称,不能把一套输出文件改名就视为另一套报送。实际读取临沂监管统计实施细则第8—9条,分别列1104系统与EAST数据质量管理职责;该地方文件只证明其辖内安排,不推广为全国部门分工或所有机构均须报全部EAST表。EAST各版本的完整接口、表字段、报送对象名单和频次,本轮仍未取得全国规范全文,明细抽取概述不代替接口规范。

共同的制度依据是实际读取的《银行保险监管统计管理办法》(银保监会令2022年第10号,2023-02-01施行):第2—3条界定境内银行保险机构及监管统计资料;第16条要求真实、准确、及时、完整,同一指标在监管报送和对外披露保持一致,重大差异须解释;第17—19条要求纳入数据治理,法定代表人或主要负责人负最终责任,相关部门负责业务规则确认、填报审核及源头治理;第21—24条覆盖统计口径、方法、分工、全流程质量管理与可追溯归档。办法的广义适用对象不等于每类机构均报同一张1104或EAST表,具体范围与时限仍按统计业务制度和版本通知确定。

落地过程为“确认机构/报送版本与时点→业务确认指标定义→源字段及代码映射→按币种、单位、范围和状态规则加工→表内/跨表及跨体系勾稽→业务与统计审核→报送、留档和差错追溯”。例如教学中三笔符合条件的同币种期末余额为100、200、300元,若某汇总指标采用同一范围、时点和单位,明细汇总应为600元;出现590时应逐项查范围排除、状态、币种折算、时点或缺失记录,不能直接修改明细凑齐报表。若两体系口径本来不同,应保存可解释的差异调节,不要求任意同名字段机械相等。本例不是某张真实监管报表的法定计算公式。

实际读取天津监管局津金罚决字〔2024〕22号,其中违法违规事实包括“监管标准化数据与1104数据存在偏差”;该案同时另有员工行为管理问题,不能把合计80万元全部归因于数据偏差,也不能由单案推出全部字段必须直接相等。分类分级的法规与体系继续见信息安全与科技风险入口,公开/内部/敏感/核心不是全部行业唯一法定分级。

资料依据与核实

手册PDF物理25—28页6.7—6.8、6.10—6.11;回忆版2022题28、51、55(6、9页),2024题47、50—51、55、92—93(20—21、25页),2019题27(30页)。本次实际访问MySQL8.4聚簇与二级索引,仅其明确的InnoDB行为标已核实;SCD类型2/3另以本页Kimball文章的指定段落核实;数仓其他概念、OLAP、分布式产品和标准仍为部分核实/待核实,详见核查表。回忆版2024题50写成A OR A AND B,按布尔吸收律化为A,不能据残缺查询认定联合索引是唯一最佳;2024题47选数仓的来源答案也不排除图数据库适合资金关系追踪,应按分析任务选择。