0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机器学习中流式数据处理的使用场景及相关技术介绍

数据分析与开发 来源:数据分析与开发 作者:数据分析与开发 2021-02-08 11:56 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在工业界,当我们提到实时数据机器学习时,常常可以听到如下讨论:

他们希望有一个模型,这个模型利用最近历史信息来进行预测分析。举一个天气的例子,如果最近几天都是晴天,那么未来几天极小概率会出现雨雪和低温天气

这个模型还需要是可更新的。当数据流经系统时,模型是可以随之进化升级。举个例子,随着业务规模的扩大,我们希望零售销售模型仍然保持准确。

实时机器学习应用是人工智能真正落地服务化的关键一步,因为工业界大部分场景下数据都是实时产生的。因此作为一名合格的人工智能领域专家,掌握流式场景下的算法设计必不可少。 本文主要介绍流式数据处理的使用场景、相关技术,并从服务管理的角度,介绍了针对流式计算服务的设计及关键指标。主要面向希望了解流式计算、服务管理的朋友们。

流式计算的使用场景

01

首先,当前业界已经有非常多数据处理的方式了,为什么还需要流式数据处理?要回答这个问题,我们先回顾一下传统的的数据处理架构。 传统的数据处理架构是一种典型的以数据库为中心,适应存储事务性数据处理的场景。由于数据处理能力优先,在该架构下,往往数据都是以批量的方式进行处理,例如:批量写入数据库、批量读取数据库进行数据处理。这种架构在面对实时性较低的场景中较为有效,但是在对实时性较高的场景则不太有效,例如:自动驾驶场景、工业机器人场景、基于会话的用户统计等。

因此,流式计算或流式数据处理被提出。其实流处理它最接近数据产生的自然规律,只不过过去我们没有流处理能力,只能做一些特殊的处理才能真正地使用流数据,比如将流数据攒成批量数据再处理,不然无法进行大规模的计算。使用流数据并不新鲜,新鲜的是我们有了新技术,从而可以大规模、灵活、自然和低成本地使用它们。 流式处理的核心目标有以下三点:

低延迟:近实时的数据处理能力

高吞吐:能处理大批量的数据

可以容错:在数据计算有误的情况下,可容忍错误,且可更正错误

流式处理框架

02

典型的流处理框架结合了消息传输层技术以及流处理层技术。具体如图所示:

a4808860-5fd2-11eb-8b86-12bb97331649.jpg

消息传输层的引入流处理层提供了以下支持:

消息传输层的一个作用是作为流处理层上游的安全队列,它相当于缓冲区,可以将事件数据作为短期数据保留起来,以防数据处理过程发生中断

具有持久性的好处之一是消息可以重播。实现时间穿梭

在当前典型的流处理技术中,有这么几类:

Lambda架构

基于Lambda架构,实现了离线计算的精确性的同时,且获得了流式数据处理的实时性。但是,由于要开发同样逻辑的代码,开发、维护成本高

a81f2850-5fd2-11eb-8b86-12bb97331649.jpg

Kappa架构为了解决lambda架构中维护两套同样逻辑的代码,kappa架构提出使用流式处理解决上述问题。当需要重新处理、计算数据时,使用另一个流程处理的作业(可以是相同的、优化的版本)进行数据处理。

a8b7e4d2-5fd2-11eb-8b86-12bb97331649.jpg

spark streaming

基于小批量进行数据处理

Flink

以上几种技术中,flink既可以实现低延迟、高吞吐,还可以实现容错。

Flink概况

03

Flink技术除支持流处理外,还支持批处理,其架构如下图所示:

a9d244e8-5fd2-11eb-8b86-12bb97331649.jpg

另外,Flink具有分布式的特点,具体体现在它能够在成百上千台机器上运行,它将大型的计算任务分成许多小的部分,每个机器执行一个部分。 Flink能够自动地确保在发生机器故障或者其他错误时计算能持续进行,或者在修复bug或进行版本升级后有计划地再执行一次。这种能力使得开发人员不需要担心失败。 Flink本质上使用容错性数据流,这使得开发人员可以分析持续生成且永远不结束的数据(即流处理)。因为不用再在编写应用程序代码时考虑如何解决问题,所以工程师的时间得以充分利用,整个团队也因此受益。好处并不局限于缩短开发时间,随着灵活性的增加,团队整体的开发质量得到了提高,运维工作也变得更容易、更高效。Flink让应用程序在生产环境中获得良好的性能。

总体来说,Flink的主要特性:

符合产生数据的自然规律:支持流式数据处理

发生故障后仍保持准确:具体容错机制(exactly once)

及时给出所需结果:低延迟、实时性强

时间概念

在流数据处理的体系中,时间是一个重要的概念。总体来说,可分为以下三种时间:

事件时间:即事件实际发生的时间。更准确地说,每一个事件都有一个与它相关的时间戳,并且时间戳是数据记录的一部分(比如手机或者服务器的记录)。事件时间其实就是时间戳。处理时间,即事件被处理的时间。

处理时间:其实就是处理事件的机器所测量的时间

摄取时间:也叫作进入时间。它指的是事件进入流处理框架的时间

Flink允许用户根据所需的语义和对准确性的要求选择采用事件时间、处理时间或摄取时间定义窗口

窗口

窗口是一种机制,它用于将许多事件按照时间或者其他特征分组,从而将每一组作为整体进行分析(比如求和)

ab2e3fae-5fd2-11eb-8b86-12bb97331649.jpg

时间穿梭

处理器支持事件时间,这意味着将数据流“倒带”,用同一组数据重新运行同样的程序,会得到相同的结果

水印

假设第一个窗口从1000开始(即从10时0分0秒开始),需要计算从1000到1000的数值总和。当时间就是记录的一部分时,我们怎么知道1000已到呢?换句话说,我们怎么知道盖有时间戳1059的元素还没到呢?Flink通过水印来推进事件时间。水印是嵌在流中的常规记录,计算程序通过水印获知某个时间点已到。

有状态的计算

流式计算分为无状态和有状态两种情况:

无状态的计算观察每个独立事件,并根据最后一个事件输出结果。例如,流处理应用程序从传感器接收温度读数,并在温度超过90度时发出警告。

有状态的计算则会基于多个事件输出结果。

数据处理容错及一致性保障

在有状态的数据处理中,如何保障数据的一致性是一个关键点。保障一致性的方式有以下三种:

at most once:这其实是没有正确性保障的委婉说法——故障发生之后,计数结果可能丢失

at least once:这表示计数结果可能大于正确值,但绝不会小于正确值。也就是说,计数程序在发生故障后可能多算,但是绝不会少算

exactly once:这指的是系统保证在发生故障后得到的计数结果与正确值一致

Flink如何保证exactlyonce呢?它使用一种被称为“检查点”的特性,在出现故障时将系统重置回正确状态。

有限流处理是无限流处理的一种特殊情况,它只不过在某个时间点停止而已。此外,如果计算结果不在执行过程中连续生成,而仅在末尾处生成一次,那就是批处理(分批处理数据)

原文标题:流式计算、数据处理及相关技术

文章出处:【微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1813

    文章

    49774

    浏览量

    261793
  • 机器学习
    +关注

    关注

    66

    文章

    8541

    浏览量

    136261

原文标题:流式计算、数据处理及相关技术

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    蓝牙网关是什么?都有哪些功能?应用场景有哪些?

    点,更构建起“设备互联-数据流转-智能管控”的完整链路,成为物联网生态中不可或缺的核心组件。本文将系统解析蓝牙网关的核心价值、技术架构、应用场景、现存挑战及未来趋势,为读者呈现这一关键技术
    发表于 12-11 15:21

    如何深度学习机器视觉的应用场景

    深度学习视觉应用场景大全 工业制造领域 复杂缺陷检测:处理传统算法难以描述的非标准化缺陷模式 非标产品分类:对形状、颜色、纹理多变的产品进行智能分类 外观质量评估:基于学习的外观质量标
    的头像 发表于 11-27 10:19 65次阅读

    京东API接口的应用场景介绍

    )。这些接口基于RESTful架构,使用HTTP协议进行通信,数据格式通常为JSON,支持OAuth 2.0认证以确保安全性。下面从技术角度,详细介绍几个关键应用场景,包括其实现机制和
    的头像 发表于 11-03 14:13 187次阅读
    京东API接口的应<b class='flag-5'>用场景</b><b class='flag-5'>介绍</b>

    淘宝API接口的技术用场景介绍

    JSON或XML,支持OAuth 2.0认证机制以确保安全性。开发者通过这些接口可以编程式地访问淘宝的商品、订单、用户等核心数据和服务。以下从技术角度,分场景介绍其典型应用,每个
    的头像 发表于 11-03 13:49 174次阅读
    淘宝API接口的<b class='flag-5'>技术</b>应<b class='flag-5'>用场景</b><b class='flag-5'>介绍</b>

    milvus向量数据库的主要特性和应用场景

    Milvus 是一个开源的向量数据库,专门为处理和分析大规模向量数据而设计。它适用于需要高效存储、检索和管理向量数据的应用场景,如
    的头像 发表于 07-04 11:36 758次阅读
    milvus向量<b class='flag-5'>数据</b>库的主要特性和应<b class='flag-5'>用场景</b>

    **【技术干货】Nordic nRF54系列芯片:传感器数据采集与AI机器学习的完美结合**

    技术干货】nRF54系列芯片:传感器数据采集与AI机器学习的完美结合 近期收到不少伙伴咨询nRF54系列芯片的应用与技术细节,今天我们整理
    发表于 04-01 00:00

    取样示波器的技术原理和应用场景

    取样示波器,也称为采样示波器,是一种重要的电子测量仪器,其技术原理和应用场景可以归纳如下:技术原理取样示波器的根本原理是利用等效取样技术,将周期性高频(或高速)信号变换为与原来信号波形
    发表于 03-12 14:34

    频域示波器的技术原理和应用场景

    频域示波器,其主要技术原理基于信号的傅里叶变换理论,通过快速傅里叶变换(FFT)算法将时域信号转换为频域信号,从而进行频谱分析。以下是对频域示波器的技术原理和应用场景的详细分析:一、技术
    发表于 03-11 14:37

    信号源分析仪的技术原理和应用场景

    信号源分析仪是一种综合性的测量仪器,常用于测量晶振、PLL(锁相环)、时钟电路、相位噪声等参数。以下是关于信号源分析仪的技术原理和应用场景的详细介绍:一、技术原理 相参接收机
    发表于 02-26 15:25

    数据记录仪的计数原理和应用场景

    数据记录仪是一种用于测量、记录和分析各种数据的设备,其计数原理和应用场景可以归纳如下: 一、计数原理数据记录仪的计数原理主要基于传感器技术
    发表于 02-24 14:28

    meshtastic的应用场景介绍

    meshtastic的应用场景介绍
    的头像 发表于 02-21 12:02 1268次阅读
    meshtastic的应<b class='flag-5'>用场景</b><b class='flag-5'>介绍</b>

    敏捷合成器的技术原理和应用场景

    敏捷合成器,作为一种高性能的信号发生器,其技术原理和应用场景值得深入探讨。技术原理敏捷合成器的技术原理主要基于先进的频率合成技术和数字信号
    发表于 02-20 15:25

    时域反射计的技术原理和应用场景

    时域反射计(TDR,Time Domain Reflectometer)的技术原理和应用场景可以归纳如下:技术原理时域反射计的基本原理是利用反射波来测量电路或传输线中的阻抗变化。其核心思想是在一个
    发表于 02-11 14:39

    脉冲信号分析仪‌的原理和应用场景

    脉冲信号分析仪是一种用于测量和分析脉冲信号的精密仪器。以下是对其原理和应用场景的详细介绍:一、原理脉冲信号分析仪的工作原理主要基于电子测量技术和信号处理
    发表于 01-23 14:00

    数据网络分析仪的原理和应用场景

    数据网络分析仪的原理和应用场景可以分别阐述如下:一、数据网络分析仪的原理数据网络分析仪的原理主要涉及以下几个方面: 数据捕获:网络分析仪通过
    发表于 01-16 14:57