<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>数据架构 on 老张开工了</title>
    <link>/%E6%95%B0%E6%8D%AE%E6%9E%B6%E6%9E%84/</link>
    <description>Recent content in 数据架构 on 老张开工了</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Wed, 01 Apr 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="/%E6%95%B0%E6%8D%AE%E6%9E%B6%E6%9E%84/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>ETL 概述与数据工程基础</title>
      <link>/posts/2026/04/etl-overview/</link>
      <pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate>
      <guid>/posts/2026/04/etl-overview/</guid>
      <description>什么是 ETL？ ETL 是 Extract（抽取）、Transform（转换）、Load（加载）三个英文单词的首字母缩写。它描述了一个经典的数据集成过程：从源系统中抽取数据，经过清洗和转换，最终加载到目标存储系统中。&#xA;用一个简单的类比来理解：假设你要把散落在几个仓库里的书籍搬到一个新图书馆。你需要先去各个仓库把书搬出来（Extract），按照图书馆的分类体系给书贴上标签、整理排序（Transform），最后摆放到对应的书架上（Load）。ETL 做的就是这件事，只不过处理的对象是数据。&#xA;ETL 的三个核心步骤 抽取（Extract）：从各类数据源读取数据。数据源可以是关系型数据库、文件（CSV、JSON、Parquet）、API 接口、消息队列等。这一步的关键是高效地获取数据，尽可能减少对源系统的压力。&#xA;转换（Transform）：对原始数据进行清洗、加工和重组。这是 ETL 流程中最复杂、最核心的环节。具体操作包括：处理缺失值和异常值、统一数据格式、执行业务规则计算、数据聚合和关联等。&#xA;加载（Load）：将处理后的数据写入目标系统。目标通常是数据仓库、数据湖或者分析型数据库。加载策略分为全量加载和增量加载，选择哪种方案取决于业务需求和数据量级。&#xA;ETL 的起源与演进 数据仓库时代（1990s） ETL 概念最早在 1990 年代随着数据仓库的兴起而出现。当时企业开始意识到，将分散在各个业务系统中的数据汇集到一个统一的分析平台，能够带来巨大的商业价值。&#xA;Bill Inmon 和 Ralph Kimball 两位数据仓库大师分别提出了不同的数据仓库方法论，但两者的实现都离不开 ETL 这一核心流程。早期的 ETL 工具以商业软件为主，如 Informatica PowerCenter、IBM DataStage、Oracle Data Integrator 等。&#xA;Hadoop 时代（2000s-2010s） Hadoop 的出现打破了传统数据仓库的格局。分布式存储和计算框架使得处理海量数据成为可能，ETL 的概念也发生了变化。在这个阶段，Sqoop 用于在 Hadoop 和关系型数据库之间传输数据，Hive 和 Pig 用于数据转换，Flume 用于日志采集。&#xA;云原生时代（2010s 至今） 云计算的普及彻底改变了 ETL 的面貌。现代数据栈（Modern Data Stack）的兴起带来了几个重要变化：&#xA;ELT 模式成为主流：先把原始数据加载到数据湖，再利用目标系统（如 Snowflake、BigQuery）的强大计算能力进行转换 工具链更加丰富：dbt、Airbyte、Fivetran、Stitch 等新一代工具大幅降低了 ETL 的开发门槛 实时化趋势：从批处理向流处理演进，Kafka、Flink 等工具使得准实时和实时 ETL 成为可能 下面这张表格展示了 ETL 工具在三个时代的典型代表：</description>
    </item>
  </channel>
</rss>
