从零开始的机器学习大数据

list4-Data Managment

2017-07-11  本文已影响5人  多了去的YangXuLei

Data Ingestion

Ingestion表示将数据 导入数据系统的过程. 你可能会想:这个问题有什么值得讨论的?

我们只要从某个地方 ---- 例如一个文件 --- 读取数据就可以了; 然后使用一些命令操作将数据直接导入数据系统. 或者,我们可以在web端, 或者其他可视化界面上输入数据 来导入系统. 这两种导入数据的方法都是有效的. 实际上,这两种方法仅仅对一部分 大数据系统有效, 比如,机票预约系统. 然而,当你想应对一些 比较大型的项目时. 你可能需要 更加智能的导入数据的方法. 所以说,数据导入是构成大数据应用基础的一部分。

当你在自动化(智能化)数据导入的时候,你可能会遇到一些问题。 我们将从两个例子中 来探索更多的细节.

image.png

第一个例子是一个医院的信息系统,这个系统有助于处方药精确量化. 这个医院从各部门 收集了数TB的医疗记录. 然后,这个医院被认为 成功建立了大数据系统.。

第二个例子与一个 基于数据仓库建立的数据云存储有关. 这个数据仓库存储了 许多人上传的短信,图片,视频,音乐等. 这个云存储也支持成员之间 的交流. 并把交流信息也进行了实时存储。

那么,现在在案例一的假设中,一个医院有一个 信息系统, 图示是 图示是对这个系统基本情况的一些回答。 在使用这个案例的时候, 不要过于 深究那些数字的准确性. 这仅仅是一些随机数字.。

image.png

这个案例演示了一些要点:

这一条规则就是所谓的“错误处理原则” 不同的应用场景中,错误处理原则会有不同的规定.。错误处理原则仅仅是 数据导入原则体系中的一部分。 其他数据导入原则包括在数据更新量出现异常时 ---- 比如数据量突然增多或莫名变少时的处理原则 。上述案例已经故意不将这种情况考虑进去.

现在,比较前一个医疗信息系统案例与 后一个云存储系统案例 再次提醒一下:这些案例都并非是真实个案, 所以不要把例子中的数字当真。

在云存储系统案例中

所以,现在我们知道为何数据导入以及导入中所使用的原则 应当是一个完整的大数据管理体系的一部分了, 特别是在数据快速更新的情况下。

Data Storage (存储)

现在,存储基础设施的目标显然是存储数据。这里有两个存储相关的问题。

现在这些问题没有一个简单的答案。如果您有兴趣,读者可以自行查找相关资料不同类别的问题涉及IU操作的速度。这个问题通常用这种称为内存层次结构,存储层次结构或有时存储层次结构的图来解决。

image.png

金字塔结构的顶部显示了称为高速缓存的一部分内存,

它居住在CPU内,速度非常快。有不同级别的缓存,称为L1,L2,L3,其中L3是最慢的,但仍然比我们所说的内存更快,这里显示为中间附近的橙色。

该图显示了他们在响应时间方面的速度。请注意,此处的内存流是每次访问65纳秒。相比之下,传统硬盘的速度大约为10毫秒。这个差距促使许多数据结构和算法的设计,使用硬盘,但是尽量减少快速内存和较慢磁盘之间的IO操作的成本。但最近,一种较新的存储。非常类似于我们经常使用的闪存驱动器或USB已经将条目作为新的存储介质。这些设备称为SSD或固态设备。它们比旋转硬盘要快得多。

一个更新的方法是NVMe,NVM代表非易失性存储器,使得SSD和内存之间的数据传输速度更快。

image.png

这在大数据系统中意味着什么?
现在我们可以选择通过选择我们需要的每种类型的存储来构建存储基础架构。在我自己研究的大量数据中,我发现使用固态硬盘,可以将数据的所有查找操作加速至少十倍以上。当然这是另一方面的成本因素。当我们从金字塔的下层到上层时,组件变得越来越贵。所以最终成为成本效益权衡的问题。

Data Quality

这是数据质量问题。任何数据应用程序,特别是较大的应用程序需要注意数据质量的原因很多。

这里有三个原因,当然还有更多的我们没有提到。

image.png image.png

这些行业的数据错误可以规范导致法律并发症的规定。

image.png image.png

在本报告中,他们确定了满足行业数据质量要求的方法。这种方法包括在适用的情况下遵守标准。它还指需要在数据系统中创建可用于检查数据是否通过一组正确的质量的规则。喜欢甚至超过18.它还包括清理数据的方法,如果发现有错误或不一致。

此外,数据质量管理应包括一个明确的工作流程,以确定如何纠正低质量的数据,使其恢复到高水平的质量。

Data Operations

数据管理的一个非常重要的方面是记录,定义,实现和测试特定应用程序所需的一组操作。正如稍后我们将在专业化中看到的那样,一些操作与数据类型无关,而另一些操作将要求我们知道数据的性质,因为操作使用特定的数据模型。那就是结构化的方式。

一般来说,有两个广泛的行动。那些工作在一个单一的对象和那些工作在数据对象的集合。

image.png

人们可以想到操作在数据集合上的第二类的许多子类。我们简要提到了三种非常常见的操作,无论数据的性质如何,都可以做到这一点。

image.png

在所示的示例中,通过将节点与公共属性融合来合并两个三个结构数据项。那是两个。

image.png

在最后一种情况下,我们计算一个集合的函数并返回函数的值。所以在这个例子中,函数是一个简单的计数。

在现实世界中,这种总体功能可能非常复杂。当我们更多地谈论Map读数时,我们将回到这个问题,但在这个过程中,我们将讨论许多不同的数据操作。

每个操作必须高效。这意味着每个操作必须尽可能快地执行其任务,尽可能少地占用内存或磁盘。显然,执行操作的时间取决于输入的大小和输出的大小。

因此,如果有机会使用并发操作可以分割数据并且同时对不同的线程进行操作,那么它肯定会这样做。

我们提供操作符的简单示例。这个叫做选择的运算符是指根据一些条件选择一个集合的子集。在这里,我们选择一个数字为偶数的圈子。

image.png

为了使其更有效率,我们可以将输入数据随机分为两组。现在,对于每个组,我们可以同时运行子集算法并获得部分结果。

image.png

对于此操作,部分结果可以直接发送到输出,无需任何其他处理步骤。

数据管理其实很在大数据中很重要的一个环节,场景多,不要管理的就要更有效。现在理解可能不够,但是有个认知还是很重要的。

上一篇 下一篇

猜你喜欢

热点阅读