什么是数据完整性?
数据完整性强调维护数据完整性,确保数据在其整个生命周期内准确无误、保持一致且功能完备。无论访问请求的数量、数据量的大小以及数据增速如何,在单个数据存储中,数据完整性的维护工作都必须易于管理。现代云环境需要在分布式数据存储和服务之间进行复杂、持续的数据迁移。高吞吐量联机事务处理(OLTP)系统需要严格的数据完整性检查以维护系统一致性。数据工程师必须对新的和现有的数据存储及流程(包括集成、备份和云迁移)进行数据完整性检查。本文探讨了云中数据完整性管理面临的挑战及其解决方案。
数据完整性是指在数据生命周期内维护数据准确性、一致性和完整性的过程。它是数据质量保证的关键部分,可确保组织的数据对于事务处理、商业智能和分析而言是相关且可靠的。数据完整性包含多种方法和协议,可用于验证数据,同时保护敏感数据免遭未经授权的访问。
为何数据完整性如此重要? 它可确保组织的数据在记录财务和其他业务活动以及支持决策方面始终保持可信。无论处理数据的工具和角色如何,也无论数据转换过程如何,数据完整性都至关重要。
数据完整性在联机事务处理(OLTP)系统中至关重要,因为它可以确保业务事务的准确处理、财务运营的一致性,并防止重复记账或事务丢失等问题。数据完整性的失误可能导致监管不合规和客户满意度下降等后果。
维护数据完整性面临哪些挑战?
要确保组织内的数据完整性,需要解决与人力和技术相关的数据管理挑战。
OLTP 环境
OLTP 环境中最大的数据完整性挑战是在维护数据一致性的同时管理并发事务,尤其是在大容量操作期间。这一挑战需要在严格遵循原子性、一致性、隔离性和耐久性(ACID)与满足性能要求之间取得平衡。在此环境下,多个用户必须能够同时修改相同数据,且不会遇到争用状况和死锁,同时保持系统的实时处理能力。
商业智能和分析
在商业智能和分析使用案例中,数据来源与系统之间的有限集成使公司无法保持统一、准确的数据资产视图。此外,依赖手动输入和收集数据可能会导致拼写错误、遗漏和不一致,从而损害数据准确性。
审计和数据跟踪
另一项挑战则是缺乏适当的审计跟踪记录,导致难以跟踪数据从收集到删除的历史记录。组织可能失去对未经授权的数据修改的可见性。遗留系统因使用过时的文件格式或缺乏必要的验证功能,进一步增加了确保数据完整性的复杂性。而将数据迁移至云能够实现更集中的数据质量机制,并减少数据完整性检查所需的时间和精力。
如何保护云中的数据?
数据完整性可分为两大类型。
物理完整性
物理完整性流程可保护数据免受自然灾害、停电、硬件故障或其他影响物理存储设备的因素造成的损坏与破坏。在云中,物理完整性由云提供商自动托管。在责任共担模式下,这属于云提供商的责任。
例如,AWS 数据中心为存储数据的物理设备提供四层数据安全基础设施。数据安全功能包括:
- 严格的访问控制,通过多重身份验证和电子控制措施保护服务器机房访问安全。
- 入侵防御措施,例如自动检测未经授权的数据删除。
- 对存储设备进行安全管理,涵盖从安装、预置到卸载和停用的全过程。
- 针对 2600 多项安全要求(包括设备检查)进行严格的第三方审计。
逻辑完整性
逻辑完整性流程可确保数据符合其所在存储系统的基本规则。逻辑完整性可进一步分为四个子类型:
- 域完整性通过将值限制在特定范围、格式或预定义集合内(例如,使用数据类型及其他类似的数据约束)来确保数据准确性。
- 实体完整性确保可通过主键等机制唯一标识单个数据记录,防止关键字段中出现重复值或空值。
- 参考完整性通过强制执行外键约束来维护表间的一致关系,防止出现孤立数据记录。
- 用户定义完整性实施了超出标准约束的特定业务规则,例如自定义验证逻辑或应用程序级强制执行。
云用户负责实施逻辑完整性约束并确保数据质量。在“责任共担模式”下,这属于客户的责任。
不过,AWS 数据服务提供了多种机制来支持数据完整性检查,例如校验和算法、数据质量监控工具,以及在备份和数据同步期间的数据完整性自动检查。
托管服务可为数据完整性提供可配置的自动化护栏。在 OLTP 系统和数据库中,逻辑完整性流程有助于保持每个事务的原子性、一致性、隔离性和持久性。
如何确保云中数据的完整性?
在 AWS 云中实现逻辑完整性时请考虑以下措施。
实现对象数据完整性
大多数云数据操作都从 Amazon S3 存储桶开始,它可以将任何数据类型存储为对象。您可能经常在 Amazon S3 存储桶、数据库和其他云服务或本地存储之间迁移数据。Amazon S3 提供内置校验和机制,以降低上传、下载和复制期间的数据完整性风险。
校验和是使用特定算法从数据中生成的唯一、固定长度的值。它创建了唯一的数字指纹,便于系统检测数据损坏或意外修改。复制对象时,Amazon S3 会计算源对象的校验和并将其应用于目标对象。如果不匹配,就会发出提醒。Amazon S3 支持用于分段上传的完整对象校验和与复合校验和。完整对象校验和覆盖整个文件,而复合校验和则聚合各个段级校验和。
请按以下说明使用校验和功能。
上传
Amazon S3 支持多种安全哈希算法(SHA)和循环冗余校验(CRC)算法,包括 CRC-64/NVME、CRC-32、CRC-32C、SHA-1 和 SHA-256。如果使用 AWS 管理控制台,请在上传期间选择校验和算法。如果未指定校验和,Amazon S3 会默认选择 CRC-64/NVME。
下载
下载对象时,应请求存储的校验和值以验证数据完整性。根据上传是已完成还是仍在进行中,使用 GetObject、HeadObject 或 ListParts 操作检索校验和值。
复制
如果使用 CopyObject 操作复制对象,Amazon S3 会为整个对象生成直接校验和。如果对象最初是通过分段上传完成的,则即使数据保持不变,其校验和值也会在复制时发生改变。
实现数据管道完整性
另一个常见使用案例是将数据迁移至云数据湖、数据仓库或托管数据库服务。在此类数据管道中设置数据完整性检查容易出错、繁琐且耗时。您必须手动编写监控代码和数据质量规则,以便在数据质量下降时提醒数据使用者。
迁移期间
AWS 数据库迁移服务(DMS)通过多种内置的保护和验证机制,在数据迁移至 AWS 云数据库期间保护其完整性。DMS 会执行自动验证以比较源数据和目标数据,并通过数据重新同步来别和解决差异。
DMS 包含检查点和恢复功能,可在发生中断时从最后一个已知良好状态恢复迁移,同时提供全面的监控和日志记录功能以跟踪迁移进度。此外,DMS 通过对传输中数据进行 SSL 加密以及与 AWS 安全服务集成来确保数据安全性。
数据库基础设施
AWS 数据库通过多种全面的机制和功能保护数据完整性,包括自动备份和多可用区部署,可确保数据持久性和一致性。这些数据库通过内置约束强制执行引用完整性,保持 ACID 合规性以实现事务一致性,并提供时间点恢复功能。借助托管式数据库服务,例如 Amazon Relational Database Service(RDS)和 Amazon Aurora,您可以设置特定的数据完整性控制措施。例如,Aurora 允许您在 OLTP 数据库上设置不同的事务隔离级别。
为了增强保护,AWS 数据库支持通过多区域部署进行灾难恢复,即在地理位置分散的区域复制数据。与 Amazon CloudWatch 集成有助于在潜在的数据完整性问题影响运营之前,识别和解决这些问题。
数据集成
AWS Glue 是一项无服务器数据集成服务,用于在 AWS 云中准备和合并数据。AWS Glue 数据质量自动监测功能将手动数据验证工作从数天缩短至数小时。它会自动推荐质量规则、计算统计数据,进行监控并在检测到不正确或不完整的数据时发出提醒。它与数据质量定义语言(DQDL)结合使用,后者是一种用于定义数据完整性规则的特定域语言。
在从 OLTP 系统收集用于分析的数据时,您可以使用 AWS Glue 管道将数据从数据库推送到分析服务。
您还可以进一步将指标发布到 Amazon CloudWatch 以进行监控和提醒。
实现数据备份完整性
大型企业项目可能有不同的团队进行数据备份并从不同的位置访问 Amazon S3 存储。在此类分布式数据备份操作中,数据治理成为一项挑战。 请注意,AWS 数据库具有内置备份功能。
AWS Backup 是一项完全托管式服务,能够跨 AWS 服务 [例如 Amazon Simple Storage Service(S3)、Amazon Elastic Compute Cloud(EC2)、Amazon FSx] 和 VMware 中的混合工作负载集中、自动进行数据保护。您可以集中部署数据保护策略,以便治理、管理和配置跨 AWS 资源和账户的备份活动。
AWS Backup 旨在在整个数据生命周期(从传输、存储到处理)内维护数据完整性。它对所有存储的数据(无论其类型如何)实施严格的安全措施,从而确保对未经授权的数据访问提供较高保护。您可以完全控制数据分类、存储位置和安全策略,因而能够根据自身需求对数据进行管理、存档和保护。
AWS Backup 与其他 AWS 服务合作,通过多种机制保持数据完整性。其中包括:
- 持续进行校验和验证,以防止数据损坏。
- 通过内部校验和来验证传输中数据和静态数据的完整性。
- 发生磁盘故障时自动恢复冗余。
数据以冗余方式存储在多个物理位置上,此外,网络级检查也有助于检测数据传输期间发生的损坏。
AWS 如何帮助维护数据完整性?
数据完整性还可以增强对分析的信任、支持合规性,并确保数据在其整个生命周期内保持价值。然而,对于本地部署而言,确保数据完整性既充满挑战又成本高昂,并且可能因手动、分布式和冗余的工作而损失大量时间。
相比之下,云技术将流程集中起来,为您完成了大部分繁重工作。默认情况下,内置了多项物理和逻辑完整性检查。自动化机制会自行生成实现数据完整性所需的软件规则。数据工程师只需配置设置或审查自动化机制完成的工作。数据完整性有助于 OLTP 系统在处理大容量、实时事务的同时保持极高的准确性,这对于可靠的业务运营和实践至关重要。
立即创建免费云账户,以开始使用。