读数据质量管理:数据可靠性与数据质量问题解决之道05数据标准化

news/2024/11/16 8:10:21/文章来源:https://www.cnblogs.com/lying7/p/18548895

1. 批处理

1.1. 批处理在一段时间内收集数据,然后将大量数据“批处理”在离散的数据包中

1.2. 直到20世纪10年代中期,批处理都是处理分析型数据最常用的方法

1.3. 批处理比流处理要便宜得多,即使是对时间要求最苛刻的处理需求也足以满足

1.4. 批处理是经过时间考验的标准,并且仍然是公司接收大量数据最为流行且常见的方式

1.5. 当组织想要获得实时的洞察时,批处理就显得力不从心了

1.6. 批处理关注的是尽可能多地收集数据,即使这会带来滞后

1.7. 批量流系统的数据质量(也就是数据管道中给定阶段的数据健康状况)往往更高,但是当数据在进行实时流传输时,产生错误的空间和数据质量降低的情况都会增加

2. 流处理

2.1. 流处理是一个较长的过程,但几乎可以立即处理数据

2.2. 随着各行各业的公司越来越依赖实时数据,Apache Kafka和Amazon Kinesis等技术让流数据相对以前来说更易于大规模访问,价格也更实惠

2.3. 实时访问数据将改变游戏规则,这也为依赖数据而不断更新的产品和服务带来了更高的投资回报

  • 2.3.1. 流处理可以填补空白的地方

2.4. 流处理的一个简单示例是实时拼车应用程序的请求

  • 2.4.1. 使用实时流数据,这些拼车应用程序可以将实时位置、价格和司机数据拼凑在一起,从而立即将用户与行程联系起来

2.5. 最常见的开源技术包括来自Apache的解决方案

  • 2.5.1. Spark、Kafka、Flink、Storm、Samza和Flume

2.6. 使用最广泛的还是Apache Spark和Apache Kafka

  • 2.6.1. Apache Spark采用微批处理方法,将传入的流拆分成更小的数据包

  • 2.6.2. Apache Kafka以近乎实时的方式分析事件

  • 2.6.3. 托管替代方案包括Databricks、Cloudera和Azure

3. Apache Hadoop

3.1. 用于分布式存储和处理大型数据集的最流行的开源批处理框架之一

3.2. 通过将文件拆分为更小的数据包,然后将这些更易于管理的数据块分布在集群中的节点上来运行

3.3. Hadoop的托管替代品包括Google BigQuery、Snowflake​、Microsoft Azure和Amazon Redshift

4. 流处理的数据质量

4.1. 批处理和流处理之间的主要区别在于每个批处理所包含的数据量和处理速度

4.2. 流处理关注的是尽可能快地收集数据,尽管这会导致一些损失

4.3. 传统来说,数据质量是通过测试来强制执行的

  • 4.3.1. 你分批接收数据,并希望数据按照你认为必要的时间间隔到达

  • 4.3.2. 根据其对数据的假设编写测试,但其实不太可能通过编写测试来解释所有可能的结果

4.4. 数据质量往往会出现新的错误,而工程师会急于在问题影响下游表格和用户前进行根因分析

  • 4.4.1. 编写一个测试以防止该问题再次发生

  • 4.4.2. 测试很难扩展

  • 4.4.2.1. 测试仅仅涵盖了潜在数据质量问题的20%

>  4.4.2.1.1. “已知的未知”​
  • 4.4.3. 从任何地方的数十到上百个内部和外部数据源中获取数据,而传统的处理和测试方法已经开始过时

4.5. 如果确保批处理数据的可靠性都很困难的话,你可以想象一下对每分每秒都在演变的数据运行和扩展测试会多么难以实现

4.6. 虽然单元测试、功能测试和集成测试等传统数据质量框架可能包含了一些基础功能,但它们无法在难以进行预测和实时演变的数据集中进行扩展

  • 4.6.1. 为了确保提供给这些实时用例的数据是可靠的,数据团队在处理流处理时需要重新考虑所使用的数据质量方法

4.7. 流式解决方案可以将数据直接实时传输到分析系统中或传输到数据仓库进行存储、处理和转换

4.8. 当你在AWS Kinesis和Apache Kafka之间进行选择时,实际上还是要取决于数据团队的需求

  • 4.8.1. AWS Kinesis等托管解决方案易于设置,寻求快速实现价值的小型数据团队将受益于这种软件即服务(SaaS)的产品

  • 4.8.2. 拥有更具体需求的大型数据团队可能会发现Apache Kafka更符合要求

5. AWS Kinesis

5.1. 亚马逊的Kinesis服务是一种流行的无服务器流处理工具,适用于依赖实时数据的应用程序

5.2. 容量可“按需”扩展,从而减少了在数据量增加前预置和扩展资源的需要

5.3. 可以被配置为从其他AWS服务、微服务、应用程序日志、移动数据和传感器数据等来源捕获数据

  • 5.3.1. 该服务可以扩展到每秒流式传输千兆字节(GB级)的数据

5.4. 优势

  • 5.4.1. 按需可用性

  • 5.4.1.1. 按需预置设定了行业标准,这意味着资源组可以在负载增加时进行扩展

  • 5.4.2. 成本效益

  • 5.4.2.1. 付费方案与资源使用量成正比

  • 5.4.2.2. 流式服务的数据吞吐量可能会随着时间的推移而急剧变化

  • 5.4.3. 完善的软件开发工具包(Software Development Kit,SDK)

  • 5.4.3.1. 支持Java、Android、.NET和Go等多种编程语言的开发

  • 5.4.3.2. Kafka仅支持Java

  • 5.4.4. 与AWS基础设施的集成

  • 5.4.4.1. 与Amazon S3、Amazon Redshift和其他亚马逊数据服务的集成要容易得多

6. Apache Kafka

6.1. 一个开源事件的流式平台

  • 6.1.1. 一个具有高学习曲线的应用程序

  • 6.1.2. 意味着它为给定应用程序中的Kafka流、生产者和消费者提供了大量的颗粒度设置

6.2. 模式注册表

6.3. Kafka Streams是支持流式数据进出Kafka集群的客户端库

6.4. 服务提供数据流和集成层以及流式分析

6.5. Kafka流式服务针对低延迟进行了优化

  • 6.5.1. 宣称其延迟低至2ms,但会受限于网络吞吐量

6.6. 优点

  • 6.6.1. 开源社区

  • 6.6.1.1. 该工具可以免费使用

  • 6.6.2. 增加可定制性

  • 6.6.2.1. 比Kinesis等集成度更高的流式解决方案具有更陡的学习曲线

  • 6.6.2.2. 用户具有更强的可配置性,包括手动指定数据的保留期限

>  6.6.2.2.1. Kinesis将其固定为7天
  • 6.6.3. 高吞吐量

  • 6.6.3.1. 已被证明支持高达每秒30000条记录的吞吐量

  • 6.6.3.2. Kinesis仅支持每秒数千条记录

6.7. Apache Kafka流通过JMX(Java管理扩展规范)报告流式指标

  • 6.7.1. 使用JConsole等图形工具对JMX数据进行可视化

6.8. 在事务型转换中执行检查的优先级需要与该步骤中延迟超过吞吐量检查的优先级保持一致

  • 6.8.1. 在这个阶段避免进行吞吐量密集型的聚合检查

  • 6.8.2. 将历史模式与传入模式进行比较,或者跟踪随时间的推移所扫描的字节量的变化情况

  • 6.8.3. 确保传入的数据不会超过现有容量、存储和内存的限制

7. 数据标准化

7.1. 第一个事务型数据转换层称为数据标准化阶段

7.2. 数据转换指的是将数据从一种或多种源格式转换到目标格式的程序

7.3. 标准化通常是你的数据在管道中经过的诸多此类转换中的第一个

7.4. 标准化发生在噪声、模糊性和异构性最大的入口点数据上

7.5. 处理异构数据源

  • 7.5.1. 数据从业者都会从不同的来源收集数据,试图为他们的用户、产品或应用程序描绘一个整体的画像

  • 7.5.2. 关键特征

  • 7.5.2.1. 针对延迟进行了优化

>  7.5.2.1.1. 流式端点的数据在经过优化后,可以一经创建就立即使用>  7.5.2.1.2. 优化是以吞吐量为代价的,而这实际上决定了数据的完整性>  7.5.2.1.3. 意味着不要期望批数据是完整的,因为无论其最终状态如何,它们都会立即通过数据管道进行推送
  • 7.5.2.2. 不具层级结构的格式
>  7.5.2.2.1. 经过标准化的数据可能会以不具层级结构的“平面”存储格式来进行存储,以提高效率和易用性>  7.5.2.2.2. 将数据“转储”到某个中央存储库中
  • 7.5.2.3. 原始文件格式
>  7.5.2.3.1. 除了以“平面”形式存储外,入口点数据还可能反映流式传输的原始文件格式
  • 7.5.2.4. 可选数据字段
>  7.5.2.4.1. JSON等原始文件数据都具有可选字段>  7.5.2.4.2. 任何内容都可能是默认值,并且该字段的缺失可能会(也可能不会)成为上游处理的问题
  • 7.5.2.5. 异构性
>  7.5.2.5.1. 数据来自各种不同的来源,采用各种原始的文件格式,并且与此前相同格式的数据相比,其完整性可能不同>  7.5.2.5.2. 在数据管道的这个阶段,学习如何根据可预测的异构性来让数据有意义非常关键>  7.5.2.5.3. 要确保数据一旦被存储和处理就能轻松地进行转换,以最大化其价值
  • 7.5.3. 数据湖通常是入口点数据的首选存储解决方案,因为它们对可接受数据类型的严格限制要小得多

  • 7.5.3.1. 数据转储为数据湖格式,然后依靠初始级别的事务型转换将这些数据提升为数据仓库中的结构化形式

  • 7.5.3.2. 定期将数据移动到数据仓库中,那么像AWS Glue之类的转换层在这一阶段会很有帮助

7.6. 模式检查

  • 7.6.1. 模式检查是指验证数据结构是否符合我们预期的步骤

  • 7.6.1.1. 是否存在必要的字段

  • 7.6.1.2. 所包含的数据是不是我们所需要的格式

  • 7.6.2. 模式让我们知道第一次“解包”数据时会发生什么

  • 7.6.3. 改变模式是数据损坏的一个主要原因

  • 7.6.4. 主动检查这类错误,这通常意味着保持对预期模式的记录,并且在它们发生变化时以某种可见的方式进行记录

7.7. 类型强制转换

  • 7.7.1. 类型强制转换是在数据不符合格式要求并且必须“强制”转换为新格式时去执行的过程

  • 7.7.2. 注意类型强制转换和一般转换中的问题,它们听起来很简单,但一定会产生一些“恶意”漏洞和错误

7.8. 数据中的句法歧义与语义歧义

  • 7.8.1. 数据可能是模棱两可的,每个人都知道这一点,但这种模棱两可的表现形式却各不相同

  • 7.8.2. 句法歧义指的是数据呈现方式的混乱

  • 7.8.2.1. 数据中的句法歧义,可能给数据团队带来摩擦

  • 7.8.3. 语义歧义指的是系统中数据用途的混淆

  • 7.8.3.1. 更有害

  • 7.8.3.2. 在语义上是模棱两可的

>  7.8.3.2.1. 无法就该字段的用途达成一致
  • 7.8.3.3. 可能会导致数据错误地表示组织的关键指标

  • 7.8.3.4. 文档是避免发生此类情况的一项关键工具,而且该文档应该具有一定的前瞻性

  • 7.8.3.5. 歧义会以一种难以根除的方式迅速蔓延,尤其是在团队快速扩张的情况下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/834449.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于C#开源、功能强大、灵活的跨平台开发框架 - Uno Platform

前言 今天大姚给大家分享一个基于C#开源、功能强大、灵活的跨平台开发框架:Uno Platform。通过 Uno Platform,开发者可以利用单一代码库实现多平台兼容,极大地提高了开发效率和代码复用性。项目介绍 Uno Platform是一个基于C#开源、功能强大、灵活的跨平台开发框架,用于快速…

chrony配置/释义

[root@c7-1 ~]# cat /etc/centos-release CentOS Linux release 7.9.2009 (Core)[root@c7-1 ~]# yum -y install chrony [root@c7-1 ~]# vim /etc/chrony.conf # 自带 server 0.centos.pool.ntp.org iburst server 1.centos.pool.ntp.org iburst server 2.centos.pool.ntp…

WPF 打开资源管理器且选中某个文件

本文将和大家介绍如何在 Windows 系统上使用 SHOpenFolderAndSelectItems 方法打开资源管理器且选中给定的文件打开资源管理器且选中某个文件可以使用 cmd 调用 explorer 带上 select 参数,如下面命令行所示 explorer.exe /select,"C:\Folder\file.txt"但有很多情况…

Virtual Box 虚拟机扩容

Virtual Box 虚拟机扩容 扩容有风险,有可能导致磁盘损坏,系统不可用。 需要使用的工具 gparted GParted -- A free application for graphically managing disk device partitions 步骤图解 1.扩大虚拟硬盘的容量2.加载分区工具执行分区操作3.扩展逻辑卷 要扩大 / 分区的空间…

RealCustom:缩小真实文本词的范围,实现实时开放域文本到图像的定制

RealCustom:缩小真实文本词的范围,实现实时开放域文本到图像的定制文本到图像定制旨在为给定的主题合成文本驱动的图像,最近彻底改变了内容创作。现有的作品遵循伪词范式,即将给定的主题表示为伪词,然后将其与给定的文本组合在一起。然而,伪词与给定文本固有的纠缠扩散范…

网站f12代码怎么修改,掌握网站F12调试工具的使用技巧

打开F12开发者工具:在浏览器中打开您需要调试的网页,按下F12键或右键点击页面任意位置选择“检查”(Inspect),即可打开开发者工具。选择Elements面板:在开发者工具顶部的选项卡中,选择“Elements”面板。这里显示了当前页面的HTML结构。查找目标元素:使用鼠标悬停在页面…

织梦手机网站模板修改,如何在织梦CMS中修改手机网站模板

织梦CMS(DedeCMS)支持手机网站模板的自定义,通过以下步骤可以轻松修改手机网站模板:登录后台:打开浏览器,输入织梦CMS的后台地址,使用管理员账号登录。进入模板管理:在后台左侧菜单栏中选择“模板” -> “默认模板管理”。 选择“手机模板”选项卡,查看当前使用的手…

网站开源代码修改,如何在本地开发环境中修改网站开源代码

修改网站开源代码可以定制网站的功能和设计。以下是修改网站开源代码的步骤:克隆代码仓库:使用Git或其他版本控制工具克隆网站的开源代码仓库。 例如:git clone https://github.com/username/repository.git cd repository安装依赖:根据项目文档安装所需的依赖库。 例如,使…

Codeforces Round 985 div2 个人题解(A~E)

Codeforces Round 985 div2 个人题解(A~E) Dashboard - Codeforces Round 987 (Div. 2) - Codeforces 火车头 #include <bits/stdc++.h>using namespace std;#define ft first #define sd second#define yes cout << "yes\n" #define no cout << &…

CTF/9/pwnerTool,一个适用于CTF中自动对Pwn题目文件进行信息收集,并且生成基础做题py文件的Pwn工具

CTF中自动对Pwn题目文件进行信息收集,并且生成基础做题py文件的Pwn工具,适用于Ubuntu 随手写的,写的不好请轻喷. 一个用于ctf对Pwn题目文件进行信息收集,打包了检查文件类型、检查类型保护、新建py文件、寻找传参工具的过程。 同时可以修补题目给出的动态库和libc文件保证本…

Spacedrive :一款开源超高颜值功能强大的跨平台文件管理器

我们的文件越来越来越多,大量的文件分布在网盘,硬盘里面。即使电脑硬盘里面,也是分布在不同的地方,管理起来越来非常麻烦。 要是能够有一个软件,可以将网盘,硬盘和网络驱动器统一起来管理,将会是多么的方便。 今天就给大家推荐一个高颜值的文件管理软件——spacedrive,…

【shell脚本】监控IP频繁登录服务器脚本

该脚本的作用是监控IP登录失败次数,如果某个IP的登录失败次数超过设定的最大次数,则阻止该IP的进一步登录尝试。通过iptables防火墙阻止连接,当一个IP尝试登录次数超过5次时,iptables会阻止来自该IP的所有连接。 #!/bin/bashfunction secrity(){ # 设置要监控的登录失败次数…