做过Zabbix的同学都知道,Zabbix通过专用的Agent或者SNMP收集相关的监控数据,然后存储到数据库里面实时在前台展示。Zabbix监控数据主要分为以下两类:
创新互联建站成立与2013年,先为甘泉等服务建站,甘泉等地企业,进行企业商务咨询服务。为甘泉企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
历史数据:history相关表,从history_uint表里面可以查询到设备监控项目的最大,最小和平均值,即存储监控数据的原始数据。
趋势数据:trends相关表,趋势数据是经过Zabbix计算的数据,数据是从history_uint里面汇总的,从trends_uint可以查看到监控数据每小时最大,最小和平均值,即存储监控数据的汇总数据。
Zabbix可以通过两种方式获取历史数据:
1.通过Zabbix前台获取历史数据
通过Zabbix前台查看历史数据非常简单,可以通过Monitoring-Lastest data的方式查看。也可以点击右上角的As plain test按钮保存成文本文件。
2.通过前台获取的数据进行处理和二次查询有很多限制,因此可以通过SQL语句直接从后台DB查询数据。
首先大家应该熟悉SQL语句Select 常用用法:
SELECT [ALL | DISTINCT] Select_List [INTO [New_Table_name]
FROM { Table_name | View_name} [ [,{table2_name | view2_name}
[,…] ]
[ WHERE Serch_conditions ]
[ GROUP BY Group_by_list ]
[ HAVING Serch_conditions ]
[ ORDER BY Order_list [ASC| DEsC] ]
说明:
1)SELECT子句指定要查询的特定表中的列,它可以是*,表达式,列表等。
2)INTO子句指定要生成新的表。
3)FROM子句指定要查询的表或者视图。
4)WHERE子句用来限定查询的范围和条件。
5)GROUP BY子句指定分组查询子句。
6)HAVING子句用于指定分组子句的条件。
7)ORDER BY可以根据一个或者多个列来排序查询结果,在该子句中,既可以使用列名,也可以使用相对列号,ASC表示升序,DESC表示降序。
8)mysql聚合函数:sum(),count(),avg(),max(),avg()等都是聚合函数,当我们在用聚合函数的时候,一般都要用到GROUP BY 先进行分组,然后再进行聚合函数的运算。运算完后就要用到Having子句进行判断了,例如聚合函数的值是否大于某一个值等等。
创建数据库
选择开始菜单中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打开【SQL Server Management Studio】窗口,并使用Windows或 SQL Server身份验证建立连接。
在【对象资源管理器】窗口中展开服务器,然后选择【数据库】节点
右键单击【数据库】节点,从弹出来的快捷菜单中选择【新建数据库】命令。
执行上述操作后,会弹出【新建数据库】对话框。在对话框、左侧有3个选项,分别是【常规】、【选项】和【文件组】。完成这三个选项中的设置会后,就完成了数据库的创建工作,
在【数据库名称】文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。
在【所有者】文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用【使用全文索引】复选框。
在【数据库文件】列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的【添加】、【删除】按钮添加或删除数据库文件。
切换到【选项页】、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。
切换到【文件组】页,在这里可以添加或删除文件组。
完成以上操作后,单击【确定】按钮关闭【新建数据库】对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再【对象资源管理器】窗口看到。
一、消息中间件相关知识
1、概述
消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。
2、消息中间件的组成
2.1 Broker
消息服务器,作为server提供消息核心服务
2.2 Producer
消息生产者,业务的发起方,负责生产消息传输给broker,
2.3 Consumer
消息消费者,业务的处理方,负责从broker获取消息并进行业务逻辑处理
2.4 Topic
2.5 Queue
2.6 Message
消息体,根据不同通信协议定义的固定格式进行编码的数据包,来封装业务数据,实现消息的传输
3 消息中间件模式分类
3.1 点对点
PTP点对点:使用queue作为通信载体
说明:
消息生产者生产消息发送到queue中,然后消息消费者从queue中取出并且消费消息。
消息被消费以后,queue中不再存储,所以消息消费者不可能消费到已经被消费的消息。 Queue支持存在多个消费者,但是对一个消息而言,只会有一个消费者可以消费。
说明:
queue实现了负载均衡,将producer生产的消息发送到消息队列中,由多个消费者消费。但一个消息只能被一个消费者接受,当没有消费者可用时,这个消息会被保存直到有一个可用的消费者。
4 消息中间件的优势
4.1 系统解耦
交互系统之间没有直接的调用关系,只是通过消息传输,故系统侵入性不强,耦合度低。
4.2 提高系统响应时间
例如原来的一套逻辑,完成支付可能涉及先修改订单状态、计算会员积分、通知物流配送几个逻辑才能完成;通过MQ架构设计,就可将紧急重要(需要立刻响应)的业务放到该调用方法中,响应要求不高的使用消息队列,放到MQ队列中,供消费者处理。
4.3 为大数据处理架构提供服务
通过消息作为整合,大数据的背景下,消息队列还与实时处理架构整合,为数据处理提供性能支持。
4.4 Java消息服务——JMS
Java消息服务(Java Message Service,JMS)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。
5 消息中间件应用场景
5.1 异步通信
有些业务不想也不需要立即处理消息。消息队列提供了异步处理机制,允许用户把一个消息放入队列,但并不立即处理它。想向队列中放入多少消息就放多少,然后在需要的时候再去处理它们。
5.2 解耦
降低工程间的强依赖程度,针对异构系统进行适配。在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。通过消息系统在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口,当应用发生变化时,可以独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。
5.3 冗余
有些情况下,处理数据的过程会失败。除非数据被持久化,否则将造成丢失。消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多消息队列所采用的”插入-获取-删除”范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的指出该消息已经被处理完毕,从而确保你的数据被安全的保存直到你使用完毕。
5.4 扩展性
因为消息队列解耦了你的处理过程,所以增大消息入队和处理的频率是很容易的,只要另外增加处理过程即可。不需要改变代码、不需要调节参数。便于分布式扩容。
5.5 过载保护
在访问量剧增的情况下,应用仍然需要继续发挥作用,但是这样的突发流量无法提取预知;如果以为了能处理这类瞬间峰值访问为标准来投入资源随时待命无疑是巨大的浪费。使用消息队列能够使关键组件顶住突发的访问压力,而不会因为突发的超负荷的请求而完全崩溃。
5.6 可恢复性
系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理。
5.7 顺序保证
在大多使用场景下,数据处理的顺序都很重要。大部分消息队列本来就是排序的,并且能保证数据会按照特定的顺序来处理。
5.8 缓冲
在任何重要的系统中,都会有需要不同的处理时间的元素。消息队列通过一个缓冲层来帮助任务最高效率的执行,该缓冲有助于控制和优化数据流经过系统的速度。以调节系统响应时间。
5.9 数据流处理
分布式系统产生的海量数据流,如:业务日志、监控数据、用户行为等,针对这些数据流进行实时或批量采集汇总,然后进行大数据分析是当前互联网的必备技术,通过消息队列完成此类数据收集是最好的选择。
6 消息中间件常用协议
6.1 AMQP协议
AMQP即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制。
优点:可靠、通用
6.2 MQTT协议
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。
优点:格式简洁、占用带宽小、移动端通信、PUSH、嵌入式系统
6.3 STOMP协议
STOMP(Streaming Text Orientated Message Protocol)是流文本定向消息协议,是一种为MOM(Message Oriented Middleware,面向消息的中间件)设计的简单文本协议。STOMP提供一个可互操作的连接格式,允许客户端与任意STOMP消息代理(Broker)进行交互。
优点:命令模式(非topic\queue模式)
6.4 XMPP协议
XMPP(可扩展消息处理现场协议,Extensible Messaging and Presence Protocol)是基于可扩展标记语言(XML)的协议,多用于即时消息(IM)以及在线现场探测。适用于服务器之间的准即时操作。核心是基于XML流传输,这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息,即使其操作系统和浏览器不同。
优点:通用公开、兼容性强、可扩展、安全性高,但XML编码格式占用带宽大
6.5 其他基于TCP/IP自定义的协议
有些特殊框架(如:redis、kafka、zeroMq等)根据自身需要未严格遵循MQ规范,而是基于TCP\IP自行封装了一套协议,通过网络socket接口进行传输,实现了MQ的功能。
7 常见消息中间件MQ介绍
7.1 RocketMQ
阿里系下开源的一款分布式、队列模型的消息中间件,原名Metaq,3.0版本名称改为RocketMQ,是阿里参照kafka设计思想使用java实现的一套mq。同时将阿里系内部多款mq产品(Notify、metaq)进行整合,只维护核心功能,去除了所有其他运行时依赖,保证核心功能最简化,在此基础上配合阿里上述其他开源产品实现不同场景下mq的架构,目前主要多用于订单交易系统。
具有以下特点:
官方提供了一些不同于kafka的对比差异:
7.2 RabbitMQ
使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP,STOMP,也正是如此,使的它变的非常重量级,更适合于企业级的开发。同时实现了Broker架构,核心思想是生产者不会将消息直接发送给队列,消息在发送给客户端时先在中心队列排队。对路由(Routing),负载均衡(Load balance)、数据持久化都有很好的支持。多用于进行企业级的ESB整合。
7.3 ActiveMQ
Apache下的一个子项目。使用Java完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,少量代码就可以高效地实现高级应用场景。可插拔的传输协议支持,比如:in-VM, TCP, SSL, NIO, UDP, multicast, JGroups and JXTA transports。RabbitMQ、ZeroMQ、ActiveMQ均支持常用的多种语言客户端 C++、Java、.Net,、Python、 Php、 Ruby等。
7.4 Redis
使用C语言开发的一个Key-Value的NoSQL数据库,开发维护很活跃,虽然它是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用。对于RabbitMQ和Redis的入队和出队操作,各执行100万次,每10万次记录一次执行时间。测试数据分为128Bytes、512Bytes、1K和10K四个不同大小的数据。实验表明:入队时,当数据比较小时Redis的性能要高于RabbitMQ,而如果数据大小超过了10K,Redis则慢的无法忍受;出队时,无论数据大小,Redis都表现出非常好的性能,而RabbitMQ的出队性能则远低于Redis。
7.5 Kafka
Apache下的一个子项目,使用scala实现的一个高性能分布式Publish/Subscribe消息队列系统,具有以下特性:
7.6 ZeroMQ
号称最快的消息队列系统,专门为高吞吐量/低延迟的场景开发,在金融界的应用中经常使用,偏重于实时数据通信场景。ZMQ能够实现RabbitMQ不擅长的高级/复杂的队列,但是开发人员需要自己组合多种技术框架,开发成本高。因此ZeroMQ具有一个独特的非中间件的模式,更像一个socket library,你不需要安装和运行一个消息服务器或中间件,因为你的应用程序本身就是使用ZeroMQ API完成逻辑服务的角色。但是ZeroMQ仅提供非持久性的队列,如果down机,数据将会丢失。如:Twitter的Storm中使用ZeroMQ作为数据流的传输。
ZeroMQ套接字是与传输层无关的:ZeroMQ套接字对所有传输层协议定义了统一的API接口。默认支持 进程内(inproc) ,进程间(IPC) ,多播,TCP协议,在不同的协议之间切换只要简单的改变连接字符串的前缀。可以在任何时候以最小的代价从进程间的本地通信切换到分布式下的TCP通信。ZeroMQ在背后处理连接建立,断开和重连逻辑。
特性:
二、主要消息中间件的比较
大数据技术的体系庞大且复杂,基础的技术包含数据的采集、数据预处理、分布式存储、数据库、数据仓库、机器学习、并行计算、可视化等。
1、数据采集与预处理:FlumeNG实时日志收集系统,支持在日志系统中定制各类数据发送方,用于收集数据;Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,提供数据同步服务。
2、数据存储:Hadoop作为一个开源的框架,专为离线和大规模数据分析而设计,HDFS作为其核心的存储引擎,已被广泛用于数据存储。HBase,是一个分布式的、面向列的开源数据库,可以认为是hdfs的封装,本质是数据存储、NoSQL数据库。
3、数据清洗:MapReduce作为Hadoop的查询引擎,用于大规模数据集的并行计算。
4、数据查询分析:Hive的核心工作就是把SQL语句翻译成MR程序,可以将结构化的数据映射为一张数据库表,并提供HQL(HiveSQL)查询功能。Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
5、数据可视化:对接一些BI平台,将分析得到的数据进行可视化,用于指导决策服务。
大数据是指在一定时间内,常规软件工具无法捕捉、管理和处理的数据集合。它是一种海量、高增长、多元化的信息资产,需要一种新的处理模式,以具备更强的决策、洞察和流程优化能力。
大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些有意义的数据进行专业的处理。换句话说,如果把大数据比作一个行业,这个行业盈利的关键在于提高数据的“处理能力”,通过“处理”实现数据的“增值”。
从技术上讲,大数据和云计算的关系就像硬币的正反面一样密不可分。大数据不能用单台计算机处理,必须采用分布式架构。其特点在于海量数据的分布式数据挖掘。但它必须依赖云计算分布式处理、分布式数据库、云存储和虚拟化技术。
扩展信息:
大数据只是现阶段互联网的一个表征或特征。没有必要将其神话或保持敬畏。在以云计算为代表的技术创新背景下,这些原本看似难以收集和使用的数据开始被轻松使用。通过各行各业的不断创新,大数据将逐渐为人类创造更多的价值。
是体现大数据技术价值的手段,是进步的基石。这里从云计算、分布式处理技术、存储技术、感知技术的发展,阐述大数据从采集、处理、存储到形成结果的全过程。
实践是大数据的终极价值。在这里,我们从互联网大数据、政府大数据、企业大数据、个人大数据四个方面来描绘大数据的美好图景和将要实现的蓝图。
大数据热门词汇汇总
可以说,大数据是如今IT行业最热门的趋势之一,它催生出了处理大数据的一批全新技术。而新技术带来了新的热门词汇:首字母缩略词、专业术语和产品名称等。连"大数据"这个短语本身都让人犯晕。许多人一听到"大数据",觉得是指"大量数据",而大数据的涵义绝不仅仅涉及数据量的多寡。
下面是我们认为你要熟悉的几个热门词汇,按字母顺序排列。
ACID
ACID的全称是原子性、一致性、隔离性和持久性,这其实是一组需求或属性:如果这四个方面都得到遵守,就能在处理过程中确保数据库事务的数据完整性。虽然ACID问世已有一段时日,但是事务数据量的急剧增长把更多的注意力投向在处理大数据时需要满足ACID的规定。
大数据三要素
如今的IT系统在生成数量、速度和种类都很"庞大"的数据。
数量:IDC公司估计,今年全球信息总量将达到2.7泽字节(这相当于27亿太字节),而且每两年就翻一番。
速度:让IT管理人员们头痛的不仅仅是数据数量,还有数据从金融系统、零售系统、网站、传感器、无线射频识别(RFID)芯片以及Facebook和推特等社交网络源源而来的速度越来越快。
种类:如果回到5年前或可能10年前,IT人员处理的主要是字母数字数据,它们很容易存储在关系数据库中整齐排列的行和列中。现在不再是这样了。如今,推特和Facebook上的帖子、各种文档及网页内容等非结构化数据都是大数据组合的一部分。
列式(或列型)数据库
一些新一代数据库(如开源Cassandra和惠普的Vertica数据库)被设计成了按列存储数据,而不是像传统的SQL数据库那样按行存储数据。这种设计提供了更快的磁盘访问速度,提高了处理大数据时的性能。对数据密集型业务分析应用系统而言,列式数据库尤其受到欢迎。
数据仓库
数据仓库这个概念存在至今已有大概25年了,具体指将数据从多个操作IT系统复制到面向业务分析应用系统的辅助离线数据库
但是随着数据量急剧增长,数据仓库系统正在迅速改变。它们需要存储更多的数据以及更多种类的数据,因而数据仓库管理成为一大难题。10年或20年前,数据可能每周或每月复制到数据仓库系统中;而如今,数据仓库的更新要频繁得多,有的甚至实时更新。
ETL
将数据从一个数据库(比如支持银行应用事务处理系统的数据库)转移到另一个数据库(比如用于业务分析的数据仓库系统)时,就要用到提取、转换和加载(ETL)软件。数据从一个数据库传送到另一个数据库时,常常需要对数据进行重新格式化和清理操作。
由于数据量急剧增长,数据处理速度大大加快,对ETL工具的性能要求也大大提高了。
Flume
Flume是属于Apache Hadoop大家族(其他技术包括HBase、Hive、Oozie、Pig和Whirr)的一项技术,这种框架用于为Hadoop填充数据。该技术使用散布于应用服务器、Web服务器、移动设备及其他系统上的软件代理,收集数据,并将数据传送到Hadoop系统。
比如说,公司可以使用在Web服务器上运行的Apache Flume,收集来自推特帖子的数据,以便分析。
地理空间分析
推动大数据潮流的一个趋势是,由如今的IT系统生成和收集的地理空间数据越来越多。常言道,一幅图片的信息量抵得上1000个单词;所以难怪越来越多的地图、图表、照片及其他基于地理位置的内容是导致如今大数据呈爆炸式增长的主要动因。
地理空间分析是一种特殊形式的数据可视化(参阅下面的"可视化"条目),在地理地图上覆盖数据,以帮助用户更清楚地理解大数据分析的结果。
Hadoop
Hadoop是一种开源平台,用于开发分布式、数据密集型的应用程序。它由Apache软件基金会控制。
Hadoop的发明者是雅虎公司的开发者道格o卡廷(Doug Cutting),他在谷歌实验室的MapReduce概念这个基础上开发出了Hadoop,以他儿子的玩具象命名。
另外,HBase是一种非关系数据库,它是作为Hadoop项目的一部分开发而成的。Hadoop分布式文件系统(HDFS)是Hadoop的一个关键组成部分。Hive则是建立在Hadoop基础上的数据仓库系统。
内存中数据库
计算机在处理事务或执行查询时,一般从磁盘驱动器获取数据。但是当IT系统处理大数据时,这个过程可能实在太慢。
内存中数据库系统利用计算机的主内存来存储经常使用的数据,因而大大缩短了处理时间。内存中数据库产品包括SAP HANA和甲骨文Times Ten内存中数据库。
Java
Java是一种编程语言,由现隶属甲骨文公司的Sun开发,于1995年发布。Hadoop和其他许多大数据技术都是使用Java开发而成的,它仍是大数据领域一种主要的开发技术。
Kafka
Kafka是一种高吞吐量的分布式消息传送系统,最初是在LinkedIn开发而成,用于管理该服务网站的活动流(关于网站使用情况的数据)和操作数据处理流水线(关于服务器组件的性能)。
Kafka在处理大量流式数据时很有效,而流式数据是许多大数据计算环境的一个关键问题。由推特开发的Storm是另一种大行其道的流处理技术。
Apache软件基金会已将Kafka列为一个开源项目。所以,别以为这是有缺陷的软件。
延迟时间
延迟时间是指数据从一个点传送到另一个点过程中的延迟,或者是某个系统(如应用程序)响应另一个系统的延迟数量。
虽然延迟时间不是什么新术语,但是随着数据量不断增长,IT系统竭力跟上步伐,如今你更常听到这个术语。简单地说,"低延迟"是好事,"高延迟"是坏事。
映射/化简
映射/化简(Map/Reduce)这种方法是指把一个复杂的问题分解成多个较小的部分,然后将它们分发到多台计算机上,最后把它们重新组装成一个答案。
谷歌的搜索系统用到了映射/化简概念,这家公司有一个品牌名为MapReduce的框架。
谷歌在2004年发布的一份白皮书描述了它使用映射/化简的情况。Hadoop之父道格o卡廷充分认识到了其潜力,开发出了同样借用映射/化简概念的第一个版本的Hadoop。
NoSQL数据库
大多数主流的数据库(如甲骨文数据库和微软SQL Server)基于关系型体系结构,使用结构化查询语言(SQL)用于开发和数据管理。
但是名为"NoSQL"(有些人现在称NoSQL表示"不是只有SQL")的新一代数据库系统基于支持者们认为更适合处理大数据的体系结构。
一些NoSQL数据库是为提高可扩展性和灵活性设计的,另一些NoSQL数据库在处理文档及其他非结构化数据方面比较有效。典型的NoSQL数据库包括Hadoop/HBase、Cassandra、MongoDB和CouchDB,而甲骨文等一些知名开发商已推出了各自的NoSQL产品。
Oozie
Apache Oozie是一种开源工作流引擎,用于帮助管理面向Hadoop的处理工作。使用Oozie,一系列工作可以用多种语言(如Pig和MapReduce)来加以定义,然后彼此关联起来。比如说,一旦从操作应用程序收集数据的作业已完成,程序员就可以启动数据分析查询任务。
Pig
Pig是Apache软件基金会的另一个项目,这个平台用于分析庞大的数据集。就其本质而言,Pig是一种编程语言,可用于开发在Hadoop上运行的并行计算查询。
定量数据分析
定量数据分析是指使用复杂的数学或统计模型,解释金融和商业行为,或者甚至预测未来的行为。
由于如今收集的数据量急剧增加,定量数据分析已变得更加复杂。但是如果公司知道如何利用海量数据,获得更好的可视性,深入了解公司业务,并且洞察市场发展趋势,那么更多的数据也有望在数据分析方面带来更多的机会。
一个问题是,拥有这种分析技能的人才严重匮乏。知名咨询公司麦肯锡表示,光美国就需要150万名拥有大数据分析技能的分析员和管理员。
关系数据库
关系数据库管理系统(RDBM)是如今使用最广泛的一种数据库,包括IBM的DB2、微软的SQL Server和甲骨文数据库。从银行应用系统、零售店的销售点系统到库存管理应用软件,大多数的企业事务处理系统都在RDBM上运行。
但有些人认为,关系数据库可能跟不上如今数据量和种类都呈爆炸式增长的形势。比如说,RDBM当初在设计时着眼于处理字母数字数据,处理非结构化数据时不是同样有效。
分片
随着数据库变得越来越庞大,处理起来也变得越来越困难。分片(sharding)是一种数据库分区技术,把数据库分成了更小、更容易管理的部分。具体来说,数据库被横向分区,以便单独管理数据库表中的不同行。
分片方法让庞大数据库的片段可以分布在多台服务器上,从而提高数据库的整体运行速度和性能。
另外,Sqoop是一种开源工具,用于将来自非Hadoop来源(如关系数据库)的数据转移到Hadoop环境。
文本分析
导致大数据问题的因素之一是,从推特和Facebook等社交媒体网站、外部新闻源,甚至公司内部收集而来以便分析的文本数量越来越多。由于文本是非结构化数据(不像通常存储在关系数据库中的结构化数据),主流的业务分析工具面对文本时常常束手无策。
文本分析采用了一系列方法(关键字搜索、统计分析法和语言研究法等),从基于文本的数据中获得洞察力。
非结构化数据
就在不久前,大部分数据还是结构化数据,这种字母数字信息(如来自销售交易的财务数据)很容易存储在关系数据库中,并由商业智能工具来分析。
但是如今共计2.7泽字节的存储数据中很大一部分是非结构化数据,比如基于文本的文档、推特消息、发布在Flickr上的照片、发布在YouTube上的视频,等等。(颇有意思的是,每分钟有长达35个小时的视频内容上传到YouTube。)处理、存储和分析所有这些凌乱的非结构化数据常常是如今的IT系统面临的难题。
可视化
随着数据量的增长,人们使用静态的图表和图形来理解数据越来越困难了。这就导致开发新一代的数据可视化和分析工具,能够以新的方式呈现数据,从而帮助人们理解海量信息。
这些工具包括:标以色码的热图,三维图形,显示一段时间内变化的动画可视化,以及在地理地图上覆盖数据的地理空间呈现。今天的先进数据可视化工具还具有更强的互动性,比如允许用户放大某个数据子集,进行更仔细的检查。
Whirr
Apache Whirr是一组Java类库,用于运行大数据云服务。更确切地说,它可以加快在亚马逊弹性计算云(EC2)和Rackspace等虚拟基础设施上开发Hadoop集群的过程。
XML
可扩展标记语言(XML)用来传输和存储数据(别与HTML混为一谈,后者用来显示数据)。借助XML,程序员们就可以创建通用的数据格式,并通过互联网共享信息和格式。
由于XML文档可能非常庞大、复杂,它们往往被认为导致IT部门面临大数据挑战。
尧字节
尧字节(yottabyte)是一种数据存储度量指标,相当于1000泽字节。据知名调研机构IDC公司估计,今年全球存储的数据总量预计将达到2.7泽字节,比2011年增长48%。所以,我们离达到尧字节这个大关还有很长一段路,不过从目前大数据的增长速度来看,那一天的到来可能比我们想象的要快。
顺便说一下,1泽字节相当于1021字节的数据。它相当于1000艾字节(EB)、100万拍字节(PB)和10亿太字节(TB)。
ZooKeeper
ZooKeeper是由Apache软件基金会创建的一项服务,旨在帮助Hadoop用户管理和协调跨分布式网络的Hadoop节点。
ZooKeeper与HBase紧密集成,而HBase是与Hadoop有关的数据库。ZooKeeper是一项集中式服务,用于维护配置信息、命名服务、分布式同步及其他群组服务。IT管理人员用它来实现可靠的消息传递机制、同步流程执行及实施冗余服务。