架构挑战

1、对现有数据库管理技术的挑战。

2、经典数据库技术并没有考虑数据的多类别(variety)、SQL(结构化数据查询语言),在设计的一开始是没有考虑到非结构化数据的存储问题。

3、实时性技术的挑战:一般而言,传统数据仓库系统,BI应用,对处理时间的要求并不高。因此这类应用通过建模,运行1-2天获得结果依然没什么问题。但实时处理的要求,是区别大数据应用和传统数据仓库技术、BI技术的关键差别之一。

4、网络架构、数据中心、运维的挑战:随着每天创建的数据量爆炸性的增长,就数据保存来说,我们能改进的技术却不大,而数据丢失的可能性却不断增加。如此庞大的数据量存储就是首先面临的非常严峻的问题,硬件的更新速速将是大数据发展的基石,但效果确实不甚理想。

分析技术

1、数据处理:自然语言处理技术(NLP)

2、统计和分析:A/B test、top N排行榜、地域占比、文本情感分析

3、数据挖掘:关联规则分析、分类、聚类

4、模型预测:预测模型、机器学习、建模仿真

数据存储

1、结构化数据:海量数据的查询、统计、更新等操作效率低

2、非结构化数据:图片、视频、word、PDF、PPT等文件存储、不利于检索,查询和存储

3、半结构化数据:转换为结构化数据存储、按照非结构化存储

解决方案:

1、存储:HDFS、HBASE、Hive、MongoDB等

2、并行计算:MapReduce技术

3、流计算:twitter的storm和yahoo的S4

大数据与云计算

1、云计算的模式是业务模式,本质是数据处理技术

2、数据是资产,云为数据资产提供存储、访问和计算

3、当前云计算更偏重海量存储和计算,以及提供的云服务,运行云应用。但是缺乏盘活数据资产的能力,挖掘价值性信息和预测性分析,为国家、企业、个人提供决策方案和服务,是大数据核心议题,也是云计算的最终方向。

大数据平台架构

我想这幅架构图,对大数据处理的人来说,应该不是很陌生。

IaaS::基础设施即服务。基于 Internet 的服务(如存储和数据库)。

PaaS:平台即服务。提供了用户可以访问的完整或部分的应用程序。

SaaS:软件即服务。则提供了完整的可直接使用的应用程序,比如通过 Internet管理企业资源。

数据转换ETL

这里也不多涉及这方面的概念,在接下来的几篇文章中,会对下图中相关的部分(主要介绍PaaS模块中涉及的部分)以及上面提及的技术挑战和相关技术的介绍。

提纲

数据采集:ETL

数据存储:关系数据库、NoSql、SQL等

数据管理:(基础架构支持)云存储、分布式文件系统

数据分析与挖掘:(结果展现)数据的可视化

本文章的目的,不是为了让大家对ETL的详细过程有彻底的了解。只需要知道,这是数据处理的第一步,一切的开端。

大数据技术之数据采集ETL:

这里不过多的说数据采集的过程,可以简单的理解:有数据库就会有数据。

这里我们更关注数据的ETL过程,而ETL前期的过程,只需要了解其基本范畴就OK。

在数据挖掘的范畴了,数据清洗的前期过程,可简单的认为就是ETL的过程。ETL的发展过程伴随着数据挖掘至今,其相关技术也已非常成熟。这里我们也不过多的探讨ETL过程,日后如有涉及,在细分。

ETL概念介绍

ETL(extract提取、transform转换、load加载)。ETL负责将分散的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后,进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘提供决策支持的数据。

ETL是构建数据仓库的重要的一环,用户从数据源抽取所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中。其定义域来源也不下于十几年,技术发展也应相当成熟。可乍眼一看,似乎并没有什么技术可言,也没有什么深奥之处,但在实际的项目中,却常常在这个环节上耗费太多的人力,而在后期的维护上,往往更费脑筋。导致上面的原因,往往是在项目初期没有正确的估计ETL的工作,没有认真的考虑其与工具支撑有很大的关系。

在做ETL产品选型的时候,任然必不可少的要面临四点(成本、人员经验、案例和技术支持)来考量。在做ETL的过程中,也随之产生于一些ETL工具,如Datastage、Powercenter、ETLAutomation。而在实际ETL工具应用的对比上,对元数据的支持、对数据质量的支持、维护的方便性、定制开发功能的支持等方面是我们选择的切入点。一个项目,从数据源到最终目标表,多则达上百个ETL过程,少则也十几个。这些过程之间的依赖关系、出错控制以及恢复的流程处理,都是工具需要重点考虑。这里不再多讨论,具体应用再具体说明。

ETL过程介绍

在整个数据仓库的构建中,ETL工作占整个工作的50%-70%。下面有人给出团队之间的ETL过程是如何实现的。在面临耗费绝大时间的分析过程中,要求第一点就是:团队协作性要好。ETL包含E,T,L还有日志的控制,数据模型,原数据验证,数据质量等等方面。

例如我们要整合一个企业亚太区的数据,但是每个国家都有自己的数据源,有的是ERP,有的是Access,而且数据库都不一样,好要考虑网络的性能问题, 如果直接用ODBC去连接两地的数据源,这样的做法很显然是不合理的,因为网络不好,经常连接,很容易数据库链接不能释放导致死机。如果我们在各地区的服 务器放置一个数据导出为access或者flat file的程序,这样文件就比较方便的通过FTP的方式进行传输。

下面我们指出上述案例需要的几项工作:

1、有人写一个通用的数据导出工具,可以用java,可以用脚本,或其他的工具,总之要通用,可以通过不同的脚本文件来控制,使各地区的不同数据库导出的文件格式是一样的。而且还可以实现并行操作。

2、有人写FTP的程序,可以用bat,可以用ETL工具,可以用其他的方式,总之要准确,而且方便调用和控制。

3、有人设计数据模型,包括在1之后导出的结构,还有ODS和DWH中的表结构。

4、有人写SP,包括ETL中需要用到的SP还有日常维护系统的SP,比如检查数据质量之类的。

5、有人分析原数据,包括表结构,数据质量,空值还有业务逻辑。

6、有人负责开发流程,包括实现各种功能,还有日志的记录等等。

7、有人测试真正好的ETL,都是团队来完成的,一个人的力量是有限的。

其实上述的7步,再给我们强调的是什么:一个人,很难成事。团队至上。

这里我们简述ETL的过程:主要从E、T、L和异常处理简单的说明,这里不再细说明。如果用到,我想大家一定会有更深的调研。

1、 数据清洗

·数据补缺:对空数据、缺失数据进行数据补缺操作,无法处理的做标记。

·数据替换:对无效数据进行数据的替换。

·格式规范化:将源数据抽取的数据格式转换成为便于进入仓库处理的目标数据格式。

·主外键约束:通过建立主外键约束,对非法数据进行数据替换或导出到错误文件重新处理。

2、 数据转换

·数据合并:多用表关联实现,大小表关联用lookup,大大表相交用join(每个字段家索引,保证关联查询的效率)

·数据拆分:按一定规则进行数据拆分

·行列互换、排序/修改序号、去除重复记录

·数据验证:loolup、sum、count

实现方式:

·在ETL引擎中进行(SQL无法实现的)

·在数据库中进行(SQL可以实现的)

3、 数据加载

方式

·时间戳方式:在业务表中统一添加字段作为时间戳,当OLAP系统更新修改业务数据时,同时修改时间戳字段值。

·日志表方式:在OLAP系统中添加日志表,业务数据发生变化时,更新维护日志表内容。

· 全表对比方式:抽取所有源数据,在更新目标表之前先根据主键和字段进行数据比对,有更新的进行update或insert。

·全表删除插入方式:删除目标表数据,将源数据全部插入。

异常处理

在ETL的过程中,必不可少的要面临数据异常的问题,处理办法:

1、将错误信息单独输出,继续执行ETL,错误数据修改后再单独加载。中断ETL,修改后重新执行ETL。原则:最大限度接收数据。

2、对于网络中断等外部原因造成的异常,设定尝试次数或尝试时间,超数或超时后,由外部人员手工干预。

3、 例如源数据结构改变、接口改变等异常状况,应进行同步后,在装载数据。

在这里涉及到ETL中,我们只要有一个清晰的认识,它不是想象中的简单一蹴而就,在实际的过程,你可以会遇到各种各样的问题,甚至是部门之间沟通的问题。在给它定义到占据整个数据挖掘或分析的过程中50%-70%是不足为过的。

大数据处理过程核心技术ETL详细介绍的更多相关文章

  1. 大数据调度工具oozie详细介绍

    背景 之前项目中的sqoop等离线数据迁移job都是利用shell脚本通过crontab进行定时执行,这样实现的话比较简单,但是随着多个job复杂度的提升,无论是协调工作还是任务监控都变得麻烦,我们选 ...

  2. Kafaka详细介绍机制原理

    1.       kafka介绍 1.1.       主要功能 根据官网的介绍,ApacheKafka®是一个分布式流媒体平台,它主要有3种功能: 1:It lets you publish and ...

  3. Elasticsearch与Hadoop集成大数据处理介绍

    传统大数据处理 现代数据架构 Hadoop在20业务场景的应用 DataLake A data lake is a system or repository of data stored in its ...

  4. 柯南君:看大数据时代下的IT架构(2)消息队列之RabbitMQ-基础概念详细介绍

    一.基础概念详细介绍 1.引言 你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用.通讯的问题而苦恼.挣扎?如果是,那么恭喜你,消息服务让你可以很轻松 ...

  5. 翻译-In-Stream Big Data Processing 流式大数据处理

    相当长一段时间以来,大数据社区已经普遍认识到了批量数据处理的不足.很多应用都对实时查询和流式处理产生了迫切需求.最近几年,在这个理念的推动下,催生出了一系列解决方案,Twitter Storm,Yah ...

  6. [转载] 一共81个,开源大数据处理工具汇总(下),包括日志收集系统/集群管理/RPC等

    原文: http://www.36dsj.com/archives/25042 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统.消息系统.分布式服务 ...

  7. 《Spark大数据处理:技术、应用与性能优化 》

    基本信息 作者: 高彦杰 丛书名:大数据技术丛书 出版社:机械工业出版社 ISBN:9787111483861 上架时间:2014-11-5 出版日期:2014 年11月 开本:16开 页码:255 ...

  8. Spark大数据处理技术

    全球首部全面介绍Spark及Spark生态圈相关技术的技术书籍 俯览未来大局,不失精细剖析,呈现一个现代大数据框架的架构原理和实现细节 透彻讲解Spark原理和架构,以及部署模式.调度框架.存储管理及 ...

  9. 0基础搭建Hadoop大数据处理-初识

    在互联网的世界中数据都是以TB.PB的数量级来增加的,特别是像BAT光每天的日志文件一个盘都不够,更何况是还要基于这些数据进行分析挖掘,更甚者还要实时进行数据分析,学习,如双十一淘宝的交易量的实时展示 ...

随机推荐

  1. JavaScript大杂烩8 - 理解文本解析的"黄金搭档"

    文本解析"黄金搭档" - String与RegExp对象 文本解析是任何语言中最常用的功能,JavaScript中也是一样,而正则表达式作为最常用的方式,JavaScript也同样 ...

  2. jmeter利用自身代理录制脚本

    在利用代理录制脚本时一定要安装java jdk,不然不能录制的. 没有安装过java jdk安装jmeter后打开时会提示安装jdk,但是mac系统中直接打开提示安装jdk页面后下载的java并不是j ...

  3. 02-OpenLDAP配置

    OpenLDAP配置 在OpenLDAP 2.4版本中,配置OpenLDAP的方法有两种:一种通过修改配置文件实现配置,另一种通过修改数据库的形式完成配置. 通过配置数据库完成各种配置,属于动态配置且 ...

  4. SQLServer数据集合的交、并、差集运算

    SQLServer2005通过intersect,union,except和三个关键字对应交.并.差三种集合运算. 他们的对应关系可以参考下面图示 相关测试实例如下: use tempdb go if ...

  5. ISP与DSP的区别【转】

    https://www.cnblogs.com/lifan3a/articles/5006760.html ISP 是Image Signal Processor 的简称,也就是图像信号处理器.而DS ...

  6. JSON数据提取

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写.同时也方便了机器进行解析和生成.JSON在数据交换中起到了一个载体的作用 ...

  7. windows防火墙安全设置指定ip访问指定端口

    场景摘要: 1.我有三台腾讯云服务器 2.我日常办公网络的ip换了 3.我在腾讯云上面改了安全规则,也不能访问我A服务器的21,1433等端口 4.开始我以为是办公网络的安全设置问题 5.我进B服务器 ...

  8. SQL Server2008 18456错误

    1.以windows验证模式进入数据库管理器.   第二步:右击sa,选择属性:   在常规选项卡中,重新填写密码和确认密码(改成个好记的).把强制实施密码策略去掉.   第三步:点击状态选项卡:勾选 ...

  9. 2018-2019-2 网络对抗技术 20165318 Exp1 PC平台逆向破解

    实验模块 (一)直接修改程序机器指令,改变程序执行流程: (二)通过构造输入参数,造成BOF攻击,改变程序执行流: (三)注入Shellcode并执行: 实验准备 设置共享文件夹(这一步我已经在之前安 ...

  10. clearRect清除html5画布

    html5 canvas 清除可以使用clearRect() 方法 clearRect() 方法的作用是清空给定矩形内的指定像素.JavaScript 语法:context.clearRect(x,y ...