留学资讯 一手掌握

洋蜜蜂:数据处理的相关知识

时间: 2020-09-29 文章来源: 洋蜜蜂Online Tutor

数据处理作为一门基础课程,发挥着起不可替代的作用,下面洋蜜蜂就来聊聊数据分析的一些相关知识。

 

在过去的20多年中,令人惊讶的是,IT如何通过包括关系OLTP(在线事务处理)在内的技术发展为处理不断增长的数据量。处理)数据库, 数据仓库 , ETL (提取,转换和加载)和OLAP(在线分析处理)报告, 大数据 以及现在的AI,云和物联网。所有这些技术都是通过计算能力的快速增长而实现的,特别是在处理器,内存,存储和网络速度方面。本文的目的是首先概述有关如何处理大量数据的基本原理,其次,

 

在数据管道中,数据通常经历两个阶段: 数据处理 和数据访问。对于任何类型的数据,当它进入组织时(在大多数情况下有多个数据源),很可能是不干净的,或者是格式不正确的,或者最终内部或外部的业务用户可以直接报告或分析的格式组织。因此,首先需要进行 数据处理 ,通常包括数据清理,标准化,转换和聚合。然后,最终数据将显示在数据访问层中-准备好进行报告并用于所有方面的分析。 数据处理 有时也称为数据准备,数据集成或 ETL 。其中, ETL 可能是最受欢迎的名称。

 

数据处理 和数据访问具有不同的目标,因此已通过不同的技术实现。 大数据 的 数据处理 从一开始就强调“扩展”,这意味着每当数据量增加时,在可用硬件的情况下,处理时间仍应在预期范围之内,整个 数据处理 时间可能从数分钟到数小时到数天不等,具体取决于数据量和处理逻辑的复杂性;另一方面,数据访问则强调了“快速”的响应时间,即几秒钟的数量级;从较高的角度看, 数据处理 的可扩展性主要是通过并行处理实现的,同时通过基于访问模式优化数据结构以及增加服务器上可用的内存量来实现快速数据访问。  

 

数据处理

 

为了清理,标准化和转换来自不同来源的数据, 数据处理 需要触摸即将到来的数据中的每条记录。清除记录并最终确定记录后,即可完成工作。这从根本上不同于数据访问-数据访问导致不同用户和/或应用重复检索和访问相同信息。当数据量较小时,与数据访问相比, 数据处理 的速度面临的挑战较小,因此通常发生在最终数据所在的同一数据库内。随着数据量的增长,人们发现必须在数据库之外处理 数据处理 ,以绕开数据库系统造成的所有开销和限制,而数据库系统显然不是最初设计用于 大数据 处理的。  

 

大数据 处理的挑战在于,要处理的数据量始终处于硬盘可以容纳的水平,但远远超过给定时间可用的计算内存量。高效 数据处理 的基本方法是将数据分解成较小的部分并并行处理。换句话说,可伸缩性是通过首先在编程中启用并行处理来实现的,这样,当数据量增加时,并行处理的数量将增加,而每个进程继续处理与以前相似的数据量;第二,随着并行进程数量的增加,添加更多具有更多处理器,内存和磁盘的服务器。

 

大数据的并行处理首先是通过数据库系统和 ETL 工具中的数据分区技术实现的。

 

将数据集进行逻辑分区后,可以并行处理每个分区。 hadoop   HDFS (高度分布式文件系统)以最可扩展的方式适应了相同的原理。 HDFS 的作用是将数据划分为具有恒定大小的每个数据块的数据块。然后将这些块分发到不同的服务器节点,并由元数据存储将其记录在所谓的“名称”节点中。当数据进程开始时,进程数由每个服务器节点上的数据块数和可用资源(例如,处理器和内存)确定。这意味着只要您有来自多个服务器的足够的处理器和内存, HDFS 即可进行大规模并行处理。  

 

目前,spark 已成为内存中进行大规模 数据处理 的最受欢迎的快速引擎之一。是否有意义?尽管内存确实变得便宜了,但它仍然比硬盘驱动器贵。在 大数据 空间中,要处理的 大数据 量始终远远大于可用的内存量。那么 spark 如何解决呢?首先, spark 利用了具有多个数据节点的分布式环境中的内存总量。但是,如果有任何组织尝试将 大数据 放入 spark 群集中,则内存量仍然不够,而且可能会非常昂贵。让我们考虑一下 spark 适用于哪种类型的处理。 数据处理 总是从将数据从磁盘读取到内存开始,最后将结果写入磁盘。如果每个记录在写入磁盘之前只需要处理一次,在典型的批处理情况下,与 hadoop 相比, spark 不会产生优势。另一方面, spark 可以将数据保存在内存中以进行数据转换的多个步骤,而 hadoop 无法。这意味着当多次对同一条数据进行迭代处理时, spark 提供了优势,这正是分析和 机器学习 所需要的。现在考虑以下问题:由于可能同时运行数十个或数百个此类分析流程,如何以具有成本效益的方式扩展处理规模?显然,仅依靠内存中的处理是不能完全解决的, 大数据 的 分布式存储 (例如 hadoop )仍然是补充 spark 计算的 大数据 解决方案中必不可少的部分。与 hadoop 相比, spark 不会产生优势。另一方面, spark 可以将数据保存在内存中以进行数据转换的多个步骤,而 hadoop 无法。这意味着当多次对同一条数据进行迭代处理时, spark 提供了优势,这正是分析和 机器学习 所需要的。现在考虑以下问题:由于可能同时运行数十个或数百个此类分析流程,如何以具有成本效益的方式扩展处理规模?显然,仅依靠内存中的处理是不能完全解决的, 大数据 的 分布式存储 (例如 hadoop )仍然是补充 spark 计算的 大数据 解决方案中必不可少的部分。与 hadoop 相比, spark 不会产生优势。另一方面, spark 可以将数据保存在内存中以进行数据转换的多个步骤,而 hadoop 无法。这意味着当多次对同一条数据进行迭代处理时, spark 提供了优势,这正是分析和 机器学习 所需要的。现在考虑以下问题:由于可能同时运行数十个或数百个此类分析流程,如何以具有成本效益的方式扩展处理规模?显然,仅依靠内存中的处理是不能完全解决的, 大数据 的 分布式存储 (例如 hadoop )仍然是补充 spark 计算的 大数据 解决方案中必不可少的部分。 spark 可以将数据保存在内存中以进行数据转换的多个步骤,而 hadoop 无法。这意味着当多次对同一条数据进行迭代处理时, spark 提供了优势,这正是分析和 机器学习 所需要的。现在考虑以下问题:由于可能同时运行数十个或数百个此类分析流程,如何以具有成本效益的方式扩展处理规模?显然,仅依靠内存中的处理是不能完全解决的, 大数据 的 分布式存储 (例如 hadoop )仍然是补充 spark 计算的 大数据 解决方案中必不可少的部分。 spark 可以将数据保存在内存中以进行数据转换的多个步骤,而 hadoop 无法。这意味着当多次对同一条数据进行迭代处理时, spark 提供了优势,这正是分析和 机器学习 所需要的。现在考虑以下问题:由于可能同时运行数十个或数百个此类分析流程,如何以具有成本效益的方式扩展处理规模?显然,仅依靠内存中的处理是不能完全解决的, 大数据 的 分布式存储 (例如 hadoop )仍然是补充 spark 计算的 大数据 解决方案中必不可少的部分。现在考虑以下问题:由于可能同时运行数十个或数百个此类分析流程,如何以具有成本效益的方式扩展处理规模?显然,仅依靠内存中的处理是不能完全解决的, 大数据 的 分布式存储 (例如 hadoop )仍然是补充 spark 计算的 大数据 解决方案中必不可少的部分。现在考虑以下问题:由于可能同时运行数十个或数百个此类分析流程,如何以具有成本效益的方式扩展处理规模?显然,仅依靠内存中的处理是不能完全解决的, 大数据 的 分布式存储 (例如 hadoop )仍然是补充 spark 计算的 大数据 解决方案中必不可少的部分。

 

数据处理 领域的另一个热门话题是流处理。它在降低处理速度方面具有巨大优势,因为在给定的时间点,只要数据到达,它只需要处理少量数据即可。但是,它在两个方面不像批处理那样通用:第一是输入数据需要进入“流”模式,第二是仍然需要处理需要跨时间段聚合的某些处理逻辑之后分批。

 

最后,云解决方案提供了机会,可以根据数据量,从而根据并行进程的数量,以更动态的方式扩展分布式处理系统。在企业内部很难做到这一点,因为需要计划,预算和购买新服务器。如果不能很好地规划容量,则 大数据 处理可能会受到硬件数量的限制,或者额外购买会导致资源浪费而无法使用。云上的处理获得了基础架构弹性的巨大优势,它可以提供更多保证,以更具成本效益的方式实现最佳规模。

 

资料存取与 数据处理 相比,数据访问具有非常不同的 特征 ,包括:

 

数据结构高度取决于应用程序或用户如何检索数据

 

数据检索模式需要很好地理解,因为一些数据可以被大量的用户或应用程序重复检索。

 

每次应检索的数据量应作为目标,因此应仅包含一部分可用数据。

 

根据上述原则,在过去的20年中,有几个里程碑反映了如何访问不断增长的数据量,同时仍在几秒钟内返回请求的数据:

 

数据仓库 :避免表联接,这在数据量很大时可能非常昂贵。这里出现“ 事实表 ”的概念,其中所有列都放在一起,而没有关系数据库中的数据库规范化原则。

 

列式数据库:每列都被存储和索引,因此分别访问。当一行有很多列,而查询一次只检索很少的列时,这比常规关系数据库的基于行的访问提供了更快的响应时间。

No sql数据库 :消除了联接和关系结构,并针对更快速的数据检索量身定制。

 

内存数据库:通过将整个数据库或整个表保存在内存中来提供快速的性能。

 

下表列出了每种数据库类型的一些流行示例,但并非意图给出完整列表。请注意,一个数据库可能结合了不止一种技术。例如,Redis以及内存中都是No sql数据库 。此外,从 数据仓库 和列存储的数据检索利用并行流程在适用时检索数据。由于可以根据用户和/或应用程序的数据内容,数据结构和检索模式,选择不同类型的数据库,因此数据访问是组织需要快速且不断发展的领域。同时出于不同目的同时拥有不同类型的数据库或工具也应该很常见。

 

概要

如我们所见, 数据处理 和数据访问之间的一个很大区别是,数据访问最终来自客户和业务的需求,而选择正确的技术可以驱动未来的新产品开发并增强用户体验。另一方面, 数据处理 是公司的核心资产,规模处理和产生高质量数据是公司随数据增长的基本推动力。随着数据量的增长,许多公司会经历其 数据处理 系统的跟踪问题,并且从头开始重建 数据处理 平台的成本很高。并行 数据处理 和可伸缩性的原理需要从一开始就仔细考虑和设计。 数据处理 还与数据管理和数据集成紧密结合-所有这三个要素对于任何数据密集型组织的成功都是必不可少的。此外, 每个组织的IT部门现在都面临着来自开源社区和第三方供应商的众多 大数据 解决方案选择。清楚地了解 数据处理 和数据访问之间的差异,可以使IT和业务领导者不仅可以构建可靠的数据体系结构,还可以做出正确的决定,以稳定的速度对其进行扩展和现代化。

 

海外留学学不会?洋蜜蜂在线来帮你。专业在线辅导:数学Mathematics、物理physics、化学chemistry、生物biological sciences、地球科学earth scaiences、计算机科学computer sciences、医学medicine、工程学Engineering、会计Accounting、统计学statistics、精算科学Actuarial Science等涵盖大学90%以上科目均有专业数据处理Tutor给您在线辅导。