ETL面试题01

一、基础概念与理论类

1. 请解释什么是 ETL?它在数据处理流程中扮演什么角色?

答:ETL就是数据抽取、转化、加载。目的是将分散的数据源集中在一起进行处理分析。

数据抽取:是指各种数据源中抽取数据,包括关系型数据库(MySQL、Oracle等)、日志文件、Excel、非关系型数据库、流失数据(kafka)等等,可以是全量抽取也可以是增量抽取。

数据转化:是指将抽取到的数据进行清洗、格式转化、数据整合、业务规则计算等等操作,使数据符合目标数据存储的格式和业务需求,是最为复杂的步骤。

数据加载:将清洗转化后的高质量数据加载到目标数据存储中,例如数据仓库(hive等)、数据湖,可以实现全量加载、增量加载、分区加载等,以供后续分析和应用。

ETL在数据处理流程中有重要作用:它将多个数据源进行整合统一,将数据进行转化清洗,提升数据的质量,还能够支持数据分析与业务决策,从数据中发现业务规律与问题,同时ETL工具也可以实现自动化数据流程,保证数据的时效性。

2. ETL 和 ELT 有什么区别?分别适用于哪些场景?

答:这两者主要是操作步骤顺序的不同。

ETL:先将数据转化后再加载到目标数据存储当中,转换依赖ETL工具的计算能力,适合数据量较小的场景。

ELT:先将原数据加载到目标数据存储后,再将数据进行转换计算,可以利用目标存储的分布式计算能力(Spark)进行转换,更适合海量数据处理。

3. 什么是数据仓库?它与数据库的区别是什么?ETL 在数据仓库中起到什么作用?

答:数据仓库是一个面向主题的、集成的、非易失的、随时间变化的数据集合,主要的作用是支持企业的决策分析。

数据仓库的数据都是围绕业务主题组织,它集成了多个数据源,例如数据库、文件、日志等,通常数据一旦进入数据库,是不会被频繁修改的,主要是用来查询分析而不是事务处理。数据会按照时间维度存储历史快照,支持趋势分析。

4. 维度建模中的事实表和维度表有什么区别?各有哪些类型?

答:事实表是业务指标的载体,记录发生了什么;维度表是业务的上下文信息,用来记录人物时间地点、如何发生等。二者通过外键形成层关联,形成“星型模型”或“雪花模型”,支撑灵活的多为分析。

事实表:存储业务过程中可以量化的指标,如销售额、订单数,记载业务流水,数据特点是数据量大、更新频繁。按照数据颗粒度和业务场景可以分为:事务事实表(最常见的订单事务表)、周期快照表(记录固定时间点的业务状态,如每日库存快照表)、累积快照事实表(从业务过程的开始到结束的全生命周期记录)、无事实事务表(记录事件的发生或关系的存在,如浏览记录表)。

维度表:存储描述性信息,如用户、时间地点等,数据量少、更新频率低。按结构和更新方式可分为:常规维度表(如商品维度表)、缓慢变化维度表(处理维度随时间缓慢变化的场景有需要保留历史状态支持回溯,如商品分类调整表)、快速变化维度表(维度属性频繁变化,如:商品实时评分)、角色扮演维度表(同一维度在事实表中扮演多个角色,通过不同外键区分)、退化维度表(维度直接存储在事实表中,不单独创建维度表,通常是事务编号等无复杂描述的字段,例如订单事实表中的订单号)

5. 什么是缓慢变化维度(SCD)?常见的 SCD 类型有哪些,分别适用于什么场景?

答:缓慢变化维度就是可能会随时间缓慢变化的维度,例如年龄、住址变更、商品分类变更等。常见的SCD类型主要是根据业务历史数据进行设计的,主要是业务对于历史数据的需求。

直接覆盖型:不保留历史数据,直接覆盖新值,实现简单节省空间。例如数据错误修正,无需保留错误值。

新增版本型:属性变化时,旧记录保存,新增一条记录值,通过版本号或者时间戳记录有效性。完整保留历史版本,支持任意时间点的回溯。适用于历史状态有分析价值和需追踪属性的全生命周期的场景。

有限历史型:在维度表中新增字段存储最近的一次历史值,进保留有限的历史版本,实现简单,历史记录有限,适合只需要比对“当前状态与上一状态”的场景,例如商品单价调整,当前单价与上一单价。

历史表分离型:用两个表存储维度数据,主表存储最新数据,历史表存储所有的历史变更,记录时间戳。特点是当前数据查询高效,合适高频查询当下与低频查询历史的场景。

混合型:场景复杂,综合上述类型的特点。

6. 数据清洗的主要目的是什么?常见的数据质量问题有哪些,如何处理?

答:数据清洗的目的是消除原数据中的错误、不一致或无用信息,得到高质量、可靠的数据,包括确保数据的准确性、完整性、一致性(格式/逻辑一致)和有效性(符合业务规则),消除冗余或重复数据,减少存储和计算资源,更贴合业务场景。

常见的数据质量问题:

  • 数据缺失:例如字段为空,可能是数据采集遗漏或系统故障等。可以通过填充、删除、标记等方式,填充可以采用均值、中位数或者众数填充,也可以通过时间序列用前后值插值的方式或者用业务逻辑推导,需要根据实际业务进行判断调整。若是比例较大且无用的字段可以直接删除或者标记“未知”、”N/A“,保留原始状态。
  • 数据重复:存在完全相同或核心信息重复的记录,会导致分析结果偏差。可以通过唯一标识或者组合标识进行去重,或者通过逻辑进行重复记录合并(记录的字段存在差异)
  • 数据错误(值不符合实际):字段值不符合业务逻辑或常识。可以通过业务规则进行校验修正,联系数据源,对于极端值先确认是否为真实业务数据,若有误可以标记或删除,格式问题可以直接调整格式。
  • 数据不一致:同一实体的信息在不同的数据源中存在矛盾,可能由于数据源不同步、业务规则不同意、字段定义模糊导致。可以采用统一格式、逻辑校验、主数据管理等方式确保数据同一。
  • 数据冗余:存在不必要的重复字段或无关信息,可以选择直接删除冗余字段,同时规范化存储。
  • 数据无效:数据不符合业务场景的有效性,例如“已取消的订单”却有“发货时间”。直接过滤无效记录,通过业务流程校验,修正逻辑错误。

7. 什么是数据血缘?它在 ETL 过程中的作用是什么?

答:数据血缘就是描述数据从源头产生到最终消费的全生命周期的流转路径以及各环节之间的依赖关系的记录,类似于”家谱“,展示数据从哪里来(源系统、原始表),经过了那些处理(ETL转换、计算逻辑、过滤规则)、最终到哪里(目标表、报表等)

数据血缘是数据从分散数据到目标存储的核心流转过程,可以帮助我们进行问题排查与故障定位,因为ETL涉及到多核环节的流转,若是最终数据存在异常可以通过数据血缘快速追溯;保障数据质量和合规性;分析步骤变更影响,例如中间某一个环节需要调整,可以快速判断出下游那些表也会受到影响以及可能存在的风险;便于数据资产管理和跨团队协作,快速对齐数据定义。

二、工具与技术类

1. 你常用的 ETL 工具有哪些(如 DataStage、Informatica、Kettle、Talend 等)?请介绍一下它们的特点和使用场景。

答:常用的是Kettle工具。主要是因为Kettle开源免费,成本低,而且功能强大,支持多种数据源(数据库、文件、API、Hadoop等),

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/94131.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94131.shtml
英文地址,请注明出处:http://en.pswp.cn/web/94131.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle APEX 经典报表中的Checkbox

目录 1. 建表&投入测试数据 2. 经典报表做成 2-1. 画面布局如下​编辑 2-2. 报表使用的SQL 2-3. RS列的Heading设定 2-4. Function and Global Variable Declaration 2-5. Execute when Page Loads 2-6. Process 3. 运行效果​编辑 1. 建表&投入…

Codeforces Round 1043 (Div.3)

比赛连接:Codeforces Round 1043 (Div.3) A. Homework 题目链接:A - Homework Vlad and Dima have been assigned a task in school for their English class. They were given two strings aaa and bbb and asked to append all characters from bbb …

GPS欺骗式干扰的产生

我们在GNSS抗干扰天线的选型、测试方法以及为什么不能做RTK?(抗干扰内容全集)中提到的抗干扰天线,针对的是GPS压制式干扰。对于GPS欺骗式干扰,抗干扰天线是无能为力的。 简单来说,压制式干扰是通过发射强功…

[PV]AXI R/W/RW带宽计算的tcl脚本

AXI R/W/RW带宽计算的tcl脚本 我基于前述的axi_read_bw_per_id.tcl脚本进行了修改,使其支持: 读通道(Read Channel):计算基于rvalid && rready的有效周期(已在前述实现)。 写通道(Write Channel):计算基于wvalid && wready的有效周期,考虑wstrb的ac…

阿里云AnalyticDB同步数据至华为云taurusdb

1 概述 AnalyticDB和taurusdb都是高度兼容mysql协议的数据库,从现有的AnalyticDB官方数据同步方案来看,只有FlinkSQL合适。 同步方案官方文档: https://help.aliyun.com/zh/analyticdb/analyticdb-for-mysql/user-guide/flink-subscribes-b…

学习嵌入式之驱动——系统移植(二)

一、uboot常用命令与环境变量1.命令:(1)环境变量操作命令命令功能格式printenv 查看环境变量printenvsetenv新建/修改环境变量setenv 环境变量名 环境变量值saveenv保存环境变量saveenv(2)内存操作命令命令功能格式示例…

EasyExcel 合并单元格最佳实践:基于注解的自动合并与样式控制

EasyExcel 合并单元格最佳实践:基于注解的自动合并与样式控制 前言 在日常开发中,我们经常需要导出 Excel 报表,而合并单元格是提升报表可读性的常见需求。本文将介绍如何基于 EasyExcel 实现智能的单元格合并功能,通过自定义注解…

Unity设置UI显示区域

系列文章目录 untiy工具 文章目录 系列文章目录 👉前言 👉一、效果图 👉二、制作过程(检测中心点位置) 👉2-1、代码实现 👉三、优化为检测整个UI四个角点 👉四、性能优化建议 👉壁纸分享 👉总结 👉前言 思路: 获取屏幕的宽度和高度,定义中间区域的范围…

Qt中用于图像缩放的核⼼⽅法QPixmap::scaled

QPixmap::scaled是Qt中用于图像缩放的核⼼⽅法,其作⽤和⽤法如下:‌一、核心作用‌‌图像尺寸调整‌根据指定尺寸对图像进⾏等⽐例或⾮等⽐例缩放,⽀持放⼤和缩⼩操作。‌保持宽高比‌通过AspectRatioMode参数控制是否保持原始图像的宽⾼⽐。…

SQL Workbench/J:一款免费开源、跨平台的通用SQL查询工具

SQL Workbench/J 是一款基于 Java 开发的免费开源、跨平台的通用 SQL 查询工具。 SQL Workbench/J 主要专注于 SQL 脚本开发和数据导入导出功能,不提供各种数据库管理功能。 功能特性 跨平台:可以在任何安装了 Java 运行时环境的操作系统上运行&#xf…

DOLO 上涨:Berachain 生态爆发的前奏?

在 Berachain 生态逐渐进入公众视野之际,Dolomite(简称 Dolomite,代币 DOLO)成为链上表现最为突出的明星协议。其代币价格在短短两个月内,从 $0.03 飙升至 $0.3,涨幅接近 10 倍。市场不仅将其视作 Berachai…

吉利汽车与芯鼎微成立联合创新实验室共谱车规级LCoS显示新篇章

2025年8月20日,吉利汽车研究院技术规划中心副主任李莉、光学实验室负责人李金桦博士等一行四人莅临芯鼎微,双方共同为"吉利汽车-芯鼎微联合创新实验室"揭牌,标志着两家企业在车载先进显示技术领域迈入深度协同创新的新阶段。 在这汽…

NPM组件 @angular_devkit/core 等窃取主机敏感信息

【高危】NPM组件 angular_devkit/core 等窃取主机敏感信息 漏洞描述 当用户安装受影响版本的 angular_devkit/core 等NPM组件包时会窃取用户的主机名、用户名、IP地址信息并发送到攻击者可控的服务器地址。 MPS编号MPS-1jf5-s6ix处置建议强烈建议修复发现时间2025-08-14投毒…

docker cuda版安装 dockercuda版安装

目录 1.一键安装docker 测试ok 2.安装cuda支持 通用的应该没问题 安装工具包 配置 runtime: 3.检查 Docker 是否支持 NVIDIA 运行时 1.一键安装docker 测试ok curl -fsSL https://get.docker.com | sh 2.安装cuda支持 通用的应该没问题 也可以搜索安装 cuda版d…

Spring发布订阅模式详解

Spring 的发布订阅模式(Publish-Subscribe Pattern)是一种基于事件驱动的设计模式,通过 "事件" 作为中间载体实现组件间的解耦。在这种模式中,"发布者"(Publisher)负责产生事件并发布&…

服务器硬件中的磁盘SSD与HDD性能区别,以及分别适用于什么业务?

SSD(固态硬盘)和 HDD(机械硬盘)是服务器中常见的存储设备类型,两者在性能、可靠性、成本等方面存在显著差异。根据这些特性,它们适用于不同的业务需求。以下是详细的对比与应用场景分析:1. SSD …

AI驱动的SEO关键词优化秘籍

内容概要人工智能技术的飞速发展正重塑SEO关键词优化领域,为从业者带来全新机遇与挑战。本文将系统解析AI如何革新关键词策略,覆盖从语义搜索深度解析到长尾词智能挖掘的核心环节。通过工具驱动的内容优化路径,读者将掌握提升流量转化率的关键…

自然语言处理(NLP)技术的发展历史

自然语言处理(NLP)作为人工智能的重要分支,其发展历程跨越了大半个世纪,从早期的规则式尝试到如今的大模型时代,技术路径不断迭代,核心目标始终是实现人机间的自然语言交互。以下从关键阶段、技术突破和标志…

Swift 解法详解 LeetCode 361:轰炸敌人,用动态规划轻松拿下

文章目录摘要描述题解答案题解代码分析代码解析示例测试及结果时间复杂度空间复杂度总结摘要 “轰炸敌人”这道题名字听起来就很带感,它其实是一个二维网格搜索问题。我们要找到一个能放置炸弹的位置,让炸掉的敌人最多。虽然题目看起来复杂,…

如何高效推进将科技创新成果转化为标准?

2024年10月26日,全国标准信息公共服务平台正式发布了国家标准《科技成果评估规范》(GB/T 44731-2024 ),并从发布之日起正式实施。这一标准的正式推出,标志着政府在推进科技成果转化、提升科技服务能力方面迈出了重要一…