引言
在数据驱动的决策领域,旅程始于有效的数据收集与摄取策略。本章将探讨数据采集与导入的基础环节,它们是开展高级分析或人工智能驱动项目的基石。我们的目标是全面理解收集与摄取多源数据所涉及的方法论、工具与最佳实践。
我们首先介绍数据摄取的基本概念,强调其在确保数据质量、完整性与时效性方面的重要性。这为后续讨论打下基础,包括批量(batch)与实时(real-time)两类摄取方式及其应用场景。理解何时选择哪一种方式,对优化性能与满足业务需求至关重要。
接下来,本章将过渡到安全与合规问题,强调在摄取过程中保护敏感信息的必要性。我们将涵盖加密、访问控制、数据脱敏等关键技术,以及 GDPR、HIPAA、CCPA 等合规要求。
随后,我们会介绍云原生摄取服务,如 AWS Glue、Azure Data Factory 和 Google Cloud Dataflow。这些服务为数据摄取任务提供了可扩展、灵活且高效的解决方案,在现代数据架构中不可或缺。同时,我们也会讨论实时流式处理解决方案,如 Amazon Kinesis 和 Azure Stream Analytics,它们支持实时数据处理与分析。
最后,我们会给出一个面向 AI 应用的数据收集与摄取示例架构。该架构整合了本章讨论的多种组件,提供了一个构建稳健、安全、合规的数据摄取管道的实用蓝图。
章节结构
本章涵盖以下主题:
- AI 系统的数据源与数据类型
- 批处理与流处理的对比
- 流处理框架
- 数据质量与验证技术
- 数据集成验证
- 可扩展的摄取架构
- 数据摄取中的安全与合规
- 安全与合规的实践落地
- 云原生摄取服务
- 数据收集与摄取示例架构
学习目标
本章将为你提供数据摄取的全景概览,帮助你掌握从多源有效收集与导入数据所需的核心知识与技能。你将学习数据摄取的基础,包括批处理与实时方法,并了解如何实施稳健的安全措施以保护敏感信息。此外,你还将探索主流的云原生摄取服务(如 AWS Glue、Azure Data Factory、Google Cloud Dataflow),理解其优势并掌握如何利用它们构建高效、可扩展的数据管道。
在完成本章学习后,你将能够设计并实现安全、合规、且针对 AI 应用优化的数据摄取架构,为后续开展高级分析与数据驱动的创新奠定坚实基础。
AI 系统的数据源与数据类型
在复杂的 AI 生态中,强大模型的本质在于数据的丰富性与多样性。任何 AI 项目的有效性都深深植根于其数据源的质量与适用性。本节将探索推动 AI 系统的数据源与数据类型,阐释其特征与关键作用。
AI 的数据源可大致分为三类:结构化数据(structured)、半结构化数据(semi-structured)、非结构化数据(unstructured) 。每一类都有独特的挑战与机遇,影响数据的摄取与使用方式。
结构化数据
结构化数据体现了高度的组织性与可预测性。它通常存储在关系型数据库与数据仓库中,以高度规范化的表格形式存在,每条记录遵循预定义的模式(schema)。
结构化数据是模式驱动(schema-driven)的,这意味着它通常遵守严格的模式定义,从而具备良好的可搜索性与可管理性。
表与模式(Tables and Schemas)
结构化数据存储在表格中,每个表由行(row)与列(column)组成。每行代表一条唯一记录,而列则对应具体的数据属性。例如,一个客户表可能包含 CustomerID、Name、Email 和 PhoneNumber 等列。模式(schema)则定义了表的结构,明确每一列的数据类型(如整数 integer、字符串 varchar、日期 date)。这种模式确保了数据的一致性与完整性,并支持高效的查询与数据操作。
在关系型数据库中,数据通常使用 实体-关系(Entity-Relationship, ER)图进行建模。ER 图直观展示了实体(如客户、订单)及其关系。例如,一个客户实体可能与订单实体存在一对多关系,表示一个客户可以下多个订单。ER 建模有助于设计数据库模式,确保不同数据实体之间的关系被准确捕捉。这对于维持数据完整性以及支持跨多表的复杂查询至关重要。
图 2.1 展示了一个包含表及其关系的 ER 图:
对 AI 的重要性
结构化数据构成了许多 AI 应用的骨干,尤其是那些对精确性和清晰度有高要求的场景。其良好定义的特性简化了数据摄取与预处理过程,这对依赖干净且一致性数据的机器学习算法训练至关重要。模式(schema)、表格(tables)与 ER 模型的使用确保了数据组织良好且可高效查询,从而更容易为 AI 模型提取有价值的洞察。
半结构化数据
半结构化数据在结构与灵活性之间取得了平衡。虽然它不遵循严格的模式,但包含用于标识数据元素的标签与标记。常见的格式包括 JSON、XML、CSV 文件。其特点是在同一数据集中允许不同字段与数据类型的存在。常见例子有:网页日志、社交媒体帖子、电子邮件元数据等。
半结构化数据天然具备灵活性,能够在单一数据集中容纳多种数据类型与结构。例如,一个 JSON 文档可以包含嵌套对象和数组,从而实现复杂的数据表示。这种灵活性使其尤其适用于模式可能不断演变的应用场景。
下面的脚本展示了一个名为 pantry 的实体的 JSON 文档通用结构:
{
"pantry": {
"snacks": [
{ "name": "Chips", "expirationDate": "2024-07-15" }
],
"spices": [
{ "name": "Cumin", "expirationDate": "2025-08-01" }
],
"vegetables": [
{ "name": "Carrots", "expirationDate": "2024-12-15" }
],
"fruits": [
{ "name": "Apples", "expirationDate": "2024-01-25" }
]
}
}
对 AI 的重要性
半结构化数据对于需要适应性的 AI 应用(如 自然语言处理(NLP)、情感分析)至关重要。解析与提取此类数据中的洞察,是开发能理解与解释人类语言与语境的模型的核心能力。半结构化数据的灵活特性允许动态的模式演进,从而更容易集成多样化的数据源,并适应不断变化的需求。
通过利用半结构化数据的固有灵活性,并对非结构化数据施加一定的结构化处理,AI 系统能够对复杂数据集实现更全面的理解。这一方法弥合了原始非结构化数据与可操作洞察之间的鸿沟,使得 AI 模型更加高效与自适应。
非结构化数据
顾名思义,非结构化数据缺乏预定义的格式或组织形式。这类数据涵盖了广泛的内容,包括文本、图像、音频与视频。其表现形式多样,且常常数据量庞大。典型例子包括:社交媒体内容、多媒体文件、文档等。
有趣的是,非结构化数据有时可以通过一定方式转化为半结构化数据以提升可用性。例如,电子邮件文本可解析出发件人、收件人、时间戳和主题等关键属性,再存储为 JSON 格式。类似地,多媒体文件也可能附带元数据(如文件类型、分辨率、创建日期),从而提供一个半结构化层,便于查询与分析。
非结构化数据既带来独特挑战,也蕴含巨大潜力。例如,计算机视觉依赖图像与视频数据,自然语言处理依赖文本数据。有效处理非结构化数据,可以构建出更复杂且智能的 AI 模型,使其具备理解复杂和细微信息的能力。
AI 系统的数据类型
理解能够驱动 AI 系统的具体数据类型,是制定高效数据摄取与分析策略的关键。在本节中,我们将探讨 AI 应用中常见的一些数据类型。
时间序列数据(Time-series data)
时间序列数据由按时间间隔收集的数据点序列构成。这类数据在股票价格预测、天气预报、传感器数据监测等应用中至关重要。其显著特征是 时间性,因此需要专门的分析技术。利用时间序列数据的 AI 系统能够识别模式、趋势与异常,从而增强跨领域的预测能力。
以下是一个时间序列数据示例(纽约市开放数据):
New York City Leading Causes of Death
类别型数据(Categorical data)
类别型数据表示离散的类别或标签。例如:性别、颜色、地理位置等。类别型数据可进一步细分为:
- 名义型(Nominal) :无固定顺序(如颜色)。
- 有序型(Ordinal) :具有有意义的顺序(如教育等级)。
数值型数据在回归任务中尤为关键,用于预测连续结果;当与类别型数据结合使用时,也能提供更深入的洞察。
新兴数据源(Emerging data sources)
随着新技术不断涌现,新的数据源也不断出现,为 AI 应用带来新机遇。典型的新兴数据源包括:
- 物联网(IoT) :IoT 设备实时生成海量数据,从传感器读数到用户交互。这类数据对预测性维护、智慧城市建设等应用极具价值。其实时性使 AI 系统能够基于当前条件做出及时决策,提升效率与响应能力。
- 社交媒体(Social Media) :社交媒体平台是非结构化数据的宝库,捕捉用户情绪、趋势与互动。企业可以利用这些数据进行市场分析、品牌情感追踪与客户互动。AI 模型能够分析社交媒体数据,从而洞察消费者行为与偏好,帮助企业有效调整策略。
- 开放数据仓库(Open Data Repositories) :由政府与组织维护的开放数据仓库,涵盖健康、交通、教育等各领域的数据。这些数据可用于研究、政策制定与预测建模。开放数据促进了创新与协作,使 AI 从业者能够开发应对重大社会挑战的模型。
理解 AI 系统可利用的多样化数据源与数据类型,是制定有效数据收集与摄取策略的基础。从结构化数据库到社交媒体丰富的非结构化内容,每一种数据类型都带来独特的挑战与机遇。随着 AI 技术不断演进,能否有效利用这些多样化数据源,将成为推动 AI 应用在各行业成功的关键。
在后续章节中,我们将进一步探讨高效摄取这些数据的方法与技术,确保组织能够充分发挥数据资产的价值。
批处理与流处理(Batch vs. Stream Processing)
在 AI 系统的数据处理领域,主要存在两种范式:批处理(batch processing) 与 流处理(stream processing) 。每种方法各有优劣,适用于不同类型的应用。理解这两种范式,对于设计高效的数据摄取与处理管道至关重要。
批处理(Batch Processing)
批处理指在一定时间段内收集数据,然后批量处理。其特征在于能处理大规模数据,并支持复杂计算。它尤其适用于不需要即时结果的任务,例如数据仓库、ETL 操作、历史数据分析等。
效率与复杂性
批处理的一大优势在于其处理大规模数据集的效率。通过批量方式,系统能够优化资源利用并执行复杂的计算操作。这使批处理非常适合涉及大量数据转换与聚合的任务。然而,这种效率是以 高延迟 为代价的。由于需要先累计数据再统一处理,批处理得出的洞察往往滞后于实时事件。
流处理(Stream Processing)
流处理则面向持续不断的数据流。数据在到达时便被实时处理,从而实现即时洞察与行动。这对于需要实时分析的应用至关重要,例如:实时数据流监控、欺诈检测、物联网应用等。
流处理的核心优势在于 即时性:通过边到达边处理,系统能提供实时可见性与快速决策能力,非常适合对响应时间要求苛刻的场景。
流处理通过多种技术与方法来高效应对持续数据流,其中包括:
- 事件驱动架构(Event-driven architecture) :基于事件触发处理,保证每个事件发生时立即响应。
- 窗口化(Windowing) :将数据流划分为可管理的窗口,便于周期性分析与聚合。
- 有状态处理(Stateful processing) :在事件之间维持状态信息,从而实现复杂计算与模式识别。
- 背压处理(Backpressure handling) :通过调节数据接收速率来防止系统过载。
实时响应性
流处理的优势在于实时洞察和快速响应。然而,它对资源消耗较高,需要持续的计算能力与内存支持,并要求系统具备高鲁棒性以处理连续数据流并确保容错性。
批处理 vs. 流处理对比
选择批处理还是流处理,取决于应用的具体需求与数据特性。需要实时洞察的应用更适合流处理,而能够容忍延迟的任务则可以选择批处理。批处理更适用于大规模历史数据,而流处理则擅长处理连续、高速的数据流。
表 2.1 批处理与流处理的对比
| 方面 | 批处理(Batch Processing) | 流处理(Stream Processing) |
|---|---|---|
| 数据处理方式 | 批量处理大规模数据 | 数据到达即连续处理 |
| 延迟 | 高延迟;结果在批次完成后可用 | 低延迟;接近实时结果 |
| 执行方式 | 定期调度(如每晚/每周) | 持续、事件驱动执行 |
| 计算复杂性 | 适合复杂、资源密集型计算 | 适合简单、实时分析 |
| 资源管理 | 资源分配相对容易(按调度任务分配) | 需持续的资源供应与强健的容错机制 |
| 应用场景 | 数据仓库、ETL、历史数据分析 | 实时分析、欺诈检测、物联网 |
| 优势 | 高效处理批量数据,支持复杂转换与聚合 | 提供即时洞察,适合需要快速响应的应用 |
混合方法(Hybrid Approaches)
在许多情况下,结合批处理与流处理的混合方法能兼具两者优势。例如:
- Lambda 架构:同时包含批处理层与速度层,既支持大规模历史数据分析,又支持实时流式处理。
- Kappa 架构:以流处理为核心,但可通过回放数据流对历史数据进行再处理。
混合方法具备 灵活性、弹性与可扩展性,能够同时满足实时与历史分析需求。通过多重处理路径提供冗余与容错,确保系统的稳健性。
工具与技术
实现批处理与流处理可选的工具与技术繁多,选择合适的工具对管道成功至关重要。
- 批处理常用工具:Apache Hadoop、Apache Spark、AWS Glue —— 优化于大数据集与复杂计算。
- 流处理常用工具:Apache Kafka、Apache Flink、Amazon Kinesis —— 专为实时数据流与低延迟处理设计。
在选型时,组织需考虑 可扩展性、易集成性、对特定数据格式与协议的支持,以确保数据处理的高效性与稳定性。
批处理与流处理在 AI 系统数据处理中都扮演着关键角色。
- 批处理 擅长大规模数据与复杂计算。
- 流处理 提供实时洞察与快速响应。
理解各自的优势与局限,是设计满足 AI 应用需求的数据管道的关键。通过综合考虑延迟要求、数据规模与计算复杂性,并合理选择工具与架构,组织可以充分释放数据潜能,推动智能决策与创新。
流处理框架
流处理框架在处理连续数据流、实现实时分析和即时决策方面至关重要。这些框架提供了高效处理数据流所需的工具与基础设施。了解关键框架及其特性对于为你的需求选择合适的解决方案非常重要。
Apache Kafka
Apache Kafka 是一个分布式流平台,广泛用于构建实时数据管道和流式应用。Kafka 最初由 LinkedIn 开发,现已成为流处理领域的基石。Kafka 的突出特性之一是可伸缩性,能够处理高吞吐量的数据流,适用于大规模应用。Kafka 通过在多个节点间复制数据实现容错,确保即便部分节点发生故障也不会丢失数据。Kafka 常用于日志聚合、实时分析和事件溯源。它与多种数据源和接收端的集成能力,使其成为构建稳健数据管道的多用途选择。
Apache Flink
Apache Flink 是另一个以高性能和低延迟著称的流处理框架。Flink 同时支持流处理和批处理,使其在各种数据处理需求中都很灵活。Flink 在有状态流处理方面表现出色,能够在事件之间维护状态信息,这对于需要复杂事件处理和模式识别的应用至关重要。Flink 的状态管理既高效又具容错性,保证处理的可靠性。Flink 支持事件时间处理,能优雅地处理乱序事件。当数据存在不同延迟到达(例如物联网应用或用户行为追踪)时,这项能力尤其有用。
Apache Storm
Apache Storm 是一个用于处理大规模数据流的实时计算系统。它提供了用于定义和执行流处理拓扑的简单而灵活的 API。Storm 的主要优势之一是低延迟,设计目标是以最小的延迟处理数据流,适合需要即时响应的应用场景,例如欺诈检测和实时监控。Storm 的 API 简洁,便于开发者快速构建和部署流处理应用。其模块化架构也便于与其它系统和工具集成。
Apache Samza
Apache Samza 是由 LinkedIn 开发的流处理框架,设计上与 Apache Kafka 无缝协作。Samza 对有状态流处理和容错提供了健壮支持。与 Kafka 的紧密集成使 Samza 成为构建端到端流式解决方案的优秀选择。它利用 Kafka 的可伸缩性和容错能力确保可靠的数据处理。Samza 提供高效的状态管理,使应用能够在事件之间维护并查询状态信息,这对于需要复杂事件处理和实时分析的应用非常重要。
Spark Streaming
Spark Streaming 是 Apache Spark 的一个扩展,用于实现可伸缩且具容错性的流处理。它与 Spark 生态系统无缝集成,提供了批处理与流处理的统一平台。Spark Streaming 以小批次(micro-batches)的方式处理数据流,这种方法在简化流处理的同时仍提供了容错性和可伸缩性。微批处理适用于能够容忍轻微处理延迟的应用场景。Spark Streaming 的一大优势是与更广泛的 Spark 生态系统的整合,使开发者可以对批处理和流处理使用相同的 API,简化数据管道的开发与维护。
Amazon Kinesis
Amazon Kinesis 是 AWS 上的一个完全托管的实时数据流服务,提供用于摄取、处理和分析数据流的一整套工具。作为完全托管服务,Kinesis 管理底层基础设施,使开发者可以专注于构建应用。这种托管方式简化了部署、扩展和维护。Kinesis 能与其他 AWS 服务(如 AWS Lambda、Amazon S3、Amazon Redshift)无缝集成,从而在 AWS 生态系统内构建完整的数据管道和分析解决方案。
Google Cloud Dataflow
Google Cloud Dataflow 是 Google Cloud 平台上一个完全托管的流式与批处理服务,基于 Apache Beam 编程模型,提供统一的数据处理方式。Dataflow 采用 Apache Beam 模型,允许开发者一次编写代码即可在批处理和流处理模式下运行,这种统一方法简化了数据管道的开发与维护。Dataflow 提供自动扩缩容功能,可根据工作负载动态调整资源,保证资源利用效率并便于成本管理。
表 2.2 对从 AI 架构视角出发的四种最流行的数据处理/存储范式(此处为数据湖与数据仓库)做了比较:
| 方面 | 数据湖 | 数据仓库 |
|---|---|---|
| 数据类型 | 以原生格式存储原始、未处理的数据(结构化、半结构化、非结构化) | 存储具有预定义模式的结构化数据 |
| 模式 | 读时模式(schema-on-read):在读取数据时应用模式 | 写时模式(schema-on-write):在写入时应用模式 |
| 存储成本 | 通常较低,因可使用廉价的存储方案 | 较高,因针对性能与优化的存储成本较高 |
| 数据处理 | 适合大数据分析、机器学习和探索性分析 | 针对查询、报表和商业智能进行了优化 |
| 性能 | 查询与分析可能需要额外处理 | 对以读为主的操作和复杂查询提供高性能 |
| 灵活性 | 高度灵活,可处理多种数据类型与格式 | 灵活性较低,主要为结构化数据和预定义查询而设计 |
| 可伸缩性 | 高度可伸缩,可存储 PB 级数据 | 可伸缩,但大规模存储成本较高 |
| 数据治理 | 需要健全的管理以避免成为“数据沼泽” | 由于数据结构化,治理更容易实施 |
| 用例 | 数据科学、探索性数据分析、机器学习、物联网 | 商业智能、运营分析、财务报表 |
| 工具与技术 | Apache Hadoop、Amazon S3、Azure Data Lake | Amazon Redshift、Google BigQuery、Snowflake |
| 数据新鲜度 | 可实时接收数据,但可能需预处理才能使用 | 数据在使用前经过转换与加载(ETL),以保证一致性 |
| 集成 | 常与如 Apache Spark 等数据处理框架集成 | 与用于数据转换与加载的 ETL 工具集成 |
| 安全与合规 | 需要全面策略来保证数据安全与合规性 | 由于结构化与组织化,更容易实施安全与合规措施 |
| 优势 | 成本效益高、灵活,支持广泛的数据类型 | 高性能、可靠、为结构化数据优化 |
| 挑战 | 有成为无序“数据沼泽”的风险,需要强治理 | 存储成本较高,对数据类型的灵活性较低 |
表 2.2:数据湖与数据仓库的比较
通过了解这些顶级框架的优势与典型用例,组织可以做出更明智的选择并构建有效的实时数据处理解决方案。以上每种框架都已在业界的高负载实时应用中得到验证,展现了其稳健性、可伸缩性与多样适用性。
数据质量与验证技术
确保数据质量对任何依赖数据驱动决策的组织都是关键。数据质量差会导致错误的洞见、错误的策略,最终可能导致业务失败。数据验证技术通过确保数据准确、完整且一致,来维持高质量的数据。本节探讨实现与维护数据质量的关键概念、技术与最佳实践。
数据质量的重要性
数据质量指基于准确性、完整性、一致性、可靠性与时效性等因素的数据状况。高质量数据对于有效决策、运营效率和合规性至关重要。各因素说明如下:
- 准确性(Accuracy) :确保数据正确地表示其要建模的真实世界实体。不准确的数据会导致错误结论与错误行动。例如,错误的销售数据可能引起糟糕的库存管理与收入损失。
- 完整性(Completeness) :意味着所有必需的数据都存在。缺失的数据会导致分析不完整、基于部分信息做出决策。例如,缺少客户信息会妨碍个性化营销。
- 一致性(Consistency) :确保不同数据集与系统之间的数据保持统一。不一致的数据会在数据集成与分析时引发混淆与错误。例如,销售系统与库存系统中不一致的产品名称可导致报表差异。
- 可靠性(Reliability) :指数据随时间的可信度。可靠的数据稳定且可被信赖,保证基于它的分析与决策保持有效。不可依赖的数据会侵蚀对数据驱动流程的信任。
- 时效性(Timeliness) :确保数据是最新的并在需要时可用。过时的数据会导致基于陈旧信息的决策,从而负面影响业务结果。
数据验证技术
数据验证技术确保数据符合所需的质量标准。这些技术可以在数据生命周期的不同阶段应用——从数据录入到数据集成与分析。
输入校验(Input validation)
输入校验涉及在数据入口对数据进行检查,以确保其满足预定义条件。此技术有助于防止错误进入系统。常见的输入校验方法包括:
- 格式检查:确保数据遵循特定格式,例如电子邮件地址或电话号码。
- 范围检查:验证数值数据是否落在指定范围内,例如年龄在 0 到 120 之间。
- 必填字段检查:确保必需字段不被留空。
数据探查(Data profiling)
数据探查通过分析现有数据来理解其结构、内容与质量。该技术有助于识别数据质量问题并为制定数据验证规则提供依据。关键的数据探查活动包括:
- 频率分析:确定数据集中不同值的出现频率,以识别异常。
- 模式分析:发现数据中的模式与不一致,例如意外的空值或重复记录。
- 统计分析:使用统计方法检测异常值并确定数据分布。一些数据分布包括均匀、正态(高斯)、二项分布、泊松、指数、对数正态和卡方分布。从 AI/ML 角度看,数据分布有助于模型选择、特征工程、性能度量、异常检测与参数调优。
数据清洗(Data cleansing)
数据清洗或称数据清理,涉及纠正或移除不准确、不完整或不一致的数据。这项技术在分析或集成前改善数据质量至关重要。常见的数据清洗方法包括:
- 标准化:将数据转换为一致的格式或标准,例如日期格式或计量单位。
- 去重:识别并删除重复记录以确保数据唯一性。
- 错误修正:基于预定义规则或参考数据修复拼写错误或错误值。
数据增强(Data enrichment)
数据增强涉及通过外部来源向现有数据添加额外信息以增强其价值。该技术通过填补缺失信息并提供更全面的数据视角来提高数据质量。示例包括:
- 补充缺失信息:从第三方数据库添加缺失的客户详情。
- 地理编码:为地址数据添加地理坐标,以便进行基于位置的分析。
- 分类:将数据归类到预定义类别,如行业或产品类型。
强制约束与违规处理
强制约束是数据验证的重要方面。约束确保数据遵守特定规则与标准,从而维护完整性与质量。约束类型包括:
- 唯一性约束:确保每条记录唯一,防止重复条目。
- 参照完整性约束:保证表之间关系的维护,例如外键约束。
- 域约束:保证数据值(如有效范围或允许值)落在特定域内。
- 业务规则约束:确保数据遵守特定业务规则,例如年龄限制或信用额度。
处理约束违规
当数据未满足约束时,有效处理违规至关重要以维持数据质量。常见方法包括拒绝无效数据、使用隔离(隔离/隔离表)供审查与校正、记录错误以便审计,以及用预定义规则进行自动修正。隔离表(quarantine tables)是处理约束违规的实用方案——当数据未通过验证检查时,将其移动到隔离表,在那里进行审查、修正并重新处理。这种方法在保留原始数据以便分析与纠正的同时,确保数据质量问题得到处理。
处理缺失数据(Handling missing data)
缺失数据是常见问题,会损害数据质量和分析效果,尤其是在用于训练 ML 模型时。有效处理缺失数据对维护数据集完整性与 ML 模型效果至关重要。
缺失数据大致可分为以下类型:
- 完全随机缺失(Missing Completely At Random, MCAR) :缺失没有明显模式。
- 随机缺失(Missing At Random, MAR) :缺失与其他已观测数据存在关联模式。
- 非随机缺失(Missing Not At Random, MNAR) :缺失与缺失数据自身相关联的模式。
数据插补(imputation)技术用于处理缺失值,采用不同方法填补缺失数据。现代 AI/ML 方法提供了高级的插补能力。技术包括均值/中位数/众数插补、K 最近邻(KNN)插补、多重插补(multiple imputation)以及使用 ML 模型预测并插补缺失值。
数据集成验证
数据集成验证确保在将来自多个来源的数据合并时,数据保持准确与一致。该技术对于维护数据仓库和数据湖中的数据质量至关重要。数据集成验证方法包括模式匹配、数据血缘跟踪与对账。自动化数据验证使用软件工具与算法对数据质量进行持续监控与校验,该技术可以在最小人工干预下维持高数据质量。常见的自动化数据验证方法包括基于规则的验证、用于异常检测的机器学习(ML)以及实时监控。
确保数据质量对于准确且可靠的数据驱动决策至关重要。通过理解数据质量的重要性并实施有效的数据验证技术,组织可以维持高质量的数据并从中提取有意义的洞见。关键技术如输入校验、数据探查、数据清洗、数据增强、强制约束、处理约束违规与自动化数据验证在实现与维持数据质量方面发挥着重要作用。此外,通过包括 AI/ML 方法在内的数据插补技术来处理缺失数据,可进一步提升数据完整性。遵循最佳实践(例如建立数据治理、定义数据质量指标、实施数据质量工具、培养数据质量文化以及持续改进)将进一步增强数据质量管理工作。优先考虑数据质量的组织可以为成功的数据驱动项目建立坚实基础。
可伸缩的数据摄取架构
在大数据时代,可伸缩的数据摄取架构对于高效且可靠地将海量来自各类来源的数据移动到数据湖、数据仓库与实时分析平台非常关键。本节考察构建可伸缩摄取架构的概念与技术,重点介绍将变更数据捕获(Change Data Capture,简称 CDC)作为关键方法。
可伸缩摄取的必要性
随着组织以史无前例的速度生成与消费数据,传统的数据摄取方法在可伸缩性与性能方面往往难以胜任。可伸缩的摄取架构旨在处理高吞吐的数据流、确保低延迟,并在分布式系统中维护数据完整性。以下特性是从可伸缩性角度对数据摄取所期望的:
- 高吞吐量:现代应用实时生成大量数据。可伸缩的摄取架构必须支持高吞吐的数据摄取以跟上数据生成速度。这包括来自物联网设备、社交媒体、事务系统等的数据。
- 低延迟:在实时分析与决策场景中,低延迟至关重要。可伸缩的摄取架构应将数据生成到可用于分析之间的延迟降到最低,这对欺诈检测、实时监控和个性化推荐尤为重要。
- 数据完整性:在摄取过程中维护数据完整性非常关键。可伸缩架构应确保数据被准确捕获、转换与加载而不发生丢失或损坏,这涉及处理多种数据格式、保证模式兼容性并管理数据质量。
变更数据捕获(CDC)
CDC 是一种识别并捕获源系统中数据变更并将这些变更应用到目标系统的技术。CDC 在可伸缩摄取架构中扮演重要角色,通过实现实时数据复制与同步来发挥作用。
CDC 通过监控事务日志、数据库触发器或时间戳列来捕获数据变更。当源系统发生变更时,CDC 捕获该变更事件并将其传播到目标系统。这种方法确保目标系统能够以近实时的方式与源系统保持同步。
在可伸缩实现架构中实施 CDC 的若干好处包括:
- 实时数据复制:CDC 使实时数据复制成为可能,确保源系统的变更能够即时反映到目标系统。
- 降低源系统负载:与全量抽取方法相比,CDC 仅捕获变更,因而减少了对源系统的负载。
- 高效的数据移动:CDC 通过只传输增量变更来高效移动数据,从而减少网络带宽与存储要求。
实施 CDC
实施 CDC 需要根据数据源与目标系统的具体需求选择合适的工具与技术。常见方法包括:
- 基于日志的 CDC(Log-based CDC) :直接从数据库事务日志中捕获变更。该方法高效且入侵性小,因为它利用了数据库已有的日志机制。Debezium、Oracle GoldenGate 等工具常用于基于日志的 CDC。
- 基于触发器的 CDC(Trigger-based CDC) :使用数据库触发器来捕获变更。当数据被修改时,触发器会在单独表或日志中记录该变更。此方法相对容易实现,但可能会为数据库增加额外开销。
- 基于时间戳的 CDC(Timestamp-based CDC) :依赖时间戳列来识别变更。通过比较上次抽取时间戳与当前数据,捕获新增或被修改的记录。该方法实现简单,但可能无法捕获所有变更(例如删除操作)。
可伸缩摄取的最佳实践
构建可伸缩的摄取架构需要精心规划并遵循最佳实践。以下是一些关键考量:
- 可伸缩性与灵活性:将摄取架构设计为可横向扩展。使用分布式系统与云端服务来处理不断增长的数据量与工作负载。确保架构足够灵活以适配新数据源与不断变化的需求。
- 数据分区:采用数据分区有助于将负载分散到多个节点,从而提升性能与可伸缩性。根据数据访问模式使用合适的分区策略(如基于时间或键的分区)。
- 容错与可靠性:实现容错机制以保证数据可用性与可靠性。使用复制、数据备份与故障切换策略来应对硬件故障、网络问题和其他中断。
- 监控与告警:对摄取管道进行持续监控以便及时发现并解决问题。使用监控工具跟踪性能指标、数据质量与系统健康状况,设置告警以在异常或失败时通知相关人员。
- 数据安全与合规:确保摄取架构符合数据安全与隐私法规。实现加密、访问控制与审计记录以保护敏感数据,并定期审查与更新安全策略以应对新兴威胁。
可伸缩的摄取架构对于处理现代企业中增长的数据量、速度与多样性至关重要。像 CDC 这样的技术在实现实时数据复制与同步方面起到核心作用。通过实现诸如批处理、流处理与 Lambda 架构等可伸缩摄取模式,组织可以高效地摄取并处理数据以获取有价值的洞见。遵循可伸缩性、容错、监控与安全方面的最佳实践,可以确保摄取架构保持稳健与可靠。随着数据规模的增长,可伸缩的摄取架构将成为成功数据驱动倡议的基石。
数据摄取中的安全与合规
在以数据驱动决策的时代,数据摄取流程的安全性与合规性至关重要。确保数据以安全且符合法规的方式被摄取,可以保护敏感信息、建立信任并降低风险。本节探讨在数据摄取中实现安全与合规的关键概念、技术与最佳实践。
数据摄取安全的重要性
数据摄取涉及将来自各类来源的数据传输到集中存储系统。该过程通常处理敏感和机密信息,因此是网络攻击的主要目标。保护数据摄取需要防范以下风险:
- 数据泄露:数据泄露可能造成严重后果,包括经济损失、声誉受损和法律惩罚。保护摄取管道有助于阻止未授权访问和信息泄露,保障组织资产。
- 未授权访问:未授权访问可能导致数据篡改、窃取和滥用。实施强有力的访问控制和认证机制可确保只有授权人员才能访问与修改数据。
- 数据完整性:在摄取过程中保持数据完整性至关重要。确保数据在传输过程中不被篡改或损坏,可维护其准确性与可靠性,这是决策与分析的基础。
- 合规性:数据摄取需遵守相关法律法规,涉及数据的处理、存储与保护。合规可以避免法律风险与罚款。
常见法规示例:
- GDPR(通用数据保护条例) :规范对欧盟公民个人数据的处理。摄取流程需满足数据最小化、取得同意、被遗忘权等要求。
- HIPAA(健康保险流通与责任法案) :为敏感健康信息保护设定标准,摄取与存储病患数据时需实施相应保障措施。
- CCPA(加州消费者隐私法案) :赋予加州居民隐私权利,摄取流程需支持访问、删除与选择退出等规定。
保障数据摄取的技术手段
在数据摄取阶段实施安全措施,可抵御各种威胁与漏洞。关键技术包括:
加密
加密是保护摄取数据的基础技术。对传输中与静态存储的数据进行加密,即使数据被截获,若无解密密钥也无法读取。常见做法包括:
- TLS/SSL:传输层安全协议,用于加密数据传输,防止窃听与篡改。
- AES(高级加密标准) :常用于静态数据加密,保障存储数据的安全性。
访问控制
通过访问控制确保只有授权人员能访问与修改数据。常用模型包括:
- 基于角色的访问控制(RBAC) :根据用户角色分配权限,保证用户仅拥有执行业务所需的最小权限。
- 基于属性的访问控制(ABAC) :基于用户、资源和环境等属性计算权限,提供更细粒度的访问控制。
认证与授权
强认证与授权机制能防止未授权访问摄取管道。有效措施包括:
- 多因素认证(MFA) :要求用户提供多种身份凭证(如密码与生物特征)以提高安全性。
- 单点登录(SSO) :用户只需一次认证即可访问多个系统,简化流程同时保持安全性。
数据脱敏/遮蔽(Data masking)
数据脱敏用于在不暴露真实敏感信息的情况下保留数据可用性,常用于测试与分析场景:
- 静态脱敏:在存储层对数据进行脱敏,确保非生产环境中敏感信息被隐藏。
- 动态脱敏:在实时访问或处理时对数据进行脱敏,保护敏感信息的即时访问。
网络安全最佳实践
- 仅对必要流量开放端口以最小化攻击面。
- 配置防火墙和网络安全组以允许必要流量,阻止不必要访问。
- 使用基于身份与权限的 IAM(身份与访问管理)角色来管理访问权限,避免在代码或配置中硬编码用户 ID 与密码。
- 使用环境变量、密钥管理工具或云平台的密钥/凭证管理服务来安全存储与访问凭证,避免凭证泄露。
合规最佳实践
遵循最佳实践有助于满足监管与行业标准要求,关键点包括:
-
数据最小化:仅收集为特定目的所必需的数据。减少采集数据量可降低暴露风险并符合隐私法规。
-
同意管理(Consent management) :获取并管理用户同意,确保数据在用户许可下被收集与处理。
- 明确同意:在收集前需获得用户清晰且积极的同意。
- 细粒度同意:允许用户对特定处理活动分别同意,提供更高的控制权。
-
审计与监控:定期审计与实时监控摄取流程以保证合规并发现潜在安全问题。
- 审计日志:保留详尽的数据访问与修改记录,为合规与取证提供线索。
- 实时监控:持续监控摄取管道的异常与未授权活动,以便快速响应。
-
数据保留与删除:实施数据保留与删除策略,遵循法规对数据保存期限的要求,定期清理不必要的数据以降低暴露风险。
实践中的实施要点
实现安全与合规需要技术、策略与流程的结合,建议包括:
- 安全策略与流程:制定覆盖加密、访问控制、认证、数据脱敏、网络安全与事件响应的安全策略与操作流程。
- 培训与意识提升:对员工进行安全与合规最佳实践培训,明确其职责与注意事项,营造安全意识文化。
- 技术选型与实现:部署加密工具、访问控制系统、认证机制、网络安全配置与监控工具,为数据摄取提供技术保障。
- 定期评估:开展定期安全与合规评估,包括渗透测试、漏洞扫描和合规审计,以识别潜在弱点并验证管控有效性。
安全与合规是数据摄取流程的核心组成部分。通过在摄取阶段采用加密、访问控制、认证、数据脱敏、IAM 角色与网络安全等技术,并辅以数据最小化、同意管理、审计、保留与删除等合规实践,组织可以保护敏感信息、建立信任并降低风险。随着数据规模与复杂性的增长,将安全与合规作为优先事项,对于成功的数据驱动项目至关重要。
云原生摄取服务
云原生摄取服务彻底改变了组织处理数据摄取的方式,提供了无与伦比的可伸缩性、灵活性和易用性。这些由主要云平台(如 AWS、Azure 和 Google Cloud)提供的服务,简化了将来自多种来源的数据摄取到数据湖、数据仓库和实时分析平台的过程。本节介绍一些最流行的云原生摄取服务、它们的特性以及适用场景。
AWS Glue
AWS Glue 是一个全托管的 ETL 服务,可简化分析用的数据准备与加载。使用 AWS Glue,你可以轻松地发现、编目、清洗、增强并在不同数据存储间移动数据。主要特性包括:
- 数据目录:AWS Glue 自动发现并编目关于数据存储的元数据,便于搜索与查询数据。
- ETL 作业:创建并运行 ETL 作业以在源与目标间转换和移动数据。AWS Glue 支持基于代码与可视化的 ETL 开发。
- 无服务器(Serverless) :AWS Glue 为无服务器服务,无需管理基础设施,能自动扩缩以应对不同数据量。
AWS Glue 适合用于构建数据湖、为机器学习准备数据以及整合来自多源的数据以做分析。它支持多种数据源,包括 S3、RDS 和 Redshift。
Azure Data Factory
Azure Data Factory(ADF)是一个基于云的数据集成服务,允许你创建、调度与编排数据工作流。ADF 支持跨各种数据存储与服务的无缝数据移动与转换。主要特性包括:
- 数据管道:ADF 支持创建定义数据移动与转换工作流程的数据管道,可用可视化界面或代码设计。
- 集成运行时:ADF 提供可扩展且安全的集成运行时,支持跨云与本地环境的数据移动与转换。
- 活动库:ADF 提供丰富的数据转换活动库,包括数据流、复制与查找等活动。
Azure Data Factory 适用于混合数据集成、ETL 过程以及跨多样数据源与目标的数据编排。它支持如 Azure Blob Storage、SQL Database 与 Cosmos DB 等数据存储。
Google Cloud Dataflow
Google Cloud Dataflow 是一个全托管的流式与批处理数据处理服务,允许你构建可实时或批量处理数据的数据管道。主要特性包括:
- 统一编程模型:Dataflow 基于 Apache Beam,使你可以编写既可用于批处理也可用于流处理的管道。
- 自动扩缩容:Dataflow 根据数据量自动扩缩管道,保证性能与成本效率。
- 集成:Dataflow 可与 BigQuery、Cloud Storage、Pub/Sub 等 Google Cloud 服务无缝集成。
Google Cloud Dataflow 适合实时分析、ETL 流程以及为机器学习准备数据。其同时支持批处理与流处理,适用性广。
Amazon Kinesis
Amazon Kinesis 是一个用于实时数据流与分析的平台,支持在大规模下摄取、处理与分析实时数据流。主要特性包括:
- Kinesis Data Streams:从 IoT 设备、应用日志、社交媒体等来源捕获并存储实时数据流。
- Kinesis Data Firehose:一个全托管服务,用于将实时数据流加载到数据湖、仓库与分析服务中。
- Kinesis Data Analytics:使用 SQL 查询分析实时数据流并构建实时仪表盘与告警。
Amazon Kinesis 适用于实时监控、日志与事件数据处理以及实时分析,并能与 S3、Redshift、Lambda 等 AWS 服务集成。
Azure Stream Analytics
Azure Stream Analytics 是一个实时服务,用于处理与分析来自多种来源的流式数据。主要特性包括:
- 流处理:使用类似 SQL 的查询实时处理与分析流数据。
- 集成:与 Azure Event Hubs、IoT Hub、Blob Storage 等服务集成,实现无缝摄取与处理。
- 可伸缩性:自动扩缩以应对不同数据量,确保高可用性与性能。
Azure Stream Analytics 适合实时分析、物联网(IoT)数据处理与告警场景,支持 Azure Event Hubs、IoT Hubs 与 Blob Storage 等数据源。
Google Cloud Pub/Sub
Google Cloud Pub/Sub 是一个消息传递服务,用于在独立应用间摄取并传递实时消息。主要特性包括:
- 发布-订阅模型:解耦数据生产者与消费者,实现可伸缩且可靠的数据摄取。
- 实时消息:支持低延迟的实时消息传递,确保及时的数据处理与分析。
- 集成:可与 Dataflow、BigQuery、Cloud Functions 等 Google Cloud 服务集成,用于无缝数据处理。
Google Cloud Pub/Sub 适合实时消息传递、事件驱动架构与数据集成,支持多样来源与目标。
云原生摄取服务为大规模高效摄取与处理数据提供了强大能力。像 AWS Glue、Azure Data Factory、Google Cloud Dataflow、Amazon Kinesis、Azure Stream Analytics 与 Google Cloud Pub/Sub 这样的服务,为不同的数据摄取需求提供了全面解决方案。组织可通过利用这些服务构建可靠且高效的数据摄取管道,从而支持数据驱动的洞见与决策。随着数据规模与复杂性的增长,云原生摄取服务将在推动成功的数据倡议中发挥关键作用。
数据采集与摄取的示例架构
为 AI 设计数据采集与摄取架构,需要整合多个组件以确保高效、安全并合规地处理数据。该架构利用可伸缩的摄取方法、云原生服务与稳健的安全措施。下文为覆盖本章中各个方面的示例架构说明。
在我们的示例架构(基于 AWS 生态)中,可以包含以下组件:
-
数据来源:事务型数据库(包括行项目与主数据,结构化且含分类值)、物联网(IoT)数据(本例为时间序列数据)、社交媒体数据(图像与视频,基本为非结构化)、以及以 XML 格式存储的日志文件(半结构化)。
-
数据摄取:我们使用 AWS Glue 做数据摄取,对事务型数据采用批处理,并对物联网数据采用触发器(trigger-based)的 CDC(变更数据捕获)。
- 实时处理:使用 Amazon Kinesis 处理来自物联网、社交媒体与应用日志的实时数据。
- 数据处理:使用 AWS Glue 的 ETL 作业进行转换,并使用 Kinesis Data Analytics 对实时流进行基于 SQL 的分析。
- 数据存储:使用 Amazon S3 作为数据湖,使用 Amazon Redshift 作为数据仓库以运行托管查询。
-
数据安全与合规:在各阶段使用 TLS/SSL 协议对传输数据进行加密,并在数据湖或仓库中对静态数据进行静态加密(at-rest encryption)。结合 MFA 与 SSO 以维护全系统的认证安全。配置防火墙与安全组仅允许必要流量,并为架构中的不同实体分配适当的 IAM 角色。最后,防火墙与安全组的配置应限制仅必要的流量以最小化攻击面。
在后续章节中,我们将深入探讨诸如数据存储、管理与处理等额外组件。到第 4 章《用于 AI 的数据处理与转换》结束时,我们将看到一幅连接本章讨论组件、构成端到端数据摄取框架的示意图。
结论
本章对任何数据驱动企业的基础流程进行了全面探讨。我们从数据摄取的核心原则入手,理解了数据在被保证为高质量与及时性时所起的重要作用。认识到批处理与实时摄取方法之间的差异,使你能够为不同的业务场景选择合适的方法。
接着我们浏览了数据安全与合规的复杂领域,强调了在摄取过程中保护敏感信息的重要性。通过实施加密、访问控制与数据脱敏,并遵守 GDPR、HIPAA、CCPA 等法规要求,你可以确保数据实践既安全又合规。
本章还介绍了云原生摄取服务的强大能力。像 AWS Glue、Azure Data Factory 与 Google Cloud Dataflow 这样的工具为管理数据摄取任务提供了可伸缩且灵活的解决方案,而 Amazon Kinesis 与 Azure Stream Analytics 等实时流服务则支持即时数据处理与分析。这些服务在现代数据架构中不可或缺,提供了处理大规模数据所需的可伸缩性与效率。
最后,我们将本章概念综合为面向 AI 应用的数据采集与摄取示例架构,整合了所讨论的方法、工具与最佳实践,提供了构建稳健、安全且合规的数据摄取管道的实用蓝图。
掌握本章所涵盖的策略与工具后,你将为更高级的分析与 AI 驱动洞见奠定坚实基础。接下来我们将从数据摄取转向数据存储与管理,探讨数据湖、数据仓库与混合存储解决方案的细节、优势与适用场景,并学习组织、分区与优化数据存储以确保无缝访问与高效查询的最佳实践。同时我们还会关注数据治理与元数据管理,这对维护数据完整性与实现有效的数据发现至关重要。