淘先锋技术网

首页 1 2 3 4 5 6 7

想要了解大数据和Java语言区别是什么?我们先来简单了解一下他们定义的范畴:

大数据:简而言之,就是海量的数据,数据种类繁多,数据结构多变,数据存储方式不同,需要通过工具去收集这些数据,然后存储在存储介质的集群上。

java:java是一门计算机的编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。

从定义可以大概了解到大数据和java语言区别应该是java语言只是大数据中的一门开发工具语言,具体是怎么样?我们一起来看看大数据架构和java语言在大数据中应用。

大数据架构

一、数据源

首先从最底层的数据源来讲,大数据包含的数据是各方各面的,所有在数据的来源上也是多种多样的。从种类上来讲大体上可以分为以下几类:

  • 日志数据:应用系统的运行日志,用户访问的行为日志等

  • DB数据:企业内部业务系统的数据,例如客户管理系统的客户数据,订单系统的订单数据,物流系统的物流数据等

  • 流式数据:简单的理解就是实时采集的数据,源源不断像流水一样产生的数据,例如淘宝上用户的访问记录

  • 互联网数据:互联网数据有两种,一种是自己去采集的数据,一种是跟外部企业合作的数据,例如可以开发爬虫程序去爬取网站上公开的信息,和淘宝京东合作利用客户购买行为数据等

  • 其他数据:还有一些其他方面的数据,例如硬件设备产生的数据,特别是现在IOT物联网的火热,就是将所有硬件设备的数据收集起来进行分析

二、数据接入

数据源的多种多样,所以在数据接入技术和工具上也是多种多样的,常用技术和工具有以下几种:

  • Sqoop:一款用来在Hadoop(Hive)和关系型数据库之间传输数据的工具,可以将一个关系型数据库中的数据导入到HDFS(Hive)中,也可以将HDFS中的数据导入到关系型数据库中,主要是针对于DB数据源的数据接入。

  • Flume:一个分布式的、高可靠的、高可用的将大批量的不同数据源的日志数据收集、聚合、移动到数据中心(HDFS)进行存储的系统,主要针对于日志数据的收集和推送到数据仓库,类似的还有ELK体系的Logstash组件。

  • Kafka:一个分布式流处理平台,用于构造实时流数据管道,它可以在系统或应用之间可靠地获取数据,具有高性能、持久化、多副本备份、横向扩展能力,主要针对于流式数据的接入

三、数据存储

说到数据存储,大数据的发展历史离不开一个叫Hadoop的家族产品,可以很直接的这么说,没有Hadoop就没有大数据,国内很多大数据公司一开始建立的数据存储数仓都是基于Hadoop体系建立的,那么Hadoop到底是什么呢?

Hadoop是一个分布式文件系统(HadoopDistributedFileSystem),简称HDFS。简单的理解就是,可以利用大量便宜低端硬件配置的服务器,组建成一个跨服务器的存储集群,数据可以保存在多个服务器上,实现大数据量的存储和降低硬件成本。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。

说到数据存储,不得不说一下数据仓库的架构,不同于传统的业务系统使用的关系型数据库,Hadoop一个分布式文件系统,存储方式是按照文件的存储方式,所以就有了数据仓库架构的说法。数据仓库的架构主要有星型和雪花型两种方式:

星型:一种使用关系数据库实现多维分析空间的模式,称为星型模式。星型模式的基本形式必须实现多维空间(常常被称为方块),以使用关系数据库的基本功能。

雪花型:当星型模式的维度需要进行规范化时,星型模式就演进为雪花模式。

大数据的数据仓库架构主要采用雪花型架构,因为数据源的多样化,导致数据结构也是多样化的。不同于关系型数据库,都是基于二维表的形式,而大数据的数据有文本数据,日志数据,设备数据,爬虫数据,业务数据等,所以从接入数据到数仓还需要经过ETL(抽取-extract、转换-transform、加载-load)清洗的过程才能落地到数据仓库。一般数据仓库架构可以分为五层:

  • ODS层:ODS层主要是保存和来源数据一致的格式

  • DIM层:DIM层主要用来存储一些基础的维度表,很少会改动
  • MID层:MID层主要是用来处理根据业务逻辑和指标口径筛选出来的数据
  • DW层:DW层根据主题分类,将数据按照不同的主题建立数据表存储和进行维度化
  • DM层:DM层主要是面向应用层的建模,例如一张分析报表需要展示不同维度和指标的分析,那么根据这些维度和指标从DW层的不同主题分类中的数据关联出来,形成一张数据表给报表使用。

四、数据应用

在数据清洗完落地数据仓库之后,就是怎么去利用这些数据去变现业务价值。不同行业有不同行业的用法,在这里小编以自身经历说一下,小编所在的大数据部门主要是针对金融行业进行数据分析的,那么大概的应用场景有以下几种:

数据分析报表:基于业务需求开发的固定维度和指标的分析报表

移动端数据可视化:基于手机端App展示的数据图形可视化应用

数据分析周报,月报:按周或着按月进行数据汇总分析和预测,常用于邮件推送,公众号推送

大屏可视化驾驶舱:基于大屏端数据图形可视化,数据高度汇总,大而全

机器学习风控模型:基于机器学习算法训练出统一规则的模型,用于贷前,贷中或者贷后风控评审关卡。


java语言


在这里就不在过多的描述java的作用了,我们来聊聊java语言在大数据中可以做什么?


从上文大数据架构来看,java语言主要可以应用于开发数据应用和大数据工具,例如javaweb开发数据分析报表,移动可视化分析,大屏可视化驾驶舱等,也可以用于开发一些数据处理过程中用于自动化和便捷开发的工具,例如调度系统:用于数据清洗作业的自动化依赖调度;补录系统:用于数据缺失值的可视化补录表,便于数据治理的自动化;发布平台:用于调度作业一键从不同环境之间部署和数据同步审批等。

【我是蜡笔小添,专注IT前沿技术和科技资讯分享,我@蜡笔小添,我们一起学习交流探讨】