当前位置: 首页 > 科技观察

AI时代,你还不懂大数据吗?

时间:2023-03-14 15:23:11 科技观察

如果要问,IT行业近几年最火的技术方向是哪个?一定属于ABC,即AI+BigData+Cloud,即人工智能、大数据、云计算。过去几年,随着互联网大潮走向谷底,传统企业纷纷进行数字化转型,基本上每家企业都在考虑如何进一步挖掘数据的价值,提高企业的运营效率。.在这种趋势下,大数据技术变得越来越重要。所以,在AI时代,不懂大数据,你就真的OUT了!与人工智能和云计算相比,大数据的技术门槛更低,与业务的关联度更高。我个人觉得再过几年,大数据技术就会像现在的分布式技术一样成为基本技能要求。前几天在团队里进行了一次大数据技术分享,重点是大数据知识素养,提供学习指导。在这篇文章中,我将根据分享的内容进行系统的梳理。希望对大数据方向感兴趣的同学有所帮助。内容分为以下五个部分:1.大数据的发展历程2.大数据的核心概念3.大数据平台的总体架构和技术体系4.大数据的一般处理流程5.数据仓库架构underbigdata01大数据发展史在讲解“大数据”的概念之前,先带大家了解一下大数据近30年的发展史,经历了五个阶段。大数据在各个阶段的历史定位是什么?你遇到过哪些痛点?1.1启蒙阶段:数据仓库的出现1990年代,商业智能(也就是我们熟悉的BI系统)诞生了。将企业现有的业务数据转化为知识,帮助老板进行业务决策。比如零售场景:需要分析商品的销售数据和库存信息,以便制定合理的采购计划。显然,商业智能离不开数据分析。它需要聚合来自多个业务系统(例如交易系统和存储系统)的数据,然后进行大规模的范围查询。而传统的数据库是面向单一业务的增删改查,不能满足这种需求,这就促使了数据仓库概念的产生。传统数据仓库首次明确了数据分析的应用场景,在不依赖业务数据库的情况下,采用单独的解决方案来实现。1.2技术变革:Hadoop诞生于2000年前后,PC互联网时代到来,带来海量信息。两个典型特征:数据规模更大:谷歌、雅虎等互联网巨头每天可以产生数亿条行为数据。数据类型多样化:除了结构化的业务数据,还有海量的用户行为数据和以图片、视频为代表的多媒体数据。显然,传统的数据仓库无法支撑互联网时代的商业智能。2003年,谷歌发表了三篇原创论文(俗称“谷歌的3辆马车”),包括:分布式处理技术MapReduce、列式存储BigTable、分布式文件系统GFS。这三篇论文奠定了现代大数据技术的理论基础。苦于谷歌并未开源这3款产品的源代码,只是发布了一份详细的设计论文。2005年雅虎资助Hadoop基于这三篇论文实现开源。这一技术变革正式拉开了大数据时代的序幕。与传统数据仓库相比,Hadoop具有以下优势:完全分布式,可以用廉价的机器搭建集群,充分满足海量数据的存储需求。弱化数据格式,分离数据模型和数据存储,满足异构数据的分析需求。随着Hadoop技术的成熟,“数据湖”的概念在2010年的Hadoop世界大会上被提出。数据湖是一种以原始格式存储数据的系统。企业可以基于Hadoop构建数据湖,将数据作为企业的核心资产。由此,数据湖拉开了Hadoop商业化的序幕。1.3数据工厂时代:大数据平台的兴起商业Hadoop包括十余项技术,整个数据研发过程非常复杂。为了完成一个数据需求的开发,涉及到数据抽取、数据存储、数据处理、数据仓库构建、多维分析、数据可视化等一整套流程。这种高技术门槛显然会制约大数据技术的普及。这时,大数据平台(平台即服务的思想,PaaS)应运而生。面向研发场景的全链路解决方案,可大幅提升数据研发效率,让数据像流水线一样快速处理。原始数据成为指标,出现在各种报告或数据产品中。1.4数据价值时代:阿里提出数据中台是在2016年前后,已经属于移动互联网时代。随着大数据平台的普及,也诞生了很多大数据应用场景。这时候,一些新的问题开始暴露出来:为了快速实现业务需求,烟囱开发模式导致数据在不同业务线完全分离,导致大量数据指标重复开发,这不仅降低了研发效率,而且浪费了存储和计算资源,使得大数据的应用成本越来越高。这时,有远见的父亲马云喊出了“数据中心”的概念,“一个数据,一个服务”的口号开始响彻大数据行业。数据中台的核心思想是避免数据重复计算,提高数据共享能力,通过数据服务赋能业务。02大数据核心概念了解大数据发展历史后,讲解大数据的几个核心概念。2.1大数据究竟是什么?大数据是一种海量的、高增长的、多样化的信息资产。它需要新的存储和计算模型具有更强的决策能力和流程优化能力。以下是大数据的四个典型特征:体量:海量数据规模,数据量达到PB甚至EB级别。Variety:异构数据类型,不仅包括结构化数据,还包括半结构化和非结构化数据,例如日志文件、图像、音频和视频等。Velocity:数据流动速度快,数据生成和处理速度非常快。价值:价值密度低,有价值的数据占比很小。需要人工智能和其他方法来挖掘新知识。2.2什么是数据仓库?数据仓库是面向主题的、集成的、随时间变化的、相对稳定的数据的集合。简单理解,数据仓库就是大数据的一种组织形式,有利于海量数据的维护和进一步分析。面向主题:表示数据按照主题或业务场景进行组织。集成:从多个异构数据源收集数据,提取、处理、集成。时变性:关键数据需要标记时间属性。比较稳定:很少删改数据,只增加数据。2.3传统数据仓库与新一代数据仓库随着大数据时代的到来,传统数据仓库与新一代数据仓库之间必然存在诸多差异。下面多维度比较下两代数据仓库的异同点。03大数据平台总体架构如前所述,与大数据相关的技术有几十种。下面我们通过大数据平台的总体架构来了解整个技术体系。3.1数据传输层Sqoop:支持RDBMS和HDFS之间的双向数据迁移,通常用于将业务数据库(如MySQL、SQLServer、Oracle)的数据提取到HDFS。Cannal:阿里巴巴开源数据同步工具,通过监控MySQLbinlog,实现增量数据订阅和近实时同步。Flume:用于海量日志的收集、聚合和传输,将产生的数据保存到HDFS或HBase中。Flume+Kafka:满足对实时流式日志的处理,再通过SparkStreaming等流式处理技术,完成对日志的实时分析和应用。3.2数据存储层HDFS:分布式文件系统,是分布式计算中数据存储管理的基础,是GoogleGFS的开源实现,可以部署在廉价商用机器上,具有高容错、高吞吐量和高可扩展性.HBase:分布式、面向列的NoSQLKV数据库,是GoogleBigTable的开源实现,使用HDFS作为其文件存储系统,适用于大数据的实时查询(如IM场景)。Kudu:折衷HDFS和HBase的分布式数据库,同时支持随机读写和OLAP分析的大数据存储引擎(解决HBase不适合批量分析的痛点)。3.3ResourceManagementYarn:Hadoop的资源管理器,负责Hadoop集群资源的统一管理和调度,为计算程序(MR任务)提供服务器计算资源(CPU、内存),支持MR、Spark、Flink等多种框架.Kubernetes:由谷歌开源,是一个面向云平台的容器化编排引擎,提供对应用程序的容器化管理,可以在不同云和不同版本的操作系统之间迁移。目前,Spark和Storm已经支持K8S。3.4数据计算层大数据计算引擎决定了计算效率,是大数据平台的核心部分。它大致经历了以下四代的发展,可以分为离线计算框架和实时计算框架。3.4.1离线计算框架MapReduce:大数据并行处理的计算模型、框架和平台(设计思想非常巧妙,将计算向数据靠拢,减少数据传输)。Hive:一个数据仓库工具,可以管理存储在HDFS中的数据,可以将结构化的数据文件映射成数据库表,提供完整的SQL查询功能(在实际运行中,HiveSQL被翻译成MapReduce任务),适用于离线非-实时数据分析。Sparksql:引入了RDD(弹性分布式数据集)的特殊数据结构,将SQL转化为RDD计算,并将计算的中间结果放在内存中,因此比Hive性能更高,适用于实时性要求更高的数据分析场景。3.4.2实时计算框架SparkStreaming:实时流数据处理框架(按时间片划分成小批量,s级延迟),可以接收来自Kafka、Flume等数据源的实时输入数据,HDFS等,并将处理后的结果保存在HDFS、RDBMS、HBase、Redis、Dashboard等中Storm:实时流数据处理框架,真正的流式处理,每条数据都会触发计算,低延迟(ms)级延迟)。Flink:一个更高级的实时流数据处理框架。与Storm相比,延迟低于Storm,吞吐量更高。此外,它还支持乱序和延迟调整。3.5多维分析层Kylin:分布式分析引擎,可以亚秒级查询海量Hive表,将多维组合的计算结果通过预计算(以空间换时间)保存到Cubes中存储到HBase中,和用户执行SQL查询时将SQL转换为Cube查询,具有快速查询和高并发能力。Druid:一个高容错、高性能的开源分布式系统,适用于实时数据分析,可在秒级内对十亿行级表进行任意聚合分析。04大数据的一般处理流程了解了大数据平台的总体架构和技术体系后,我们来看看如何利用大数据技术处理离线数据和实时数据?上图是一个通用的大数据处理过程,主要包括以下几个步骤:数据采集:这是大数据处理的第一步。主要有两种类型的数据源。第一类是各业务系统的关系型数据库,通过Sqoop或Cannal等工具定时抽取或实时同步;第二种是各种埋地日志,通过Flume实时采集。数据存储:数据采集完成后,下一步就是将数据存储在HDFS中。在实时日志流的情况下,通过Kafka输出到后续的流式计算引擎。数据分析:这一步是数据处理的核心部分,包括离线处理和流处理。对应的计算引擎包括MapReduce、Spark、Flink等。处理后的结果会保存在预先设计好的数据仓库中,或者存储在HBase、Redis、RDBMS等各种存储系统中。数据应用:包括各种数据可视化展示、商业决策、AI等数据应用场景。05大数据下的数据仓库系统架构数据仓库是从业务角度看的一种数据组织形式,是大数据应用和数据中台的基础。数据仓库系统一般采用下图所示的层次结构。可以看出,数据仓库系统分为4层:源数据层、数据仓库层、数据集市层、数据应用层。采用这样的分层结构,类似于软件设计的分层思维。就是把复杂的问题简单化,每一层的职责单一,提高了可维护性和复用性。各层具体作用如下:ODS:源数据层,源表。DW:数据仓库层,包括维表和事实表,将源表清洗形成的宽数据表,如:城市表、商品类别表、后端埋点表、前端埋点表、用户宽表,商品宽表。DM:数据集市层,将数据进行轻粒度的汇总,由各业务方共同构建,如:用户群体分析表、交易全链路表。ADS:数据应用层,根据实际应用需求生成的各种数据表。此外,各层数据表将采用统一命名规则进行规范化管理,表名携带层、主题域、业务流程、分区信息。例如,对于交易域下的一张暴露表,可以这样命名:总结以上系统总结了大数据的历史、核心概念、总体架构和技术体系。如果你想深入学习大数据技术,建议参考这篇文章,结合下面的学习指南。后续会继续带来大数据方向更深入的分享。有兴趣的可以关注我的公众号。如果您觉得本文对您有价值,欢迎转发至朋友圈,点击阅读。感谢您的鼓励和支持!