面试真题-数据治理工程师
前面找到了一个数据治理的面试,简单问几个问题,不太熟练,现在回来加深一下印象
·
数据标准化这么实施
现状评估 → 制定标准体系 → 建模与命名规范 → 标准发布与落地 → 持续管控与评估
- 第1步:现状调研与问题诊断
- 目标:了解现有数据的“混乱点”和“差异点”
- 主要工作:梳理各业务系统的数据项、字段定义、编码规则;识别同义异名(如“客户ID”“客户编号”“cust_id”)识别数据口径不一致(如“销售额”定义不同);汇总问题清单
- 成果输出:数据标准现状评估报告;问题分类(命名类、格式类、口径类、编码类)
- 第2步:制定数据标准体系
- 目标:建立统一的标准框架
- 关键动作:参考国家标准(GB/T)、行业标准(如金融、能源);明确数据标准管理组织(数据管理委员会或数据标准组)建立《数据标准管理办法》《数据命名规范》《指标口径规范》等文档
- 第3步:标准设计与建模落地
- 目标:将标准落入技术实现层面
- 工作内容:在数据模型层面建立标准化字段(如ODS、DW、DM层字段命名统一),规范化主数据模型(如客户、供应商、产品,定义标准编码体系(如地区、组织、币种,推动元数据管理平台对标准的落地与校验
- 第4步:标准发布与落地执行
- 目标:让标准“用起来
- 方式:在数据管理平台发布标准,在新系统开发、数据仓库建设、接口设计时强制引用;建立“数据标准评审流程”,所有新数据项需经过标准审核;对老系统逐步推进字段改造或映射。
- 第5步:持续管控与评估
- 目标:保持标准活性与持续合规
- 主要机制:版本管理:标准变更需有版本号与变更记录;合规检查:定期扫描系统字段命名、代码使用;问题反馈与优化:收集使用中问题,定期更新;指标监控:通过质量监控系统检测是否有偏离标准的数据。
什么是数据共享
数据共享是指在保证安全、合规、可控的前提下,将一个部门、系统或组织的数据资源 按标准方式提供给其他部门或系统使用,从而实现数据的 互联互通、业务协同、价值共用。
- 数据共享的核心目标
| 目标 | 说明 |
|---|---|
| 打破数据孤岛 | 不同业务系统、部门之间的数据可互通; |
| 促进业务协同 | 支撑跨部门流程(如审批、监管、客户服务) |
| 提升数据价值 | 一次采集、多次使用,减少重复建设 |
| 支撑决策分析 | 汇聚共享数据用于BI、AI、数字化运营 |
Oracle表空间是什么?
**表空间(Tablespace)**是 Oracle 数据库中 逻辑上的数据存储单元,它用来 组织和管理数据库中的数据文件。
逻辑层次
| 层级 | 含义 |
|---|---|
| 数据库 | 一个完整的数据库实例 |
| 表空间 | 数据库中的逻辑分区 |
| 数据文件 | 实际存放数据的物理文件 |
| 段 | 存放表或索引的数据结构 |
| 区 | 一组连续的数据块 |
| 块 | Oracle 数据最小存储单位 |
SQL查询慢原因和解决方法
SQL查询慢的常见原因:
- SQL层:写法不当,语句逻辑复杂、嵌套多、无谓的函数、无条件查询
- 索引层:未用索引 / 用错索引,无索引、选择性差、索引失效(隐式转换等)
- 数据层:表数据量大 / 统计信息不准,全表扫描、CBO估算错误
- 资源层:I/O、CPU、内存、网络瓶颈,并发太高或资源不足
- 锁与等待:会话阻塞、锁竞争,DML操作锁表、事务未提交
- 设计层:表结构与业务模型设计不合理,反范式不当、字段冗余、外键过多
主键和唯一索引的区别
主键 = 唯一索引 + 不允许为空 + 被定义为表的标识。
唯一索引 = 仅保证列值不重复,用于辅助约束或优化查询。
| 对比点 | 主键 | 唯一索引 |
|---|---|---|
| 本质 | 数据完整性约束 | 索引结构 |
| 唯一性 | 唯一且非空 | 唯一但可空 |
| 数量限制 | 每表1个 | 可有多个 |
| 外键关联 | 可被引用 | 不可被引用 |
说一下hive的数据倾斜,和解决方案
在 Hive 执行分布式计算时,某些 key 的数据量远大于其他 key,导致部分 task 处理数据过多、执行缓慢。
数据倾斜出现的典型场景:GROUP BY、JOIN、COUNT(DISTINCT)、ORDER BY / DISTRIBUTE BY、空值或默认值过多
数据倾斜的本质原因
- key 值分布极不均匀:部分 key 出现次数过多(如热门商品ID)。
- 空值集中导致倾斜:join 或 group by 字段存在大量 NULL。
- 小表广播不当:大小表 join 选择错误。
- Reducer 分配不均:Hash 分桶不均衡导致部分 reducer 负载过重。
- Hive 参数默认行为:Hive 默认用 Hash 分发数据到 reducer,如果 key 分布不均,则倾斜。
从本质原因解决问题:
- Hive 将小表加载到内存中,在 Map 端直接 join,避免数据倾斜的 Shuffle 过程。
- 将 NULL 或热门 key 单独处理,避免集中到一个 reducer
- 在 join 或 group by 之前,为热点 key 添加随机前缀,使其分散到多个 reducer。
- Hive 会将倾斜 key 的数据随机分配给多个 reducer,然后再启动第二阶段 Reduce 汇总,常用于 GROUP BY 场景
- 适度增加 reducer 数可分摊热点 key 负载
- 只扫描目标分区,避免全表数据倾斜
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)