中企动力 > 商学院 > 大数据采集分析平台
  • ?

    数据可视化大屏+日志大数据分析平台,数据智能解决方案改变世界

    周鼎

    展开

    编者按:在云计算大数据技术日趋成熟的当今,数据挖掘分析与商业智能应用的价值越来越被企业所理解。企业通过对关键业务数据、客户信息以及日志数据的挖掘分析,可进行精准的客户画像并分析客户属性,更准确地发现目标客户和更多的营销机会(市场客户分析、交叉营销等),实现市场、渠道和产品的细分与创新,动态掌握复杂市场需求的变化,智能数据解决方案提升了市场竞争力。

    说到智能数据解决方案供应商,去年刚刚获得6000万元融资的“袋鼠云”最近可谓是“动作频频”,不仅多名前阿里核心技术人员强势加盟,更有硅谷留洋“博士团”鼎力回归,让“袋鼠云”这一新锐品牌迅速被数据行业“特别关注”。

    数据智能解决方案新锐品牌“袋鼠云”从数据资源规划及获取、数据质量分析及提升,到基于中台策略的数据整体建模以及数据的资产管理都有切实的解决方案,进一步帮助客户建立标签引擎的实体画像,从而帮助客户实施数据指标体系梳理计算(BI)和数据应用规划及实现(DI),最终用数据可视化大屏的形式呈现出来帮助实时决策。可以说“袋鼠云”的智能数据解决方案的产品线可谓“相当完整”。

    “袋鼠云”产品线构建了统一负载的全量数据分析平台与方案,统一的在线实时存储、处理、分析工具,支持PB级海量数据处理,可随业务需求线性扩展,为客户实现“即时刻画、秒级呈现”的数据可视化大屏呈现方式。

    记者采访中了解到,目前“袋鼠云”品牌在全产品线的智能数据分析解决方案中,日志大数据分析平台与数据可视化大屏即时呈现两大方面技术积累与产品优势十分明显。

    EasyLog日志大数据分析平台—用日志解析为企业做体检

    “我们将为客户从大量的数据日志项目中,根据客户业务现状清洗整理出切实可行的关键日志信息,做好日志数据挖掘和分析利用,充分在运维过程中给客户带来价值。” 袋鼠云在采访中给记者解释:“传统企业对于海量日志数据利用效能很低,而每次都靠IT人员查阅日志进行系统运维的方式既成本高昂而且运维稳定性很低,而采用了袋鼠云的日志大数据分析平台EasyLog就可以大大提升企业运维的效率,对于很多潜在的系统问题也能做到良好的预警。”

    据介绍,目前袋鼠云日志大数据分析平台EasyLog主要部署在大中型互联网企业以及互联网金融行业,也有大型的金融机构、电信运营商等等,这些行业都非常重视日志大数据对于企业运维的作用。

    同时袋鼠云日志大数据分析平台EasyLog也可帮助企业满足《中国网络安全法》日志归档要求、满足《公安部息系统安全等级保护》三级要求;

    袋鼠云向记者进一步介绍:“目前企业针对日志大数据分析应用有几种方案,一种是基于开源应用的ELK方案,另一种就是类似袋鼠云提供的日志大数据分析平台。前者由于是开源应用,因此企业的前期开发与后期维护成本比较高,也面临无可预计的开发风险,而后者袋鼠云日志大数据分析平台更像是一个“拎包入住”并自配资深管家的成熟方案平台,让客户省去很多后顾之忧。”

    而且在采访中记者了解到:“袋鼠云日志大数据分析平台,也有灵活的部署方式,既可以在客户方线下机房部署,也可以部署在云端服务,甚至针对小型企业袋鼠云还有SaaS版的轻量级产品,针对不同的客户可谓“面面俱到”。并且这样的金融级日志分析、AIOps平台,可用于故障定位、业务监控、安全审计等,袋鼠云日志有着可视化仪表盘、监控告警、数据脱敏、数据转发投递、多租户数据隔离等特色功能,可根据企业实际业务完成分析场景建设,以提升企业故障发现率、运维运营效率。

    “目前著名的互联网银行品牌新网银行在旗下十余个核心系统中均采用了袋鼠云的日志大数据分析平台EasyLog,从而提升了各业务系统故障发现率,同时极大降低故障处理时间,也成为了成功的众多案例之一。”采访中记者了解到。

    数据可视化实时大屏—实现企业数据化运营

    而作为袋鼠云全产品线中另一个亮点的“数据可视化实时大屏”也是目前炙手可热的技术,数据产生价值这个大方向让最后呈现的环节中的数据实时分析产生价值,呈现一切价值数据可视化,最终帮助提升生产效率、促进产业变革,通过客户产业创新让数据价值最大化。

    采访中记者了解到,袋鼠云数据可视化实时大屏目前主要服务的行业包括新零售、智能制造、智慧人社、以及业务快速增长的互联网创业公司等。

    采访中记者了解到,新零售方面一直是袋鼠云的强项。一方面借助营销引擎帮助品牌商打通线上线下的用户数据,实现精准营销。围绕客户的发展与持续经营,统一管理线上营销渠道,打通全域数据,通过数据个性化线下门店服务体验等,使企业与客户之间可随时无阻碍的连接。这些数据与分析都以精准实时的形式呈现在客户的可视化大屏之上,让客户从容决策。

    “要精准呈现数据可视化大屏的最佳效果,数据的实时性采集非常重要,袋鼠云实现了对TB级别甚至是PB级别数据的实时处理,实现秒级反馈是最基本的要求,这得益于袋鼠云的技术团队多数来自于阿里云,在实时数据计算处理与呈现方面有丰富的经验。”可视化大屏将企业实时数据即时呈现,比如电商平台的经营概况、用户画像等信息一目了然。

    编后:目前袋鼠云的团队已经超过 150 人,80% 左右为技术人员。当下更多的资深技术专家,包括美国回来的人工智能博士和一批专注企业服务多年的行业专家都纷纷加盟袋鼠云,让数据产生价值。无论是数据可视化实时大屏Easy[V]或是日志大数据分析平台EasyLog,智能数据解决方案最终让更多的数据产生价值,让未来变成现在,袋鼠云这一朝气蓬勃的品牌团队正在朝向探索未来数据价值之路上越跑越快。

    本文关注:日志大数据分析平台、数据可视化大屏、数据智能解决方案

    转载或分享请注明来源标题《数据可视化大屏+日志大数据分析平台,数据智能解决方案改变世界》

  • ?

    网页信息采集,大数据采集技术综述

    博涛

    展开

    大数据采集技术就是对数据进行ETL操作,通过对数据进行提取、转换、加载,最终挖掘数据的潜在价值。然后提供给用户解决方案或者决策参考。ETL,是英文 Extract-Transform-Load 的缩写,数据从数据来源端经过抽取(extract)、转换(transform)、加载(load)到目的端,然后进行处理分析的过程。

    用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据模型,将数据加载到数据仓库中去,最后对数据仓库中的数据进行数据分析和处理。

    数据采集位于数据分析生命周期的重要一环,它通过传感器数据、社交网络数据、移动互联网数据等方式获得各种类型的结构化、半结构化及非结构化的海量数据。

    由于采集的数据种类错综复杂,对于这种不同种类的数据。

    我们进行数据分析,必须通过提取技术。将复杂格式的数据,进行数据提取,从数据原始格式中提取(extract)出我们需要的数据,这里可以丢弃一些不重要的字段。

    对于数据提取后的数据,由于数据源头的采集可能存在不准确。

    所以我们必须进行数据清洗,对于那些不正确的数据进行过滤、剔除。

    针对不同的应用场景,对数据进行分析的工具或者系统不同,我们还需要对数据进行数据转换(transform)操作,将数据转换成不同的数据格式,最终按照预先定义好的数据仓库模型,将数据加载(load)到数据仓库中去。

    大数据处理目前比较流行的是两种方法,一种是离线处理,一种是在线处理,基本处理架构如下:

    在互联网应用中,不管是哪一种处理方式,其基本的数据来源都是日志数据,例如对于web应用来说,则可能是用户的访问日志、用户的点击日志等。

    如果对于数据的分析结果在时间上有比较严格的要求,则可以采用在线处理的方式来对数据进行分析,如使用Spark、Storm等进行处理。比较贴切的一个例子是天猫双十一的成交额,在其展板上,我们看到交易额是实时动态进行更新的,对于这种情况,则需要采用在线处理。

    当然,如果只是希望得到数据的分析结果,对处理的时间要求不严格,就可以采用离线处理的方式,比如我们可以先将日志数据采集到HDFS中,之后再进一步使用MapReduce、Hive等来对数据进行分析,这也是可行的。

    在现实生活中,数据产生的种类很多,并且不同种类的数据产生的方式不同。

    对于大数据采集系统,主要分为以下三类系统:

    一、系统日志采集系统。

    许多公司的业务平台每天都会产生大量的日志数据。对于这些日志信息,我们可以得到出很多有价值的数据。通过对这些日志信息进行日志采集、收集,然后进行数据分析,挖掘公司业务平台日志数据中的潜在价值。

    为公司决策和公司后台服务器平台性能评估提高可靠的数据保证。

    系统日志采集系统做的事情就是收集日志数据提供离线和在线的实时分析使用。

    目前常用的开源日志收集系统有Flume、Scribe等。Apache Flume是一个分布式、可靠、可用的服务,用于高效地收集、聚合和移动 大量的日志数据,它具有基于流式数据流的简单灵活的架构。

    其可靠性机制和许多故障转移和恢复机制,使Flume具有强大的容错能力。

    Scribe是Facebook开源的日志采集系统。Scribe实际上是一个分布式共享队列,它可以从各种数据源上收集日志数据,然后放入它上面的共享队列中。

    Scribe可以接受thrift client发送过来的数据,将其放入它上面的消息队列中。然后通过消息队列将数据Push到分布式存储系统中,并且由分布式存储系统提供可靠的容错性能。

    如果最后的分布式存储系统crash时,Scribe中的消息队列还可以提供容错能力,它会还日志数据写到本地磁盘中。Scribe支持持久化的消息队列,来提供日志收集系统的容错能力。

    二、网络数据采集系统。

    通过网络爬虫和一些网站平台提供的公共API(如Twitter和新浪微博API)等方式从网站上获取数据。这样就可以将非结构化数据和半结构化数据的网页数据从网页中提取出来。

    并将其提取、清洗、转换成结构化的数据,将其存储为统一的本地文件数据。目前常用的网页爬虫系统有Apache Nutch、Crawler4j、Scrapy等框架。

    Apache Nutch是一个高度可扩展和可伸缩性的分布式爬虫框架。

    Apache通过分布式抓取网页数据,并且由Hadoop支持,通过提交MapReduce任务来抓取网页数据,并可以将网页数据存储在HDFS分布式文件系统中。

    Nutch可以进行分布式多任务进行爬取数据,存储和索引。由于多个机器并行做爬取任务,Nutch利用多个机器充分利用机器的计算资源和存储能力,大大提高系统爬取数据能力。

    Crawler4j、Scrapy都是一个爬虫框架,提供给开发人员便利的爬虫API接口。开发人员只需要关心爬虫API接口的实现,不需要关心具体框架怎么爬取数据。Crawler4j、Scrapy框架大大降低了开发人员开发速率,开发人员可以很快的完成一个爬虫系统的开发。

    三、数据库采集系统。

    一些企业会使用传统的关系型数据库MySQL和Oracle等来存储数据。

    除此之外,Redis和MongoDB这样的NoSQL数据库也常用于数据的采集。企业每时每刻产生的业务数据,以数据库一行记录形式被直接写入到数据库中。

    通过数据库采集系统直接与企业业务后台服务器结合,将企业业务后台每时每刻都在产生大量的业务记录写入到数据库中,最后由特定的处理分许系统进行系统分析。

    针对大数据采集技术,目前主要流行以下大数据采集分析技术。Hive是Facebook团队开发的一个可以支持PB级别的可伸缩性的数据仓库。

    这是一个建立在Hadoop之上的开源数据仓库解决方案。 Hive支持使用类似SQL的声明性语言(HiveQL)表示的查询,这些语言被编译为使用Hadoop执行的MapReduce作业。

    另外,HiveQL使用户可以将自定义的map-reduce脚本插入到查询中。该语言支持基本数据类型,类似数组和Map的集合以及嵌套组合。

    HiveQL语句被提交执行。首先Driver将查询传递给编译器compiler,通过典型的解析,类型检查和语义分析阶段,使用存储在Metastore中的元数据。

    编译器生成一个逻辑任务,然后通过一个简单的基于规则的优化器进行优化。

    最后生成一组MapReduce任务和HDFS Task的DAG优化后的Task。 然后执行引擎使用Hadoop按照它们的依赖性顺序执行这些Task。

    Hive简化了对于那些不熟悉Hadoop MapReduce接口的用户学习门槛,Hive提供了一些列简单的HiveQL语句,对数据仓库中的数据进行简要分析与计算。

  • ?

    怎样搭建一个大数据分析平台?内附资料福利

    Karima

    展开

    一般的大数据平台从平台搭建到数据分析大概包括以下几个步骤:

    1、Linux系统安装

    一般使用开源版的Redhat系统--CentOS作为底层平台。为了提供稳定的硬件基础,在给硬盘做RAID和挂载数据存储节点的时,需要按情况配置。比如,可以选择给HDFS的namenode做RAID2以提高其稳定性,将数据存储与操作系统分别放置在不同硬盘上,以确保操作系统的正常运行。

    2、分布式计算平台/组件安装

    当前分布式系统的大多使用的是Hadoop系列开源系统。Hadoop的核心是HDFS,一个分布式的文件系统。在其基础上常用的组件有Yarn、Zookeeper、Hive、Hbase、Sqoop、Impala、ElasticSearch、Spark等。

    使用开源组件的优点:1)使用者众多,很多bug可以在网上找的答案(这往往是开发中最耗时的地方);2)开源组件一般免费,学习和维护相对方便;3)开源组件一般会持续更新;4)因为代码开源,如果出现bug可自由对源码作修改维护。

    常用的分布式数据数据仓库有Hive、Hbase。Hive可以用SQL查询,Hbase可以快速读取行。外部数据库导入导出需要用到Sqoop。Sqoop将数据从Oracle、MySQL等传统数据库导入Hive或Hbase。Zookeeper是提供数据同步服务, Impala是对hive的一个补充,可以实现高效的SQL查询

    3、数据导入

    前面提到,数据导入的工具是Sqoop。它可以将数据从文件或者传统数据库导入到分布式平台。

    4、数据分析

    数据分析一般包括两个阶段:数据预处理和数据建模分析。

    数据预处理是为后面的建模分析做准备,主要工作时从海量数据中提取可用特征,建立大宽表。这个过程可能会用到Hive SQL,Spark QL和Impala。

    数据建模分析是针对预处理提取的特征/数据建模,得到想要的结果。如前面所提到的,这一块最好用的是Spark。常用的机器学习算法,如朴素贝叶斯、逻辑回归、决策树、神经网络、TFIDF、协同过滤等,都已经在ML lib里面,调用比较方便。

    5、结果可视化及输出API

    可视化一般式对结果或部分原始数据做展示。一般有两种情况,行数据展示,和列查找展示。

    以上就简单介绍这么多,如果有小伙伴想了解和学习更多的大数据技术,可以私信小编索要资料

  • ?

    大数据监控平台实践之路

    记忆

    展开

    综述

    日志和监控开发人员工作中必不可少的两只眼睛,日志是为了快速定位排查故障,监控是为了发现潜在问题并能及时告警,是故障诊断和分析的重要辅助利器,同样监控系统对大数据平台重要性不言而喻。在发生事故之前就能预警,最大限度降低系统故障率,是监控的终极目标和价值体现。本文旨在帮助大家了解监控系统,并能快速搭建公司的监控平台。

    监控体系

    监控粒度、监控指标完整性、监控实时性是评价监控系统的三要素。从分层体系可以把监控系统分为三个层次:

    业务层:业务系统本质目的是为了达成业务目标,因此监控业务系统是否正常最有效的方式是从数据上监控业务目标是否达成。对业务运营数据进行监控,可及时发现程序bug或业务逻辑设计缺陷,比如注册失败率、登录失败率、付款失败率等。业务系统的多样性决定了应由各个业务系统实现监控指标开发。应用层:对应用的整体运行状况进行了解、把控,如果将应用当成黑盒子,开发、运维就无从知晓应用当前状态,不能及时发现潜在故障。应用监控不应局限于业务系统,还包括各种中间件、计算引擎,如Spark、Jstorm、redis、zookeeper、kafka等。常用监控数据:JVM堆内存、GC、CPU使用率、线程数、TPS、吞吐量等。一般通过抽象出的统一指标收集组件,收集应用级指标,比如不管是支付系统还是交易系统,都要监控jvm内存使用。系统层:实时掌握服务器工作状态,留意性能、内存消耗、容量和整体系统健康状态,保证服务器稳定运行。监控指标:内存、磁盘、CPU、网络流量、系统进程等系统级性能指标架构设计

    工欲善其事必先利其器,根据对现有监控产品的调研,以及我们对监控的分层介绍、所需解决的问题,可以发现监控系统从收集到分析的流程架构:采集-存储-展示-告警:

    Telegraf:插件化的指标收集和指标报告服务,能定制化开发并轻松添加所需插件。已经内置了很多常用服务的插件,这也是我们选择telegraf的原因之一,不用再重复造轮子

    InfluxDB:高性能的布式时间序列指标数据库。监控指标收集是非常频繁的,否则就失去了实时性,高频收集的结果就是大数据量,也要对时间序列进行分析,InfluxDB就能满足这种应用场景

    Grafana:时间序列分析和监控的开放平台,支持多种数据源(InfluxDB、OpenTSDB时间序列数据库)、丰富的展现形式、支持email/dingding报警

    Telegraf

    go语言编写的插件化指标收集agent,编译成一个没有外部依赖的二进制文件,安装部署很便捷,直接下载、解压就行,默认配置文件在$TELEGRAF_HOME/etc/telegraf/telegraf.conf目录下。telegraf插件分为两大类:input、output。

    input:收集inputs配置的所有指标,已内置的input插件:elasticsearch、redis、jolokia等。也可直接收集运行agent server的各种指标,比如内存、cpu、磁盘、磁盘IO、进程、swap等。input配置都很简明易用,一般只需配置服务IP地址就可以,如redis指标收集配置:

    如果没有内置收集插件,有两种实现方案:

    开发input插件,但这需要有GO语言基础借助于httpjson input插件,该插件请求http url,返回json格式。url配置为自定义指标收集服务,在指标收集服务内实现指标收集功能,然后指标封装成json返回或指标数据直接在服务内入库。我们监控Kettle Carte、spark、jstorm等用的这种实现思路。output:将收集到的度量数据序列化存储,Telegraf指标由四个部分组成:度量、标签、字段、时间戳。支持以下存储结构:InfluxDB、Graphite、JSON,比如度量输出到InfluxDB的配置:

    urls:InfluxDB端口

    database:存储的数据库

    retention_policy:数据保留策略

    调度频率:所有指标收集频率是一样的,在配置文件agent项下配置:

    服务启动:

    --config:配置文件

    --config-directory:配置文件目录,如果有多个配置文件时使用

    InfluxDB

    InfluxDB是为时间序列构建的高性能数据存储,提供类SQL的查询语言、特定分析时间序列的功能。通过设置数据保留策略,自动从系统中删除过期数据,释放存储空间。社区版只支持单台服务器,会有单点故障风险,商业版版支持高可用,对我们来说,单机InfluxDB已经能满足需求。选择InfluxDB的原因:

    InflluxDB是用GO写的,编译后是一个完全无依赖的二进制文件,安装部署非常便捷,解压缩包即可高性能时间序列专有数据库,对时间序列的存储和查询都做了优化类SQL查询语言,降低使用门槛数据保留策略可以有效的自动清理过期数据 InfluxDB的数据是以shard groups形式存储,指定时间间隔的数据存储到一个shard groups里,这个时间间隔称为shardGroupDuration。

    服务启动:

    influx进入shell命令行:

    常用命令:

    show databases:查看所有数据库

    use db_name:进入数据库

    show measurements:显示数据库下所有度量

    select *from cpu limit 10:查询一个度量的数据

    Telegraf默认是将收集的数据持久化到telegraf这个数据库下,每个input对应一个度量表,比如zookeeper的指标数据就在zookeeper这个度量下:

    查询数据保留策略:

    duration:数据保留时间,0表示无限制,InfluxDB默认30分钟检查一次保留策略。ALTER RETENTION语句修改保留7天数据。

    replicaN:每个度量在集群里的副本数,副本保证数据高可用性,社区版(单节点)不支持副本数设置

    Java Client:

    Java Client对http api进行了封装,底层用Retrofit框架进行http请求,是线程安全的,只需在一个应用中创建一个InfluxDB Client对象。

    client的写操作支持batch,其实现原理:1、创建后台单线程定时调度任务,线程每隔一定时间发送请求:

    2、每次writer时,把请求放到BlockingQueue队列里,如果队列大于batch数,就启动线程发送请求:

    Client Api使用例子: 1、创建数据库连接:

    InfluxDB influxDB= InfluxDBFactory.connect(url, user, password);

    url:InfluxDB的地址和端口,比如 http://localhost:8086

    user/password:InfluxDB的用户名/密码

    2、设置访问的数据库:

    influxDB.setDatabase(database);

    3、数据写入:

    Point.Builder builder = Point.measurement(measurement);

    builder.tag(tags);

    builder.fields(fields);

    influxDB.write(builder.build());

    Grafana

    Grafana是一个指标查询、可视化、监控的开源应用,有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。

    Grafana主要特性:

    灵活丰富的图形化组件,包括热力图、直方图、地图等在同一dashboard内可以混合多种展示组件开源社区有大量的插件可供选择,包括数据源插件、图形插件、通知插件可以在同一个视图里使用多个不同数据源简单使用介绍:

    安装:下载&解压二进制包配置:配置文件:$GRAFANA_HOME$/conf配置端口号、Email、登录用户start:命令:/opt/grafana/bin/grafana-server start访问:http://ip:port连接数据源、图表开发、报警设置可参看官方文档本文为原创,欢迎分享到朋友圈。

  • ?

    2018年最值得推荐的6款大数据采集工具

    仲映阳

    展开

    数据肯定是无价的。但分析数据并非易事,因为结果越准确,成本就越高。鉴于数据急剧增长,需要一个过程来提供有意义的信息,最终变成实用的洞察力。

    数据挖掘是指这个过程:在庞大数据集当中发现模式,将它转换成有效的信息。该技术利用特定的算法、统计分析、人工智能和数据库系统,从庞大数据集中提取信息,并转换成易于理解的形式。本文介绍了广泛用于大数据行业的6种综合数据挖掘工具。

    1. Rapid Miner

    Rapid Miner是一个数据科学软件平台,为数据准备、机器学习、深度学习、文本挖掘和预测分析提供一种集成环境。它是领先的数据挖掘开源系统之一。

    该程序完全用Java编程语言编写。该程序提供了一个选项,以便用户试用大量可任意嵌套的操作符,这些操作符在XML文件中有详细说明,可由Rapid Miner的图形用户界面来构建。

    2. Oracle Data Mining

    它是Oracle高级分析数据库的代表。市场领先的公司用它最大限度地发掘数据的潜力,做出准确的预测。该系统配合强大的数据算法,锁定最佳客户。

    此外,它可识别异常情况和交叉销售机会,让用户能够根据需要运用不同的预测模型。此外,它以所需的方式定制客户画像。

    3. IBM SPSS Modeler

    说到大规模项目,IBM SPSS Modeler最适合。在这个建模器中,文本分析及其最先进的可视化界面极具价值。它有助于生成数据挖掘算法,基本上不需要编程。

    它可广泛用于异常检测、贝叶斯网络、CARMA、Cox回归以及使用多层感知器和反向传播学习的基本神经网络。

    4. KNIME

    Konstanz Information Miner是一个开源数据分析平台。你可以迅速在其中部署、扩展和熟悉数据。在商业智能界,KNIME号称是有助于为毫无经验的用户提供预测智能的平台。

    此外,数据驱动的创新系统有助于发掘数据潜力。此外,它包括数千个模块和随时可用的示例以及一大批集成的工具和算法。

    5. Python

    Python是一种免费的开源语言,因易用性常常与R相提并论。与R不同,Python学起来往往很容易上手,易于使用。许多用户发现可以在几分钟内开始构建数据,并进行极其复杂的亲和度分析。

    只要你熟悉变量、数据类型、函数、条件语句和循环等基本编程概念,最常见的业务用例数据可视化就很简单。

    6.火车采集器

    火车采集器由合肥乐维信息技术有限公司开发,是一款专业的网络数据采集/信息挖掘处理软件,通过灵活的配置,可以很轻松迅速地从网页上抓取结构化的文本、图片、文件等资源信息,可编辑筛选处理后选择发布到网站后台,各类文件或其他数据库系统中。

  • ?

    线下大数据智能采集投放平台

    施又亦

    展开

    智能硬件结合大数据优势,全方位挖掘用户线下、线上行为,精准定义目标客群特征、消费偏好、地域分布,为零售客户提供选址招商、运营管理、客群洞察、推广营销、实现 营销的“点对点”高效精准的传播,是新一代人工智能思维下的营销新武器。

    店内优化

    客流实时监测

    顾客质量和转化率

    顾客运动轨迹热点动图

    店内商品试用、转化率

    新客招募

    厘米级精准定位新客,信息采集分析

    对接各个广告平台,精准投放

    广告效果评估

    提高活动效果

    展示真实人流,轨迹动图,客观评估活动效果

    场景式营销,广告实时送达

    用户画像

    了解品牌受众,帮助品牌定位

    进店顾客人群画像采集

    人员、物品管理

    优化员工管理系统,监测到岗及工作时间

    贵重物品定位,防盗防损

    优化库存管理

    探针

    集探针,iBeacon,商品触碰探测为一体

    wifi与gprs两种上报信息方式

    搭载gps模块,采集地理位置信息

    出色的定位技术

    手机号与mac地址绑定方案

    平台化运作,提供丰富的上层接口给集成商

    解决方案

    购买地址:https://detail.1688/offer/551150997804.html?spm=b26110380.sw1688.mof001.1.b4WnET

    或阿里巴巴搜索:58数云、潜客宝

  • ?

    携程用户数据采集与分析系统

    颜败

    展开

    一、携程实时用户数据采集系统设计实践

    随着移动互联网的兴起,特别是近年来,智能手机、pad等移动设备凭借便捷、高效的特点风靡全球,同时各类APP的快速发展进一步降低了移动互联网的接入门槛,越来越多的网民开始从传统PC转移至移动终端上。但传统的基于PC网站和访问日志的用户数据采集系统已经无法满足实时分析用户行为、实时统计流量属性和基于位置服务(LBS)等方面的需求。

    我们针对传统用户数据采集系统在实时性、吞吐量、终端覆盖率等方面的不足,分析了在移动互联网流量剧增的背景下,用户数据采集系统的需求,研究在多种访问终端和多种网络类型的场景下,用户数据实时、高效采集的方法,并在此基础上设计和实现实时、有序和健壮的用户数据采集系统。此系统基于Java NIO网络通信框架(Netty)和分布式消息队列(Kafka)存储框架实现,其具有实时性、高吞吐、通用性好等优点。

    1、技术选型和设计方案:

    一个典型的数据采集分析统计平台,对数据的处理,主要由如下五个步骤组成:

    图1、数据平台处理流程

    其中,数据采集步骤是最核心的问题,数据采集是否丰富、准确和实时,都直接影响整个数据分析平台的应用的效果。本论文关注的步骤主要在数据采集、数据传输和数据建模存储这三部分。

    为满足数据采集服务实时、高效性、高吞吐量和安全性等方面的要求,同时能借鉴互联网大数据行业一些优秀开源的解决方案,所以整个系统都将基于Java技术栈进行设计和实现。整个数据采集分析平台系统架构如下图所示:

    图2(数据采集分析平台系统架构)

    其中整个平台系统主要包括以上五部分:客户端数据采集SDK以Http(s)/Tcp/Udp协议根据不同的网络环境按一定策略将数据发送到Mechanic(UBT-Collector)服务器。服务器对采集的数据进行一系列处理之后将数据异步写入Hermes(Kafka)分布式消息队列系统。为了关联业务服务端用户业务操作埋点、日志,业务服务器需要获取由客户端SDK统一生成的用户标识(C-GUID),然后业务服务器将用户业务操作埋点、日志信息以异步方式写入Hermes(Kafka)队列。最后数据消费分析平台,都从Hermes(Kafka)中消费采集数据,进行数据实时或者离线分析。其中Mechanic(UBT-Collector)系统还包括对采集数据和自身系统的监控,这些监控信息先写入Hbase集群,然后通过Dashboard界面进行实时监控。

    (1)基于NIO的Netty网络框架方案

    要满足前面提到的高吞吐、高并发和多协议支持等方面的要求。我们调研了几种开源异步IO网络服务组件(如Netty、MINI、xSocket),用它们和NginxWeb服务器进行了性能对比,决定采用Netty作为采集服务网络组件。下面对它进行一些概要介绍:Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。

    图3(Netty框架内部组件逻辑结构)

    Netty的优点有:

    a、功能丰富,内置了多种数据编解码功能、支持多种网络协议。

    b、高性能,通过与其它主流NIO网络框架对比,它的综合性能最佳。

    c、可扩展性好,可通过它提供的ChannelHandler组件对网络通信方面进行灵活扩展。

    d、易用性,API使用简单。

    e、经过了许多商业应用的考验,在互联网、网络游戏、大数据、电信软件等众多行业得到成功商用。

    Netty采用了典型的三层网络架构进行设计,逻辑架构图如下:

    图4(Netty三层网络逻辑架构)

    第一层:Reactor通信调度层。该层的主要职责就是监听网络的连接和读写操作,负责将网络层的数据读取到内存缓冲区中,然后触发各种网络事件,例如连接创建、连接激活、读事件、写事件等,将这些事件触发到Pipeline中,再由Pipeline充当的职责链来进行后续的处理。

    第二层:职责链Pipeline层。负责事件在职责链中有序的向前(后)传播,同时负责动态的编排职责链。Pipeline可以选择监听和处理自己关心的事件。

    第三层:业务逻辑处理层,一般可分为两类:a. 纯粹的业务逻辑处理,例如日志、订单处理。b. 应用层协议管理,例如HTTP(S)协议、FTP协议等。

    我们都知道影响网络服务通信性能的主要因素有:网络I/O模型、线程(进程)调度模型和数据序列化方式。

    在网络I/O模型方面,Netty采用基于非阻塞I/O的实现,底层依赖的是JDKNIO框架的Selector。

    在线程调度模型方面,Netty采用Reactor线程模型。常用的Reactor线程模型有三种,分别是:

    a、Reactor单线程模型:Reactor单线程模型,指的是所有的I/O操作都在同一个NIO线程上面完成。对于一些小容量应用场景,可以使用单线程模型。

    b、Reactor多线程模型:Rector多线程模型与单线程模型最大的区别就是有一组NIO线程处理I/O操作。主要用于高并发、大业务量场景。

    c、主从Reactor多线程模型:主从Reactor线程模型的特点是服务端用于接收客户端连接的不再是一个单独的NIO线程,而是一个独立的NIO线程池。利用主从NIO线程模型,可以解决一个服务端监听线程无法有效处理所有客户端连接的性能不足问题。Netty线程模型并非固定不变的,它可以支持三种Reactor线程模型。

    在数据序列化方面,影响序列化性能的主要因素有:

    a、序列化后的码流大小(网络带宽占用)。

    b、序列化和反序列化操作的性能(CPU资源占用)。

    c、并发调用时的性能表现:稳定性、线性增长等。

    Netty默认提供了对GoogleProtobuf二进制序列化框架的支持,但通过扩展Netty的编解码接口,可以实现其它的高性能序列化框架,例如Avro、Thrift的压缩二进制编解码框架。

    通过对Netty网络框架的分析研究以及对比测试(见后面的可行性分析测试报告)可判断,基于Netty的数据采集方案能解决高数据吞吐量和数据实时收集的难点。

    》》点击阅读全文

  • ?

    基于大数据平台的数据分析

    千顷寒

    展开

    标签 | 大数据 架构

    作者 | 张逸

    无论是采集数据,还是存储数据,都不是大数据平台的最终目标。失去数据处理环节,即使珍贵如金矿一般的数据也不过是一堆废铁而已。数据处理是大数据产业的核心路径,然后再加上最后一公里的数据可视化,整个链条就算彻底走通了。

    数据处理的分类

    如下图所示,我们可以从业务、技术与编程模型三个不同的视角对数据处理进行归类:

    业务角度的分类与具体的业务场景有关,但最终会制约技术的选型,尤其是数据存储的选型。例如,针对查询检索中的全文本搜索,ElasticSearch会是最佳的选择,而针对统计分析,则因为统计分析涉及到的运算,可能都是针对一列数据,例如针对销量进行求和运算,就是针对销量这一整列的数据,此时,选择列式存储结构可能更加适宜。

    在技术角度的分类中,严格地讲,SQL方式并不能分为单独的一类,它其实可以看做是对API的封装,通过SQL这种DSL来包装具体的处理技术,从而降低数据处理脚本的迁移成本。毕竟,多数企业内部的数据处理系统,在进入大数据时代之前,大多以SQL形式来访问存储的数据。大体上,SQL是针对MapReduce的包装,例如Hive、Impala或者Spark SQL。

    Streaming流处理可以实时地接收由上游源源不断传来的数据,然后以某个细小的时间窗口为单位对这个过程中的数据进行处理。消费的上游数据可以是通过网络传递过来的字节流、从HDFS读取的数据流,又或者是消息队列传来的消息流。通常,它对应的就是编程模型中的实时编程模型。

    机器学习与深度学习都属于深度分析的范畴。随着Google的AlphaGo以及TensorFlow框架的开源,深度学习变成了一门显学。我了解不多,这里就不露怯了。

    机器学习与常见的数据分析稍有不同,通常需要多个阶段经历多次迭代才能得到满意的结果。下图是深度分析的架构图:

    针对存储的数据,需要采集数据样本并进行特征提取,然后对样本数据进行训练,并得到数据模型。倘若该模型经过测试是满足需求的,则可以运用到数据分析场景中,否则需要调整算法与模型,再进行下一次的迭代。

    编程模型中的离线编程模型以Hadoop的MapReduce为代表,内存编程模型则以Spark为代表,实时编程模型则主要指的是流处理,当然也可能采用Lambda架构,在Batch Layer(即离线编程模型)与Speed Layer(实时编程模型)之间建立Serving Layer,利用空闲时间与空闲资源,又或者在写入数据的同时,对离线编程模型要处理的大数据进行预先计算(聚合),从而形成一种融合的视图存储在数据库中(如HBase),以便于快速查询或计算。

    场景驱动数据处理

    不同的业务场景(业务场景可能出现混合)需要的数据处理技术不尽相同,因而在一个大数据系统下可能需要多种技术(编程模型)的混合。

    场景1:某厂商的舆情分析

    某厂商在实施舆情分析时,根据基于需求,与数据处理有关的部分就包括:语义分析、全文本搜索与统计分析。通过网络爬虫抓取过来的数据会写入到Kafka,而消费端则通过Spark Streaming对数据进行去重去噪,之后交给SAS的ECC服务器进行文本的语义分析。分析后的数据会同时写入到HDFS(Parquet格式的文本)和ElasticSearch。同时,为了避免因为去重去噪算法的误差而导致部分有用数据被“误杀”,在MongoDB中还保存了一份全量数据。如下图所示:

    场景2:Airbnb的大数据平台

    Airbnb的大数据平台也根据业务场景提供了多种处理方式,整个平台的架构如下图所示:

    Panoramix(现更名为Caravel)为Airbnb提供数据探查功能,并对结果进行可视化,Airpal则是基于Web的查询执行工具,它们的底层都是通过Presto对HDFS执行数据查询。Spark集群则为Airbnb的工程师与数据科学家提供机器学习与流处理的平台。

    大数据平台的整体结构

    行文至此,整个大数据平台系列的讲解就快结束了。最后,我结合数据源、数据采集、数据存储与数据处理这四个环节给出了一个整体结构图,如下图所示:

    这幅图以查询检索场景、OLAP场景、统计分析场景与深度分析场景作为核心的四个场景,并以不同颜色标识不同的编程模型。从左到右,经历数据源、数据采集、数据存储和数据处理四个相对完整的阶段,可供大数据平台的整体参考。

  • ?

    干货丨大数据是如何被采集及应用的

    Osborn

    展开

    尽管“大数据”一词近年来屡遭热捧

    但很多人都还不知道什么是大数据

    更不知道大数据有甚卵用

    这两年,发现“大数据”这个词出现的越来越频繁了

    不仅企业,连国家都在部署大数据战略

    一番百度了之后

    Oh~ emmmmmmmmm~ +_+

    还是没搞懂大数据到底是个什么玩意儿

    直到有一天

    我发现一个秘密

    不管我在网上搜索什么

    页面都会跳出我要搜索的相关产品或关联事物

    然后,我恍然大悟!

    所谓大数据,就是算法!

    它能够“算”出我们“心中所想”

    那么问题来了

    大数据技术是如何采集到我们的信息的呢?

    数据采集,又称数据获取,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。在互联网行业快速发展的今天,数据采集已经被广泛应用于互联网及分布式领域,比如摄像头,麦克风,都是数据采集工具。

    数据采集系统整合了信号、传感器、激励器、信号调理、数据采集设备和应用软件。在数据大爆炸的互联网时代,数据的类型也是复杂多样的,包括结构化数据、半结构化数据、非结构化数据。结构化最常见,就是具有模式的数据。非结构化数据是数据结构不规则或不完整,没有预定义的数据模型,包括所有格式的办公文档、文本、图片、XML, HTML、各类报表、图像和音频/视频信息等等。大数据采集,是大数据分析的入口,所以是相当重要的一个环节。

    我们首先来了解一下数据采集的三大要点:

    一、数据采集的三大要点

    (1)全面性

    数据量足够具有分析价值、数据面足够支撑分析需求。

    比如对于“查看商品详情”这一行为,需要采集用户触发时的环境信息、会话、以及背后的用户id,最后需要统计这一行为在某一时段触发的人数、次数、人均次数、活跃比等。

    (2)多维性

    数据更重要的是能满足分析需求。灵活、快速自定义数据的多种属性和不同类型,从而满足不同的分析目标。

    比如“查看商品详情”这一行为,通过埋点,我们才能知道用户查看的商品是什么、价格、类型、商品id等多个属性。从而知道用户看过哪些商品、什么类型的商品被查看的多、某一个商品被查看了多少次。而不仅仅是知道用户进入了商品详情页。

    (3)高效性

    高效性包含技术执行的高效性、团队内部成员协同的高效性以及数据分析需求和目标实现的高效性。也就是说采集数据一定要明确采集目的,带着问题搜集信息,使信息采集更高效、更有针对性。此外,还要考虑数据的及时性。

    不同应用领域的大数据其特点、数据量、用户群体均不相同。不同领域根据数据源的物理性质及数据分析的目标采取不同的数据采集方法。

    那么,接下来我们再来了解一下常用的数据采集的方法。

    常用的数据采集方法归结为以下三类:传感器、日志文件、网络爬虫。

    (1)传感器

    传感器通常用于测量物理变量,一般包括声音、温湿度、距离、电流等,将测量值转化为数字信号,传送到数据采集点,让物体有了触觉、味觉和嗅觉等感官,让物体慢慢变得活了起来。

    (2)系统日志采集方法

    日志文件数据一般由数据源系统产生,用于记录数据源的执行的各种操作活动,比如网络监控的流量管理、金融应用的股票记账和 web 服务器记录的用户访问行为。

    很多互联网企业都有自己的海量数据采集工具,多用于系统日志采集,如Hadoop的Chukwa,Cloudera的Flume,Facebook的Scribe等,这些工具均采用分布式架构,能满足每秒数百MB的日志数据采集和传输需求。

    (3)Web 爬虫

    网络爬虫是指为搜索引擎下载并存储网页的程序,它是搜索引擎和 web 缓存的主要的数据采集方式。通过网络爬虫或网站公开API等方式从网站上获取数据信息。该方法可以将非结构化数据从网页中抽取出来,将其存储为统一的本地数据文件,并以结构化的方式存储。它支持图片、音频、视频等文件或附件的采集,附件与正文可以自动关联。

    此外,对于企业生产经营数据上的客户数据,财务数据等保密性要求较高的数据,可以通过与数据技术服务商合作,使用特定系统接口等相关方式采集数据。比如八度云计算的数企BDSaaS,无论是数据采集技术、BI数据分析,还是数据的安全性和保密性,都做的很好。

    数据的采集是挖掘数据价值的第一步,当数据量越来越大时,可提取出来的有用数据必然也就更多。只要善用数据化处理平台,便能够保证数据分析结果的有效性,助力企业实现数据驱动。

  • ?

    六大主流大数据采集平台架构分析

    Ju1024

    展开

    随着大数据越来越被重视,数据采集的挑战变的尤为突出。今天为大家介绍几款数据采集平台:

    Apache Flume Fluentd Logstash Chukwa Scribe Splunk Forwarder

    大数据平台与数据采集

    任何完整的大数据平台,一般包括以下的几个过程:

    数据采集–>数据存储–>数据处理–>数据展现(可视化,报表和监控)

    其中,数据采集是所有数据系统必不可少的,随着大数据越来越被重视,数据采集的挑战也变的尤为突出。这其中包括:

    我们今天就来看看当前可用的六款数据采集的产品,重点关注它们是如何做到高可靠,高性能和高扩展。

    1、Apache Flume

    Flume 是Apache旗下的一款开源、高可靠、高扩展、容易管理、支持客户扩展的数据采集系统。 Flume使用JRuby来构建,所以依赖Java运行环境。

    Flume最初是由Cloudera的工程师设计用于合并日志数据的系统,后来逐渐发展用于处理流数据事件。

    Flume设计成一个分布式的管道架构,可以看作在数据源和目的地之间有一个Agent的网络,支持数据路由。

    每一个agent都由Source,Channel和Sink组成。

    Source

    Source负责接收输入数据,并将数据写入管道。Flume的Source支持HTTP,JMS,RPC,NetCat,Exec,Spooling Directory。其中Spooling支持监视一个目录或者文件,解析其中新生成的事件。

    Channel

    Channel 存储,缓存从source到Sink的中间数据。可使用不同的配置来做Channel,例如内存,文件,JDBC等。使用内存性能高但不持久,有可能丢数据。使用文件更可靠,但性能不如内存。

    Sink

    Sink负责从管道中读出数据并发给下一个Agent或者最终的目的地。Sink支持的不同目的地种类包括:HDFS,HBASE,Solr,ElasticSearch,File,Logger或者其它的Flume Agent。

    Flume在source和sink端都使用了transaction机制保证在数据传输中没有数据丢失。

    Source上的数据可以复制到不同的通道上。每一个Channel也可以连接不同数量的Sink。这样连接不同配置的Agent就可以组成一个复杂的数据收集网络。通过对agent的配置,可以组成一个路由复杂的数据传输网络。

    配置如上图所示的agent结构,Flume支持设置sink的Failover和Load Balance,这样就可以保证即使有一个agent失效的情况下,整个系统仍能正常收集数据。

    Flume中传输的内容定义为事件(Event),事件由Headers(包含元数据,Meta Data)和Payload组成。

    Flume提供SDK,可以支持用户定制开发:

    Flume客户端负责在事件产生的源头把事件发送给Flume的Agent。客户端通常和产生数据源的应用在同一个进程空间。常见的Flume 客户端有Avro,log4J,syslog和HTTP Post。另外ExecSource支持指定一个本地进程的输出作为Flume的输入。当然很有可能,以上的这些客户端都不能满足需求,用户可以定制的客户端,和已有的FLume的Source进行通信,或者定制实现一种新的Source类型。

    同时,用户可以使用Flume的SDK定制Source和Sink。似乎不支持定制的Channel。

    2、Fluentd

    Fluentd是另一个开源的数据收集框架。Fluentd使用C/Ruby开发,使用JSON文件来统一日志数据。它的可插拔架构,支持各种不同种类和格式的数据源和数据输出。最后它也同时提供了高可靠和很好的扩展性。Treasure Data, Inc 对该产品提供支持和维护。

    Fluentd的部署和Flume非常相似:

    Fluentd的架构设计和Flume如出一辙:

    Fluentd的Input/Buffer/Output非常类似于Flume的Source/Channel/Sink。

    Input

    Input负责接收数据或者主动抓取数据。支持syslog,http,file tail等。

    Buffer

    Buffer负责数据获取的性能和可靠性,也有文件或内存等不同类型的Buffer可以配置。

    Output

    Output负责输出数据到目的地例如文件,AWS S3或者其它的Fluentd。

    Fluentd的配置非常方便,如下图:

    Fluentd的技术栈如下图:

    FLuentd和其插件都是由Ruby开发,MessgaePack提供了JSON的序列化和异步的并行通信RPC机制。

    Cool.io是基于libev的事件驱动框架。

    FLuentd的扩展性非常好,客户可以自己定制(Ruby)Input/Buffer/Output。

    Fluentd从各方面看都很像Flume,区别是使用Ruby开发,Footprint会小一些,但是也带来了跨平台的问题,并不能支持Windows平台。另外采用JSON统一数据/日志格式是它的另一个特点。相对去Flumed,配置也相对简单一些。

    3、Logstash

    Logstash是著名的开源数据栈ELK (ElasticSearch, Logstash, Kibana)中的那个L。

    Logstash用JRuby开发,所有运行时依赖JVM。

    Logstash的部署架构如下图,当然这只是一种部署的选项。

    一个典型的Logstash的配置如下,包括了Input,filter的Output的设置。

    几乎在大部分的情况下ELK作为一个栈是被同时使用的。所有当你的数据系统使用ElasticSearch的情况下,logstash是首选。

    4、Chukwa

    官网:https://chukwa.apache.org/

    Apache Chukwa是apache旗下另一个开源的数据收集平台,它远没有其他几个有名。Chukwa基于Hadoop的HDFS和Map Reduce来构建(显而易见,他用Java来实现),提供扩展性和可靠性。Chukwa同时提供对数据的展示,分析和监视。很奇怪的是它的上一次 github的更新事7年前。可见该项目应该已经不活跃了。

    Chukwa的部署架构如下:

    Chukwa的主要单元有:Agent,Collector,DataSink,ArchiveBuilder,Demux等等,看上去相当复杂。由于该项目已经不活跃,我们就不细看了。

    5、Scribe

    代码托管:https://github/facebookarchive/scribe

    Scribe是Facebook开发的数据(日志)收集系统。已经多年不维护,同样的,就不多说了。

    6、Splunk Forwarder

    以上的所有系统都是开源的。在商业化的大数据平台产品中,Splunk提供完整的数据采金,数据存储,数据分析和处理,以及数据展现的能力。

    Splunk是一个分布式的机器数据平台,主要有三个角色:

    Search Head负责数据的搜索和处理,提供搜索时的信息抽取。

    Indexer负责数据的存储和索引 Forwarder,负责数据的收集,清洗,变形,并发送给Indexer

    Splunk内置了对Syslog,TCP/UDP,Spooling的支持,同时,用户可以通过开发 Input和Modular Input的方式来获取特定的数据。在Splunk提供的软件仓库里有很多成熟的数据采集应用,例如AWS,数据库(DBConnect)等等,可以方便的从云或者是数据库中获取数据进入Splunk的数据平台做分析。

    这里要注意的是,Search Head和Indexer都支持Cluster的配置,也就是高可用,高扩展的,但是Splunk现在还没有针对Farwarder的Cluster的功能。也就是说如果有一台Farwarder的机器出了故障,数据收集也会随之中断,并不能把正在运行的数据采集任务Failover到其它的 Farwarder上。

    总结

    我们简单讨论了几种流行的数据收集平台,它们大都提供高可靠和高扩展的数据收集。大多平台都抽象出了输入,输出和中间的缓冲的架构。利用分布式的网络连接,大多数平台都能实现一定程度的扩展性和高可靠性。

    其中Flume,Fluentd是两个被使用较多的产品。如果你用ElasticSearch,Logstash也许是首选,因为ELK栈提供了很好的集成。Chukwa和Scribe由于项目的不活跃,不推荐使用。

    Splunk作为一个优秀的商业产品,它的数据采集还存在一定的限制,相信Splunk很快会开发出更好的数据收集的解决方案。

大数据采集分析平台

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP