Module 03 · Data Engineering Lifecycle数据工程生命周期
How to Gather and Import Data数据获取与导入:方法、工具与存储
本视频将介绍用于从各种数据源(如数据库、网页、传感器数据、数据交换平台等)获取数据的方法和工具,以及将数据导入不同类型数据存储库的过程。
一、数据获取的方法与工具
数据获取方法取决于数据的来源和类型:
1. 查询语言 (Querying Languages)
| 数据库类型 | 查询语言/工具 | 功能描述 |
|---|---|---|
| 关系型数据库 (RDBMS) | 结构化查询语言 (SQL) | 提供简单的命令来指定检索内容、提取的表格、匹配值的记录分组、结果显示顺序和限制返回结果数量等功能。 |
| 非关系型数据库 (NoSQL) | SQL 或类 SQL 查询工具 | 某些 NoSQL 数据库拥有自己的查询工具,如 Cassandra 的 CQL 和 Neo4J 的 GraphQL。 |
2. 应用程序编程接口 (APIs)
- 用途:常用于从各种数据源提取数据。
- 机制:由需要数据的应用程序调用,访问包含数据的端点 (End-point)。
- 端点示例:数据库、Web 服务和数据市场。
- 数据验证:API 也用于数据验证,例如数据分析师可利用 API 验证邮政地址和邮政编码。
3. 网页数据获取
- Web Scraping (网络爬虫):也称为屏幕抓取或网络采集,用于根据定义的参数从网页下载特定数据。
- 提取内容:文本、联系信息、图像、视频、播客和产品项目等。
- RSS Feeds:通常用于从在线论坛和新闻网站捕获持续更新的数据。
4. 实时与流式数据
- 数据流 (Data Streams):一种流行的数据源,用于聚合来自仪器、IoT 设备和应用、汽车 GPS 数据等来源的恒定数据流。
- 社交媒体:数据流和数据源也用于从社交媒体网站和互动平台提取数据。
5. 数据交换平台 (Data Exchange Platforms)
- 功能:允许数据提供者和数据消费者之间交换数据。
- 标准:具备一套定义明确的交换标准、协议和格式。
- 保障:不仅促进数据交换,还确保安全性和治理得到维护。它们提供数据许可工作流程、个人信息去标识化和保护、法律框架以及隔离的分析环境。
- 平台示例:AWS Data Exchange、Crunchbase、Lotame 和 Snowflake。
6. 特定数据需求来源
还有许多其他数据源可用于满足特定的数据需求:
- 市场趋势和广告支出:Forrester 和 Business Insider 等研究公司提供可靠数据。
- 战略和运营指导:Gartner 和 Forrester 等研究和咨询公司是值得信赖的来源。
- 其他领域:用户行为数据、移动和网络使用、市场调查和人口统计研究等方面也有许多受信任的供应商。
二、数据导入到存储库
从各种数据源识别和收集到的数据需要被加载或导入到数据存储库中,才能进行整理、挖掘和分析。
- 导入过程:涉及组合来自不同来源的数据,以提供组合视图和一个可供查询和操作数据的单一接口。
- 选择工具:根据数据类型、数据量和目标存储库的类型,您可能需要不同的工具和方法。
1. 数据类型与存储库的匹配
特定的数据存储库针对某些类型的数据进行了优化:
| 数据类型 | 特点 | 存储目标 | 示例来源 |
|---|---|---|---|
| 结构化数据 (Structured Data) | 具有明确定义的模式,可整齐地存储在行和列中。 | 关系型数据库、NoSQL 数据库 | OLTP 系统数据、电子表格、在线表单、传感器、网络和 Web 日志。 |
| 半结构化数据 (Semi-structured Data) | 具有某些组织属性但没有严格模式。 | NoSQL 集群 | 电子邮件、XML、压缩文件、二进制可执行文件、TCP/IP 协议数据。 |
| 非结构化数据 (Unstructured Data) | 没有结构,无法组织成模式。 | NoSQL 数据库、数据湖 | 网页、社交媒体提要、图像、视频、文档、媒体日志、调查。 |
📌 JSON/XML:XML 和 JSON 常用于存储和交换半结构化数据。JSON 也是 Web 服务的首选数据类型。
2. 导入工具
- ETL 工具和数据管道:提供自动化功能,简化数据导入过程。
- 编程工具:Talend 和 Informatica 等工具,以及 Python 和 R 及其库被广泛用于导入数据。