银行ETL-监管报送

1104报表

1104报表主要包括:资产负债,表外业务、流动性风险、贷款质量、投向行业和地区、重点客户等。

1104报表分类

普通报表、特色类报表。

反洗钱

大额交易、可疑交易。标签分类:疑似犯罪、疑似毒品、疑似传销。

反洗钱---接口报表

数仓面试题

什么时候用星型模式?什么时候用雪花模型?

星型模型:事实表和维度表直接关联。

雪花模型:只要有任何一个维度表和事实表是间接关联的。

在数仓建设时比较适合使用星型模型构建底层数据Hive表,通过大量的冗余来提升查询效率。

雪花模型比较适合用在数据市集。

什么是维度表?什么是事实表?

事实表就是你要关注的内容。

维度表就是你观察该事务的角度。

如果现在有一千张表从一个库到另外一个库的ODS层,你会怎么做?

利用消息队列做数据订阅发布。

如何把数据从源系统抽到ods层?

通过 kettle 这个ETL工具来实现的,从不同源系统中抽取数据,做数据清洗,把不同类型的数据转换成目标表的数据,然后通过调度工具每天跑数。

抽数频率是什么?有没有做实时抽数?

不同job的抽数频率不一样,有些T+1天抽取,有些是每2小时。

数据表设计三范式?

  1. 每一列都要拆分到不能再拆分的最小粒度。
  2. 每个表都要有主键,并且主键列必须和其他列有关联。
  3. 主键必须和所有列直接关联,而不是间接关联。

说说数仓分层?

  • ODS层:原始数据层。存放原始数据。
  • DWD层:明细数据层。对ODS层数据进行清洗(去除空值、脏数据、超过极限范围的数据)。
  • DWS层:服务数据层。以DWD为基础,进行轻度汇总。
  • ADS层:数据应用层。为各种统计报表提供数据。

为什么要对数仓进行分层?

  • 把复杂问题简单化。
  • 减少重复开发。
  • 隔离原始数据。

说说你对数据仓库的理解?

数据仓库经历三个阶段:简单报表阶段、数据集市阶段、数据仓库阶段。

常见的缓慢变化维处理方式有那三种?

  • 直接覆盖:不记录历史数据,薪数据覆盖旧数据。
  • 新加一行数据(纵向扩展)。
  • 新加两个字段(横向扩展)。

结合具体例子说说你是怎么做缓慢变化的?

背景:有100w用户,用户表记录了他们的状态,部分用户状态每天都有更新。

做法:用拉链表,每天把更新用户的数据插入到用户表。这样既保留了历史数据,并且使存储最为节约。

如何控制数据质量?

  • 运用校验机制。
  • 数据内容的比对,抽样对比。
  • 复盘、每月做一次全量。

说一下你们数仓的数据处理流程?

按照数仓分层思想,分为ods贴源层、dw主题层、mid维表层、dm集市层、app应用层。

过程如下:

  1. 数据通过采集或同步落地基于HDFS存储的ods层。
  2. 主题抽取确认。
  3. 构建维表层数据,如时间、地区、产品类别等数据。
  4. 进行数据集市构建如统计结果、用户画像、TopN热门数据。
  5. 进行集市数据的输出到app进行BI可视化展示。

表分类?

  • 实体表:指业务对象。
  • 维度表。
  • 事务型事实表:一般指随着业务发生不断产生数据,特点是一旦发生不会再变化。
  • 周期型事实表:一般指随着业务发生不断产生变化(更新,新增)的数据。

同步策略有哪些?

  • 全量表:存储完整的数据。
  • 增量表:存储新增加的数据。
  • 新增及变化表:存储新增加的数据和变化的数据。
  • 拉链表:对新增及变化表做定期合并。

实体表(用户,商品,商家):每日全量。

维度表(订单状态,审批状态,商品分类):每日全量。

事务型实时表(交易流水,操作日志):数据量大且不变,每日增量表,每日创建一个分区存储。

周期型事实表(订单,请假等):用每日新增和变化表,制作一张拉链表。

一张500W的表同步过来数据变成了800W,分析哪里的问题?

全量:表里原来就有数据,没有清空;增量:限定的时间有问题。

一张特别大的表 ,几千万的表 怎么通过ETL工具同步?

在ETL工具中,插入数据的时候,可以设置批量提交。比如10万条记录提交一次 ,而不是一次性提交 。

如果抽来的数据有重复的怎么解决?

使用 kettle 核心组件中的去除重复记录控件。

kettle抽数一般遇到什么问题,你们是怎么解决的?

Kettle在不同的数据库抽取数据时,有时会出现中文乱码问题。在输出时,对输出的数据库进行编码配置。

有两张很大的表关联,怎么做才能关联性能好?

关联之前先过滤,再关联。

Oracle怎么进行性能优化?

Oracle性能优化三板斧:索引优化,分区表优化,执行计划(HINTS 优化器优化)。

怎么去重?

用 distinct 或 group by。直接去重、分组去重。

什么是拉链表?

拉链表是为了保留历史数据,并且使存储最为节约。不需要保留历史记录的表一般不做拉链表。

拉链表的实现方式有哪几种?

  • 每天只留最新的一份,比如我们每天用 kettle 抽取最新的一份全量数据到Hive中。
  • 每天保留一份全量的切片数据。

拉链表怎么更新的?

  • 每天drop掉前一天的数据,重新抽一份最新的。
  • 每天一份全量的切片。这是一种比较稳妥的方案,而且历史数据也在。

表分区有哪几种?

  • Range(范围) -- 将一个表通过年份划分成三个分区,80年代(1980's)的数据,90年代(1990's)的数据以及任何在2000年(包括2000年)后的数据。
  • Hash(哈希) -- 对表的一个或多个列的Hash Key进行计算,最后通过这个Hash码不同数值对应的数据区域进行分区。例如可以建立一个对表主键进行分区的表。

  • List(预定义列表) -- 将定义的列表的值所对应的行数据进行分割。例如:DBA建立了一个横跨三个分区的表,分别根据2004年2005年和2006年值所对应的数据。

  • Composite(复合模式) - 其实是以上模式的组合使用而已。举例:在初始化已经进行了Range范围分区的表上,我们可以对其中一个分区再进行hash哈希分区。

Oracle常用函数有哪些?

聚合函数:SUM()、COUNT()、AVG()、MAX()、MIN()。

日期函数: LAST_DAY()、ADD_MONTH()。

字符函数: INSTR、SUBSTR、REPLACE、TRIM。

分析函数: OVER (PARTITION BY ... ORDER BY...)。

相关推荐
achi01018 小时前
Apache Beam 详细入门指南
etl·批处理·流处理·apache beam·dataflow 模型·pcollection·批流融合
QEasyCloud20222 天前
企业数据仓库建设的技术架构与实施方法论
数据仓库·架构
淡定一生23332 天前
数据仓库建模方法
大数据·数据库·数据仓库
RestCloud2 天前
如何用ETL实现多租户数据库的数据隔离与整合
数据库·数据仓库·etl·etlcloud·数据同步·数据集成平台·数据库传输
千桐科技3 天前
数据仓库 vs 数据中台:从“数据库的豪华升级版”到“企业的数据操作系统”
数据库·数据仓库·数据治理·数据中台·数据资产·数据服务·qdata
Joy T3 天前
【大数据】离线数仓核心组件:Hive 架构解析与进阶操作指南
大数据·数据仓库·hive·hadoop·架构
麦聪聊数据3 天前
企业数据流通与敏捷API交付实战(一):ETL、CDC与API调用对比
数据库·数据仓库·低代码·restful·etl
RestCloud4 天前
2026年数据管道可观测性:ETL监控从被动告警到主动预警
数据仓库·数据安全·etl·数据集成·数据同步·数据监控
QEasyCloud20224 天前
企业数据仓库建设:架构设计与实施方法
数据仓库
泯仲4 天前
项目实践|ETL Pipeline 完整解析:从多源文档到向量库的全链路实现
数据仓库·agent·etl·rag