我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何进行大数据平台架构的设计

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何进行大数据平台架构的设计

本篇文章为大家展示了如何进行大数据平台架构的设计,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

  关于大数据平台架构的设计探究。麦肯锡全球研究所给出的定义是:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。

  如果缺乏有效的数据整体架构设计或者部分能力缺失,会导致业务层难以直接利用大数据大数据,大数据和业务产生了巨大的鸿沟,这道鸿沟的出现导致企业在使用大数据的过程中出现数据不可知、需求难实现、数据难共享等一系列问题,本文介绍了一些数据平台设计思路来帮助业务减少数据开发中的痛点和难点。

  近年来,随着IT技术与大数据、机器学习、算法方向的不断发展,越来越多的企业都意识到了数据存在的价值,将数据作为自身宝贵的资产进行管理,利用大数据和机器学习能力去挖掘、识别、利用数据资产。如果缺乏有效的数据整体架构设计或者部分能力缺失,会导致业务层难以直接利用大数据大数据,大数据和业务产生了巨大的鸿沟,这道鸿沟的出现导致企业在使用大数据的过程中出现数据不可知、需求难实现、数据难共享等一系列问题,本文介绍了一些数据平台设计思路来帮助业务减少数据开发中的痛点和难点。

  通过各种数据平台和组件将这些大数据组件结合起来打造一套高效、易用的数据平台来提高业务系统效能,让业务开发不在畏惧复杂的数据开发组件,无需关注底层实现,只需要会使用SQL就可以完成一站式开发,完成数据回流,让大数据不再是数据工程师才有的技能。

  一、大数据技术栈

  大数据整体流程涉及很多模块,每一个模块都比较复杂,下图列出这些模块和组件以及他们的功能特性,后续会有专题去详细介绍相关模块领域知识,例如数据采集、数据传输、实时计算、离线计算、大数据储存等相关模块。

  大数据平台架构的设计探究_大数据视频_数据分析课程_数据结构视频_编程学习网

  二、lambda架构和kappa架构

  目前基本上所有的大数据架构都是基于lambda和kappa架构,不同公司在这两个架构模式上设计出符合该公司的数据体系架构。lambda架构使开发人员能够构建大规模分布式数据处理系统。它具有很好的灵活性和可扩展性,也对硬件故障和人为失误有很好的容错性,关于lambda架构可以在网上搜到很多相关文章。而kappa架构解决了lambda架构存在的两套数据加工体系,从而带来的各种成本问题,这也是目前流批一体化研究方向,很多企业已经开始使用这种更为先进的架构。

  Lambda架构

  Kappa架构

  三、kappa架构和lambda架构下的大数据架构

  目前各大公司基本上都是使用kappa架构或者lambda架构模式,这两种模式下大数据整体架构在早期发展阶段可能是下面这样的:

  四、数据端到端痛点

  虽然上述架构看起来将多种大数据组件串联起来实行了一体化管理,但是接触过数据开发的人会感受比较强烈,这样的裸露架构业务数据开发需要关注很多基础工具的使用,实际数据开发中存在很多痛点与难点,具体表现在下面一些方面。

  缺乏一套数据开发IDE来管理整个数据开发环节,长远的流程无法管理起来。

  没有产生标准数据建模体系,导致不同数据工程师对指标理解不同计算口径有误。

  大数据组件开发要求高,普通业务去直接使用Hbase、ES等技术组件会产生各种问题。

  基本上每个公司大数据团队都会很复杂,涉及到很多环节,遇到问题难以定位难以找到对应负责人。

  难以打破数据孤岛,跨团队跨部门数据难以共享,互相不清楚对方有什么数据。

  需要维护两套计算模型批计算和流计算,难以上手开发,需要提供一套流批统一的SQL。

  缺乏公司层面的元数据体系规划,同一条数据实时和离线难以复用计算,每次开发任务都要各种梳理。

  基本上大多数公司在数据平台治理上和提供开放能力上都存在上述问题和痛点。在复杂的数据架构下,对于数据适用方来说,每一个环节的不清晰或者一个功能的不友好,都会让复杂链路变更更加复杂起来。想要解决这些痛点,就需要精心打磨每一个环节,将上面技术组件无缝衔接起来,让业务从端到端使用数据就像写SQL查询数据库一样简单。

  五、优秀的大数据整体架构设计

  提供多种平台以及工具来助力数据平台:多种数据源的数据采集平台、一键数据同步平台、数据质量和建模平台、元数据体系、数据统一访问平台、实时和离线计算平台、资源调度平台、一站式开发IDE。

  六、元数据-大数据体系基石

  元数据是打通数据源、数据仓库、数据应用,记录了数据从产生到消费的完整链路。元数据包含静态的表、列、分区信息(也就是metaStore)。动态的任务、表依赖映射关系;数据仓库的模型定义、数据生命周期;以及ETL任务调度信息、输入输出等元数据是数据管理、数据内容、数据应用的基础。例如可以利用元数据构建任务、表、列、用户之间的数据图谱;构建任务DAG依赖关系,编排任务执行序列;构建任务画像,进行任务质量治理;提供个人或BU的资产管理、计算资源消耗概览等。

  可以认为整个大数据数据流动都是依靠元数据来管理的,没有一套完整的元数据设计,就会出现上面的数据难以追踪、权限难以把控、资源难以管理、数据难以共享等等问题。

  很多公司都是依靠hive来管理元数据,但是个人认为在发展一定阶段还是需要自己去建设元数据平台来匹配相关的架构。

  七、流批一体化计算

  如果维护两套计算引擎例如离线计算Spark和实时计算Flink,那么会对使用者造成极大困扰,既需要学习流计算知识也需要批计算领域知识。如果实时用Flink离线用Spark或者Hadoop,可以开发一套自定义的DSL描述语言去匹配不同计算引擎语法,上层使用者无需关注底层具体的执行细节,只需要掌握一门DSL语言,就可以完成Spark和Hadoop以及Flink等等计算引擎的接入。

  八、实时与离线ETL平台

  ETL即Extract-Transform-Load,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。一般而言ETL平台在数据清洗、数据格式转换、数据补全、数据质量管理等方面有很重要作用。作为重要的数据清洗中间层,一般而言ETL最起码要具备下面几个功能:

  支持多种数据源,例如消息系统、文件系统等

  支持多种算子,过滤、分割、转换、输出、查询数据源补全等算子能力

  支持动态变更逻辑,例如上述算子通过动态jar方式提交可以做到不停服发布变更。

  九、智能统一查询平台

  大多数数据查询都是由需求驱动,一个需求开发一个或者几个接口,编写接口文档,开放给业务方调用,这种模式在大数据体系下存在很多问题:

  这种架构简单,但接口粒度很粗,灵活性不高,扩展性差,复用率低.随着业务需求的增加,接口的数量大幅增加,维护成本高企。

  同时,开发效率不高,这对于海量的数据体系显然会造成大量重复开发,难以做到数据和逻辑复用,严重降低业务适用方体验。

  如果没有统一的查询平台直接将Hbase等库暴露给业务,后续的数据权限运维管理也会比较难,接入大数据组件对于业务适用方同样很痛苦,稍有不慎就会出现各种问题。

  通过一套智能查询解决上述大数据查询痛点问题

  十、数仓建模规范体系

  随着业务复杂度和数据规模上升,混乱的数据调用和拷贝,重复建设带来的资源浪费,数据指标定义不同而带来的歧义、数据使用门槛越来越高。以笔者见证实际业务埋点和数仓使用为例,同一个商品名称有些表字段是good_id,有些叫spu_id,还有很多其他命名,对于想利用这些数据人会造成极大困扰。因此没有一套完整的大数据建模体系,会给数据治理带来极大困难,具体表现在下面几个方面:

  数据标准不一致,即使是同样的命名,但定义口径却不一致。例如,仅uv这样一个指标,就有十几种定义。带来的问题是:都是uv,我要用哪个?都是uv,为什么数据却不一样?

  造成巨大研发成本,每个工程师都需要从头到尾了解研发流程的每个细节,对同样的“坑”每个人都会重新踩一遍,对研发人员的时间和精力成本造成浪费。这也是目标笔者遇到的困扰,想去实际开发提取数据太难。

  没有统一的规范标准管理,造成了重复计算等资源浪费。而数据表的层次、粒度不清晰,也使得重复存储严重。

  因此大数据开发和数仓表设计必须要坚持设计原则,数据平台可以开发平台来约束不合理的设计,例如阿里巴巴的OneData体。一般而言,数据开发要经过按照下面的指导方针进行:

  十一、一键集成平台

  很简单的就能将各种各式数据一键采集到数据平台,通过数据传输平台将数据无缝衔接到ETL平台。ETL通过和元数据平台打通,规范Schema定义,然后将数据转换、分流流入到实时与离线计算平台,后续任何针对该数据离线和实时处理,只需要申请元数据表权限就可以开发任务完成计算。数据采集支持多种各式数据来源,例如binlog、日志采集、前端埋点、kafka消息队列等

  十二、数据开发IDE-高效的端到端工具

  高效的数据开发一站式解决工具,通过IDE可以完成实时计算与离线计算任务开发,将上述平台全部打通提供一站式解决方案。数据开发IDE提供数据集成、数据开发、数据管理、数据质量和数据服务等全方位的产品服务,一站式开发管理的界面,通过数据IDE完成对数据进行传输、转换和集成等操作。从不同的数据存储引入数据,并进行转化和开发,最后将处理好的数据同步至其他数据系统。通过高效率的大数据开发IDE,基本上让大数据工程师可以屏蔽掉各种痛点,将上述多种平台能力结合起来,让大数据开发可以向写SQL一样简单。

上述内容就是如何进行大数据平台架构的设计,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何进行大数据平台架构的设计

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何进行大数据平台架构的设计

本篇文章为大家展示了如何进行大数据平台架构的设计,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  关于大数据平台架构的设计探究。麦肯锡全球研究所给出的定义是:一种规模大到在获取、存储、管理、分析方面
2023-06-02

如何进行大数据平台的搭建和数据分析

如何进行大数据平台的搭建和数据分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  行内人士皆知,大数据分析平台的搭建有利于帮助企业构建统一的数据存储和数据处理
2023-06-02

hadoop大数据平台架构之DKhadoop的示例分析

这篇文章给大家分享的是有关hadoop大数据平台架构之DKhadoop的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。目前国内的商业发行版hadoop除了大快DKhadoop以外还有像华为云等。虽然发行方
2023-06-02

大数据环境下互联网行业数据仓库/数据平台的架构之漫谈

导读:整体架构数据采集数据存储与分析数据共享数据应用实时计算任务调度与监控元数据管理总结一直想整理一下这块内容,既然是漫谈,就想起什么说什么吧。我一直是在互联网行业,就以互联网行业来说。先大概列一下互联网行业数据仓库、数据平台的用途:整合公
2023-06-05

大数据的数仓平台设计思路是什么

这篇文章主要讲解了“大数据的数仓平台设计思路是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“大数据的数仓平台设计思路是什么”吧!下图为数仓整体的技术架构:一个优秀可靠的数仓,一定要结构、
2023-06-05

[平台建设] 大数据平台如何实现任务日志采集

本文主要介绍如何基于log4j appender自定义扩展实现大数据平台任务日志采集. 背景平台任务主要分3种: flink实时任务, spark任务,还有java任务,spark、flink 我们是运行在yarn 上, 日常排错我们通过查看yarn l
[平台建设] 大数据平台如何实现任务日志采集
2018-05-22

C++开发建议:如何进行C++代码的跨平台设计

C++开发建议:如何进行C++代码的跨平台设计随着移动设备和操作系统的不断涌现,跨平台开发已经成为当今软件开发领域的一个重要话题。特别是在C++开发领域,跨平台设计更是一个挑战和机遇并存的问题。本文旨在探讨C++开发中的跨平台设计,分析其重
C++开发建议:如何进行C++代码的跨平台设计
2023-11-22

HBase的架构设计如何支持水平扩展

HBase的架构设计通过多种方式支持水平扩展,以处理大规模数据。以下是HBase架构设计中支持水平扩展的关键点:数据分割:HBase表中的数据根据Row Key分割成多个Region,每个Region由一个Region Server管理。随
HBase的架构设计如何支持水平扩展
2024-10-19

国企如何进行数据中台建设?

国企如何进行数据中台建设?最近一位国企的技术线领导问我:”茂森,像我们这样的国企应该怎样做中台建设呢?”说实话,以前还从来没有想过这个问题,当时只能从一些比较泛的角度做了一些回答。回家后对党的理论、政策做了一些学习,结合起在阿里、滴滴做数据
2023-06-05

如何进行SAP云平台上的SSO Principal Propagation设置

这篇文章将为大家详细讲解有关如何进行SAP云平台上的SSO Principal Propagation设置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。我今天试图使用SAP云平台的SAP W
2023-06-03

Wormhole大数据流式处理平台的设计思想是怎样的

本篇文章为大家展示了Wormhole大数据流式处理平台的设计思想是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。导读:互联网的迅猛发展使得数据不再昂贵,而如何从数据中更快速获取价值变得日益重要
2023-06-19

大型网站的可伸缩性架构如何设计?

1. 网站架构的伸缩性设计1.1. 不同功能进行物理分离实现伸缩纵向分离(分层后分离):将业务处理流程上的不同部分分离部署,实现系统伸缩性。横向分离(业务分割后分离):将不同的业务模块分离部署,实现系统伸缩性。1.2. 单一功能通过集群规模
2023-06-02

如何使用PL/SQL进行数据库设计

数据库设计是一个重要的过程,它涉及到数据库结构和数据的组织。PL/SQL是一种用于Oracle数据库管理系统的编程语言,它可以用于创建存储过程、触发器和函数等数据库对象,以及执行数据操作语句。以下是使用PL/SQL进行数据库设计的一般步骤:
如何使用PL/SQL进行数据库设计
2024-05-07

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录