ETL背景介绍_1:数据孤岛仓库的介绍

发布于:2025-05-14 ⋅ 阅读:(12) ⋅ 点赞:(0)

1 ETL介绍

1.1 数据孤岛

随着企业内客户数据大量的涌现,单个数据库已不再足够。为了储存这些数据,公司通常会建立多个业务部门组织的数据库来保存数据。比如,随着数据量的增长,公司通常可能会构建数十个独立运行的业务数据库,这些数据库具有不同的业务和用途。

这个就导致了数据孤岛,整个组织的数据被分散到各个地方。如下图所示:
在这里插入图片描述

1.2 数据仓库

为了解决数据分析领域的数据孤岛问题,通过工具或程序,将零散的数据,统一收集到一个位置进行“集中储存”,以便于“集中分析”。
在这里插入图片描述

1.3 ETL的引出

将数据进行收集的任务,称为ETL。
ETL:Extract-Transform-Load,用来描述将数据从来来源端经过抽取、转换、加载至目的端的过程。

ETL一词较常用于数据仓库。
本质上:
在这里插入图片描述

1.4 ETL的实现

1、专门的ETL软件:Kettle、DataX、Sqoop等;
2、使用代码编程完成:Python、Java等均可以完成ETL程序的开发。

2 常见的数据格式

2.1 CSV格式

逗号分隔符,也可以永其他字符作为分隔符。

2.2 json格式

json是储存和交换文本信息的语法,类似XML。它是Key-Value型的。例如:在这里插入代码片

{
  "name": "张三",
  "age": 28,
  "city": "北京"
}

JSON(JavaScript Object Notation)本质上是一个字符串格式的数据表示方式,虽然它的结构类似于对象或字典,但传输和存储时都是以字符串的形式存在的。

2.3 xml格式

XML(eXtensible Markup Language)是一种用于结构化数据存储与传输的标记语言,常用于配置文件、数据交换等场景。

<?xml version="1.0" encoding="UTF-8"?>
<person>
  <name>张三</name>
  <age>28</age>
  <city>北京</city>
</person>

3 数据结构类型

3.1 结构化数据

  • 结构化数据也称为行数据,是可以由一个二维表所描述的数据。
  • schema就是表结构,在schema的定义下,每一列,每一个位置,应该是什么类型的数据,表达的什么意义都是确定的。
  • 常见的结构化数据:
    ① excel
    ② json不一定是结构化的,具体看json的内容。如果是简单的Key-Value就是结构化的(可以直接转成二维表);如果是复杂嵌套的json,就不是结构化的。

3.2 半结构化数据

3.3 非结构化数据

完全没办法用二维表来描述。如图片、音频、视频等。
结构化、半结构化、非结构化描述的是一堆数据在一起后的类型。

4 需求分析

4.1 背景说明

在这里插入图片描述本次案例,是处理一个零售公司的业务数据。这个公司是卖收银机(扫码腔)的,收银机结账后,将用户购买的信息通过网络发送到公司的后台,公司后台就会收集到非常多的用户购买的订单数据。

因此,我们需要做的是,将这个公司的业务数据,通过ETL任务,采集到Mysql以及文件储存中。

4.2 需要采集的数据

(1)json数据:订单业务数据,一笔订单的内含数据,如时间、价格、商品等,要采集到Mysql和csv中。
(2)mysql数据:后台数据库我们要采集的内容,如条码数据,如产地、重量;
(3)日志数据。

4.3 数据在哪儿

一、数据来源

  • JSON 文件(订单数据
  • 商品数据库 MySQL(商品信息
  • 后台服务日志文件(log 文件数据

二、存储目标

  • 写入 MySQL 数据库(当前作为数据仓库的替代)
  • 输出为 CSV 文件,用于数据备份

三、流程简述

  1. JSONMySQL日志文件 中采集数据
  2. 将采集数据写入 MySQL 数据库
  3. 同步写入 CSV 文件 作为备份

总结:

实现统一采集、双通道输出,确保数据既结构化入库,又有备份保障。