随着时代的发展,以大数据,人工智能,物联网,5G等词汇风靡全球,在网络的普及下,人类产生的数据量正在日益增长,大约每两年翻一番。面对如此巨大的数据,与之相关的采集、存储、分析等等环节产生了一系列的问题。如何收集这些数据并且进行转换分析存储以及有效率的分析成为巨大的挑战,需要有这样一个系统用来收集这样的数据,并且对数据进提取、转换、加载。
ETL,是英文 Extract-Transform-Load 的缩写,数据从数据来源端经过抽取(extract)、转换(transform)、加载(load)到目的端,然后进行处理分析的过程。用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据模型,将数据加载到数据仓库中去,最后对数据仓库中的数据进行数据分析和处理。数据采集位于数据分析生命周期的重要一环,它通过传感器数据、社交网络数据、移动互联网数据等方式获得各种类型的结构化、半结构化及非结构化的海量数据。由于采集的数据种类错综复杂,对于这种不同种类的数据。我们进行数据分析,必须通过提取技术。将复杂格式的数据,进行数据提取,从数据原始格式中提取(extract)出我们需要的数据,这里可以丢弃一些不重要的字段。对于数据提取后的数据,由于数据源头的采集可能存在不准确。所以我们必须进行数据清洗,对于那些不正确的数据进行过滤、剔除。针对不同的应用场景,对数据进行分析的工具或者系统不同,我们还需要对数据进行数据转换(transform)操作,将数据转换成不同的数据格式,最终按照预先定义好的数据仓库模型,将数据加载(load)到数据仓库中去。
在现实生活中,数据产生的种类很多,并且不同种类的数据产生的方式不同。对于大数据采集系统,主要分为以下三类系统:
一、系统日志采集系统。许多公司的业务平台每天都会产生大量的日志数据。对于这些日志信息,我们可以得到出很多有价值的数据。通过对这些日志信息进行日志采集、收集,然后进行数据分析,挖掘公司业务平台日志数据中的潜在价值。为公司决策和公司后台服务器平台性能评估提高可靠的数据保证。系统日志采集系统做的事情就是收集日志数据提供离线和在线的实时分析使用。目前常用的开源日志收集系统有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语句,对数据仓库中的数据进行简要分析与计算。
在大数据采技术中,其中有一个关键的环节就是transform操作。它将清洗后的
数据转换成不同的数据形式,由不同的数据分析系统和计算系统进行处理和分析。
更多产品了解
欢迎扫码加入云巴巴企业数字化交流服务群
产品交流、问题咨询、专业测评
都在这里!
在数字化转型的浪潮中,企业面临着选择合适敏捷研发协同平台的挑战。一个合适的平台不仅能提升研发效率,还能保障项目质量,快速响应市场变化。本文将探讨选择敏捷研发协同平台时应考虑的关键因素,并特别推荐腾讯TAPD作为解决方案。
在敏捷项目管理工具的激烈竞争中,腾讯敏捷项目管理平台(TAPD)以其全面的功能和独特的优势成为众多企业的首选。本文将深入探讨TAPD相较于其他敏捷工具的独特优势,以及这些优势如何助力企业提升研发效率和项目管理能力。
在数字化转型的浪潮中,敏捷研发协同平台成为了企业提升研发效率、保障项目质量的关键工具。然而,在选择这一平台时,企业往往会陷入一些常见的误区。本文将探讨这些误区,并提供清晰的逻辑和明确的思路,帮助企业做出更明智的选择。
金融行业在数字化转型的浪潮中,面临着组织管理、风险管控、职级晋升等一系列挑战。选择合适的人事管理软件对于提升效率、确保合规性以及优化人才管理至关重要。以下是两款专为金融行业设计的人事SaaS产品,它们以其独特的功能和优势,帮助金融企业实现数字化转型和人力资源管理的优化。
在如今电子支付日益普及的时代,我们的消费行为大多依赖于各大支付机构,如支付宝、微信支付等。然而,在电子支付蓬勃发展的背后,仍存在一些不容忽视的风险。不法分子或许会利用虚假交易或钓鱼网站诱导我们使用第三方支付机构进行支付,从而实施诈骗。