阅读更多

2顶
0踩

行业应用
引用
导读:本文将大数据的工作角色分为三种类型,包括业务相关、数据科学相关和数据工程。大数据平台偏向于工程方面,大数据平台一般包括数据源、数据采集、数据存储、数据分析等方面。

讲师从数据来源、数据源结构、数据变化程度和数据规模等4个维度对数据源进行分类,数据源分类维度的不同决定最后的技术选型。讲师还对数据源分类的定义及选型方式进行详细讲解,最终联系到大数据的应用场景,让数据应用方式更加直观。

一、大数据平台

大数据在工作中的应用有三种:
与业务相关,比如用户画像、风险控制等;
  • 与决策相关,数据科学的领域,了解统计学、算法,这是数据科学家的范畴;
  • 与工程相关,如何实施、如何实现、解决什么业务问题,这是数据工程师的工作。
数据工程师在业务和数据科学家之间搭建起实践的桥梁。本文要分享的大数据平台架构技术选型及场景运用偏向于工程方面。

如图所示,大数据平台第一个要素就是数据源,我们要处理的数据源往往是在业务系统上,数据分析的时候可能不会直接对业务的数据源进行处理,而是先经过数据采集、数据存储,之后才是数据分析和数据处理。

从整个大的生态圈可以看出,要完成数据工程需要大量的资源;数据量很大需要集群;要控制和协调这些资源需要监控和协调分派;面对大规模的数据怎样部署更方便更容易;还牵扯到日志、安全、还可能要和云端结合起来,这些都是大数据圈的边缘,同样都很重要。

二、数据源的特点

数据源的特点决定数据采集与数据存储的技术选型,我根据数据源的特点将其分为四大类:
  • 第一类:从来源来看分为内部数据和外部数据;
  • 第二类:从结构来看分为非结构化数据和结构化数据;
  • 第三类:从可变性来看分为不可变可添加数据和可修改删除数据;
  • 第四类,从规模来看分为大量数据和小量数据。
内部数据

来自企业内部系统,可以采用主动写入技术(push),从而保证变更数据及时被采集。

外部数据

企业要做大数据的话肯定不会只局限于企业内部的数据,比如银行做征信,就不能只看银行系统里的交易数据和用户信息,还要到互联网上去拉取外部数据。

外部数据分为两类:
  • 一类是要获取的外部数据本身提供API,可以调用API获取,比如微信;
  • 另一类是数据本身不提供API,需要通过爬虫爬取过来。

这两类数据都不是我们可控制的,需要我们去获得,它的结构也可能跟我们企业内部数据的结构不一样,还需要进行转换,爬虫爬取的数据结构更乱,因此大数据平台里需要做ETL,由ETL进行数据提取、转换、加载,清洗、去重、去噪,这个过程比较麻烦。爬虫爬过来的数据往往是非结构性的、文档型的数据,还有视频、音频,这就更麻烦了。

结构化数据 & 非结构化数据

结构化和非结构化数据在存储时的选型完全不同,非结构化数据偏向于文件,或者选择NoSQL数据库;考虑到事务的一致性,我们也可能选择传统的数据库。

不变可添加数据

如果数据源的数据是不变的,或者只允许添加(通常,数据分析的事实表,例如银行交易记录等都不允许修改或删除),则采集会变得非常容易,同步时只需要考虑最简单的增量同步策略,维持数据的一致性也相对变得容易。

对于大数据分析来说,我们每天在处理的数据大部分是不可变更的。正如Datomic数据库的设计哲学就是数据为事实(fact),它是不可变的,即数据是曾经发生的事实,事实是不可以被篡改的,哪怕改一个地址,从设计的角度来说也不是改动一个地址,而是新增了一个地址。交易也是如此。

可修改可删除数据

银行的交易记录、保险单的交易记录,互联网的访客访问记录、下单记录等都是不可变的。但是数据源的数据有些可能会修改或删除,尤其是许多维表经常需要变动。要对这样的数据进行分析处理,最简单的办法就是采用直连形式,但直连可能会影响数据分析的效率与性能,且多数数据模型与结构可能不符合业务人员进行数据分析的业务诉求。如果采用数据采集的方式,就要考虑同步问题。

大数据量

针对大数据量,如果属于高延迟的业务,可以采用batch的处理方式,实时分析则需要使用流式处理,将两者结合就是Lambda架构,即有实时处理、又能满足一定的大数据量,这是现在比较流行的大数据处理方式。

三、数据存储的技术选型

大数据平台特征:相同的业务数据会以多种不同的表现形式,存储在不同类型的数据库中,形成一种poly-db的数据冗余生态。

先把数据源进行分类,然后根据其特点判断用什么方式采集,采集之后要进行存储。数据存储的技术选型依据有三点:
  • 第一点取决于数据源的类型和采集方式。比如非结构化的数据不可能拿一个关系数据库去存储。采集方式如果是流失处理,那么传过来放到Kafka是最好的方式。
  • 第二点取决于采集之后数据的格式和规模。比如数据格式是文档型的,能选的存储方式就是文档型数据库,例如MongoDB;采集后的数据是结构化的,则可以考虑关系型数据库;如果数据量达到很大规模,首选放到HDFS里。
  • 第三点是分析数据的应用场景。根据数据的应用场景来判定存储技术选型。
场景一:舆情分析

做舆情分析的时候客户要求所有数据存放两年,一天600多万,两年就是700多天×600多万,几十亿的数据。而且爬虫爬过来的数据是舆情,做了分词之后得到的可能是大段的网友评论,客户要求对舆情进行查询,做全文本搜索,并要求响应时间控制在10s以内。

我们后来选择用ES,在单机上做了一个简单的测试,大概三亿多条数据,用最坏的查询条件进行搜索,保证这个搜索是全表搜索(基于Lucence创建了索引,使得这种搜索更高效),整个查询时间能控制在几秒以内。

如图所示,爬虫将数据爬到Kafka里,在里面做流处理,去重去噪做语音分析,写到ElasticSearch里。我们做大数据的一个特点是多数据库,会根据不同的场景选择不同的数据库,所以会产生大量的冗余。

场景二:商业智能产品

BI产品主要针对数据集进行的数据分析以聚合运算为主,比如求合、求平均数、求同比、求环比、求其他的平方差或之类的标准方差。我们既要满足大数据量的水平可伸缩,又要满足高性能的聚合运算。选择Parquet列式存储,可以同时满足这两个需求。

场景三:Airbnb的大数据平台

Airbnb的大数据来自两块:一是本身的业务数据,二是大量的事件。数据源不同,采集方式也不一样。日志数据通过发送Kafka事件,而线上数据则通过Sqoop同步。数据存储选择HDFS集群,然后通过Presto对Hive表执行即席查询。S3是一个独立的存储系统。

四、数据处理

数据处理分为三大类:
  • 第一类是从业务的角度,细分为查询检索、数据挖掘、统计分析、深度分析,其中深度分析分为机器学习和神经网络。
  • 第二类是从技术的角度,细分为Batch、SQL、流式处理、machine learning、Deep learning。
  • 第三类是编程模型,细分为离线编程模型、内存编程模型、实时编程模型。
结合前文讲述的数据源特点、分类、采集方式、存储选型、数据分析、数据处理,我在这里给出一个总体的大数据平台的架构。值得注意的是,架构图中去掉了监控、资源协调、安全日志等。

左侧是数据源,有实时流的数据(可能是结构化、非结构化,但其特点是实时的),有离线数据,离线数据一般采用的多为ETL的工具,常见的做法是在大数据平台里使用Sqoop或Flume去同步数据,或调一些NIO的框架去读取加载,然后写到HDFS里面,当然也有一些特别的技术存储的类型,比如HAWQ就是一个支持分布式、支持事务一致性的开源数据库。

从业务场景来看,如果我们做统计分析,就可以使用SQL或MapReduce或streaming或Spark。如果做查询检索,同步写到HDFS的同时还要考虑写到ES里。如果做数据分析,可以建一个Cube,然后再进入OLAP的场景。

这个图基本上把所有的内容都涵盖了,从场景的角度来分析倒推,用什么样的数据源、采用什么样的采集方式、存储成什么样子,能满足离线、内存、实时、流的各种模型,都能从图中得到解答。

以上为本次分享的全部内容。

引用
作者:张逸,大眼科技CTO,先后就职于中兴通讯、惠普GDCC、中软国际、ThoughtWorks等中外企业,任职角色为高级软件工程师,架构师,技术总监,首席咨询师。目前致力于商业智能产品与大数据分析平台的开发与架构设计。
声明:本篇文章内容来自第八期魅族开放日大眼科技CTO张逸的现场分享,由IT大咖说提供现场速录,由msup整理编辑。
  • 大小: 125.5 KB
  • 大小: 40.6 KB
  • 大小: 33.1 KB
  • 大小: 73.3 KB
  • 大小: 163.7 KB
  • 大小: 173.4 KB
  • 大小: 160.7 KB
  • 大小: 119.5 KB
  • 大小: 31.8 KB
  • 大小: 44.7 KB
  • 大小: 193.3 KB
2
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 大数据平台架构技术选型与应用场景

    Hadoop生态系统中的MapReduce和Spark是常用的批处理框架,Kafka和Flink是常用的流处理...根据具体的需求和场景,选择适合的技术组合,能技术组合,能够构建出高效可靠的大数据平台,为各行业提供数据驱动的决策支持。

  • 大数据平台架构技术选型与场景运用(转)

    大数据平台偏向于工程方面,大数据平台一般包括数据源、数据采集、数据存储、数据分析等方面。 讲师从数据来源、数据源结构、数据变化程度和数据规模等4个维度对数据源进行分类,数据源分类维度的不同决定最后的技术...

  • 【转载】大数据平台架构技术选型与场景运用

    https://blog.csdn.net/qiansg123/article/details/80130106 

  • 大数据技术架构如何选型

    最后是运维成本,这个其实涉及到产品的应用形态,如果只是SaaS公有云,则是可控的,如果私有化部署的场景非常多,则运维成本会非常大,也可能在选型时起到决定性的作用。即做大数据是满足业务诉求的,业务诉求会有很...

  • 大数据平台架构及主流技术栈

    互联网和移动互联网技术开启了大规模生产、分享和应用数据的大数据时代。面对如此庞大规模的数据,如何存储?...经过十几年的发展,如今的大数据技术生态已相对成熟,围绕大数据应用搭建的平台架构和技术选型也逐

  • 大华无插件播放项目111

    大华无插件播放项目111

  • Oracle 19c 数据库备份恢复与导入导出实战指南

    内容概要:本文详细介绍了Oracle 19c数据库的备份恢复和导入导出操作。首先概述了基本命令,然后分别讲述了三种工作方式(交互式、命令行、参数文件)和三种模式(表、用户、全库)。接着介绍了高级选项,如分割成多个文件、增量导出/导入、以SYSDBA进行导出/导入、表空间传输等。最后讨论了优化技巧,包括加快导出和导入速度的方法。还解决了一些常见问题,如字符集问题和版本问题。 适用人群:Oracle数据库管理员和相关技术人员。 使用场景及目标:适合在日常数据库管理和维护中进行数据备份、恢复、导入和导出操作,提高数据安全性和管理效率。 其他说明:文章内容丰富,涉及多种实用技巧,适用于不同场景下的具体操作,有助于提升工作效率。

  • 大数据旅游酒店大数据可视化项目

    基于Python Flask开发的旅游酒店大数据可视化项目,可以直接运行。 操作步骤: 1. 解压缩项目文件 2. 使用 pycharm打开项目 3. 运行项目中的app.py文件 注意:需要确保项目的Flask Python相关的环境已经搭建完成。

  • 模拟立体翻转效果,非Gallery实现.zip

    Android 毕业设计,Android 毕业设计,小Android 程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。

  • 仿360 浮动小插件效果.zip

    Android 毕业设计,Android 毕业设计,小Android 程设计,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。

  • 基于stm32和openmv的电赛校赛自动泊车题目源码+文档设计报告

    基于stm32和openmv的电赛校赛自动泊车题目源码+文档设计报告,个人高分设计项目、经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的学生和需要项目实战练习的学习者。 基于stm32和openmv的电赛校赛自动泊车题目源码+文档设计报告基于stm32和openmv的电赛校赛自动泊车题目源码+文档设计报告基于stm32和openmv的电赛校赛自动泊车题目源码+文档设计报告基于stm32和openmv的电赛校赛自动泊车题目源码+文档设计报告基于stm32和openmv的电赛校赛自动泊车题目源码+文档设计报告基于stm32和openmv的电赛校赛自动泊车题目源码+文档设计报告基于stm32和openmv的电赛校赛自动泊车题目源码+文档设计报告基于stm32和openmv的电赛校赛自动泊车题目源码+文档设计报告个人高分设计项目、经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的学生和需要项目实战练习的学习者。 个人高分设计项目、经导师指导并认可通过的高分设

  • 棉花检测20-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar

    棉花检测20-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar棉-V2释放 ============================= *与您的团队在计算机视觉项目上合作 *收集和组织图像 *了解非结构化图像数据 *注释,创建数据集 *导出,训练和部署计算机视觉模型 *使用主动学习随着时间的推移改善数据集 它包括406张图像。 以可可格式注释棉花。 将以下预处理应用于每个图像: 没有应用图像增强技术。

  • javaweb社区医院挂号系统-lw.zip

    项目包含前后台完整源码。 项目都经过严格调试,确保可以运行! 具体项目介绍可查看博主文章或私聊获取 助力学习实践,提升编程技能,快来获取这份宝贵的资源吧!

  • python-3.11.11-amd64.exe

    windwos环境下python 3.11系列64位安装包,仅推荐个人学习、开发、娱乐或者测试环境下使用。

  • 基于ssm的精品酒销售管理系统+jsp源代码(完整前后端+mysql+说明文档+LW).zip

    使用精品酒销售管理系统的用户分管理员和用户两个角色的权限子模块。 管理员所能使用的功能主要有:主页、个人中心、用户管理、商品分类管理、商品信息管理、系统管理、订单管理等。 用户可以实现主页、个人中心、我的收藏管理、订单管理等。 前台首页可以实现商品信息、新闻资讯、我的、跳转到后台、购物车等。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 服务器:tomcat7

  • Video_2024-12-18_000023.wmv

    Video_2024-12-18_000023.wmv

  • ppt最終版asasaadd

    ppt最終版asasaadd

  • 计算机图形学试卷第一套

    计算机图形学期末考试

Global site tag (gtag.js) - Google Analytics