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

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

    关注

    1791

    文章

    46737

    浏览量

    237302
  • 机器学习
    +关注

    关注

    66

    文章

    8367

    浏览量

    132358

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

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

收藏 人收藏

    评论

    相关推荐

    OTA测试暗箱的技术原理和应用场景

    OTA测试暗箱在无线通信设备的研发与测试中扮演着至关重要的角色。以下是对OTA测试暗箱技术原理和应用场景的详细阐述:一、OTA测试暗箱的技术原理OTA测试暗箱的技术原理主要基于电磁波在
    发表于 11-14 14:36

    移动终端测试仪的技术原理和应用场景

    不同的实际环境中进行现场测试,评估手机的性能表现。 教学和培训:在电子通信相关的教学和培训中,便携综测仪可以让学生更直观地了解手机的性能测试过程。 移动终端测试仪的技术原理和应用场景体现了其在现代
    发表于 11-04 16:01

    便携式示波器的技术原理和应用场景

    便携式示波器作为示波器的一种,具有体积小、重量轻、便于携带等特点,在多个领域有着广泛的应用。以下是对其技术原理和应用场景的详细介绍:一、技术原理便携式示波器的基本原理与传统示波器相同,
    发表于 10-24 14:31

    实时示波器的技术原理和应用场景

    波形图像。在信号处理方面,示波器首先将接收到的被测信号进行放大和滤波等处理,以确保信号的准确性和稳定性。然后,通过A/D转换技术,将模拟信号转换为数字信号,以便进行后续的数字处理和显示
    发表于 10-23 14:22

    高速数字化仪的技术原理和应用场景

    高速数字化仪是一种用于采集高速模拟信号,并将其转换为数字信号进行处理和储存的设备。以下是对其技术原理和应用场景的详细介绍:一、技术原理 采样
    发表于 10-21 14:34

    光学透过率测量仪的技术原理和应用场景

    光学透过率测量仪(也称为光透过率检测仪)是一种专门用于测量材料透光率的仪器。以下是对其技术原理和应用场景的详细解析:技术原理光学透过率测量仪的技术原理主要基于光的透射原理。当光线通过物
    发表于 10-16 14:38

    超声波测厚仪的技术原理和应用场景

    超声波测厚仪的技术原理和应用场景详细如下:技术原理超声波测厚仪利用超声波脉冲反射原理来测量材料的厚度。具体工作原理如下: 发射超声波脉冲:测厚仪的探头(也称为换能器)向被测物体发射一束高频超声波脉冲
    发表于 09-27 15:06

    智能IC卡测试设备的技术原理和应用场景

    智能IC卡测试设备的技术原理和应用场景,可以从以下几个方面进行阐述:技术原理智能IC卡测试设备的技术原理主要围绕IC卡的通信和数据处理机制展
    发表于 09-26 14:27

    NFC协议分析仪的技术原理和应用场景

    NFC协议分析仪的技术原理和应用场景可以详细阐述如下:技术原理NFC(Near Field Communication,近场通信)协议分析仪是一种用于分析NFC通信协议和性能的专业设备。其技术
    发表于 09-25 14:45

    RISC-V适合什么样的应用场景

    器设计的理想工具,有助于培养更多的计算机专业人才。 综上所述,RISC-V适合的应用场景非常广泛,包括物联网、嵌入式系统、人工智能、自动驾驶、汽车电子、数据中心和云计算以及教育和研究等多个领域。随着RISC-V生态系统的不断完善和技术
    发表于 07-29 17:16

    FPGA与MCU的应用场景

    大量计算任务,这在实时处理等应用中尤为重要。 高性能计算 FPGA在处理复杂算法和大规模数据时表现出色,特别是在人工智能(AI)和机器学习
    发表于 07-29 15:45

    AIOT是什么意思?AIOT的应用场景和作用

    AIoT(Artificial Intelligence of Things)是指人工智能(AI)与物联网(IoT)的融合,旨在通过人工智能技术提升物联网系统的智能化水平,实现更高效的数据处理、更精
    的头像 发表于 07-12 15:48 607次阅读
    AIOT是什么意思?AIOT的应<b class='flag-5'>用场景</b>和作用

    机器视觉检测系统的关键技术和应用场景

    识别与定位能力,成为当前研究的热点和应用的焦点。本文将从基本原理、关键技术、应用场景以及未来展望四个方面,深入探讨基于深度学习机器视觉检测系统。
    的头像 发表于 07-08 10:33 1064次阅读

    NanoEdge AI的技术原理、应用场景及优势

    、NanoEdge AI 具有以下优势: - 低延迟:由于数据处理任务在设备本地完成,因此 NanoEdge AI 可以实现较低的延迟,满足实时性要求较高的应用场景。 - 高安全性:将数据处理任务保留在设备本地
    发表于 03-12 08:09

    数据处理器:DPU编程入门》+初步熟悉这本书的结构和主要内容

    、 DPU的应用场景与价值? 主要有以下几个方面: 数据中心:DPU可以用于加速大规模数据中心的数据处理任务,例如机器
    发表于 12-08 18:03