怎么将ETL技术落地

ETL概述javascript

ETL(Extraction-Transformation-Loading)是将业务系统的数据通过抽取、清洗转换以后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一块儿,为企业的决策提供分析依据, ETL是BI(商业智能)项目重要的一个环节。css

 

 

 

数据治理流程

 

数据挖掘通常是指从大量的数据中经过算法搜索隐藏于其中信息的过程。它一般与计算机科学有关,并经过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。它的分析方法包括:分类、估计、预测、相关性分组或关联规则、聚类和复杂数据类型挖掘。html

 

 

1)数据的采集

首先得有数据,数据的收集有两个方式,第一个方式是拿,专业点的说法叫抓取或者爬取,例如搜索引擎就是这么作的,它把网上的全部的信息都下载到它的数据中心,而后你一搜才能搜出来。html5

 

2)数据的传输

通常会经过队列方式进行,由于数据量实在是太大了,数据必须通过处理才会有用,但是系统处理不过来,只好排好队,慢慢的处理。java

 

3)数据的存储

如今数据就是金钱,掌握了数据就至关于掌握了钱。要否则网站怎么知道你想买什么呢?就是由于它有你历史的交易的数据,这个信息可不能给别人,十分宝贵,因此须要存储下来。python

 

4)数据的清洗和分析

上面存储的数据是原始数据,原始数据可能是杂乱无章的,有不少垃圾数据在里面,于是须要清洗和过滤,获得一些高质量的数据。对于高质量的数据,就能够进行分析,从而对数据进行分类,或者发现数据之间的相互关系,获得知识。mysql

 

注:第三与第四个步骤,现存后清洗和先清洗再存,在真是的业务场景中能够适当互换。算法

 

5)数据的检索和挖掘

检索就是搜索,所谓外事问google,内事问百度。挖掘,仅仅搜索出来已经不能知足人们的要求了,还须要从信息中挖掘出相互的关系。sql

 

6)数据的加载与应用

怎么友好的展现与传递给用户为数据挖掘工做作好闭环。mongodb

 

数据治理工具类

1)数据采集工具

一、针对日志文件类

工具

定义

Logstash

Logstash是一个开源数据收集引擎,具备实时管道功能。Logstash能够动态地未来自不一样数据源的数据统一块儿来,并将数据标准化到所选择的目的地。

Filebeat

Filebeat 做为一个轻量级的日志传输工具能够将日志推送到中心 Logstash。

Fluentd

Fluentd 建立的初衷主要是尽量的使用 JSON 做为日志输出,因此传输工具及其下游的传输线不须要猜想子字符串里面各个字段的类型。这样,它为几乎全部的语言都提供库,便可以将它插入到自定义的程序中。

Logagent

Logagent 是 Sematext 提供的传输工具,它用来将日志传输到 Logsene(一个基于SaaS 平台的 Elasticsearch API)。

Rsylog

绝大多数 Linux 发布版本默认的守护进程,rsyslog 读取并写入 /var/log/messages。它能够提取文件、解析、缓冲(磁盘和内存)以及将它们传输到多个目的地,包括 Elasticsearch 。能够今后处找到如何处理 Apache 以及系统日志。

Logtail

阿里云日志服务的生产者,目前在阿里集团内部机器上运行,通过3年多时间的考验,目前为阿里公有云用户提供日志收集服务。

 

关于详解日志采集工具Logstash、Filebeat、Fluentd、Logagent、Rsylog和Logtail在优点、劣势

 

二、针对爬虫类

 

页面下载 --> 页面解析 --> 数据存储

(1)页面下载器

对于下载器而言,python的库requests能知足大部分测试+抓取需求,进阶工程化scrapy,动态网页优先找API接口,若是有简单加密就破解,实在困难就使用splash渲染。

(2)页面解析器

①BeautifulSoup(入门级):Python爬虫入门BeautifulSoup模块

②pyquery(相似jQuery):Python爬虫:pyquery模块解析网页

③lxml:Python爬虫:使用lxml解析网页内容

④parsel:Extract text using CSS or XPath selectors

⑤scrapy的Selector (强烈推荐, 比较高级的封装,基于parsel)

⑥选择器(Selectors):python爬虫:scrapy框架xpath和css选择器语法

--------------------- 

总结:

解析器直接使用scrapy的Selector 就行,简单、直接、高效。

(3)数据存储

①txt文本:Python全栈之路:文件file经常使用操做

②csv文件:python读取写入csv文件

③sqlite3 (python自带):Python编程:使用数据库sqlite3

④MySQL:SQL:pymysql模块读写mysql数据

⑤MongoDB:Python编程:mongodb的基本增删改查操做

--------------------- 

总结:

数据存储没有什么可深究的,按照业务需求来就行,通常快速测试使用MongoDB,业务使用MySQL

(4)其余工具

①execjs :执行js

Python爬虫:execjs在python中运行javascript代码

②pyv8: 执行js

mac安装pyv8模块-JavaScript翻译成python

③html5lib

Python爬虫:scrapy利用html5lib解析不规范的html文本

 

2)数据清洗工具

一、DataWrangler

基于网络的服务是斯坦福大学的可视化组设计来清洗和重排数据的.文本编辑很是简单。例如,当我选择大标题为“Reported crime in Alabama”的样本数据的某行的“Alabama”,而后选择另外一组数据的“Alaska”,它会建议提取每州的名字。把鼠标停留在建议上,就能够看到用红色突出显示的行。

二、Google Refine

它能够导入导出多种格式的数据,如标签或逗号分隔的文本文件、Excel、XML和JSON文件。Refine设有内置算法,能够发现一些拼写不同但实际上应分为一组的文本。导入你的数据后,选择编辑单元格->聚类,编辑,而后选择要用的算法。数据选项,提供快速简单的数据分布概貌。这个功能能够揭示那些可能因为输入错误致使的异常——例如,工资记录不是80,000美圆而居然是800,000美圆;或指出不一致的地方——例如薪酬数据记录之间的差别,有的是计时工资,有的是每周支付,有的是年薪。除了数据管家功能,Google Refine还提供了一些有用的分析工具,例如排序和筛选。

三、Logstash

Logstash 是一款强大的数据处理工具,它能够实现数据传输,格式处理,格式化输出,还有强大的插件功能,经常使用于日志处理。

3)数据存储工具

数据存储主要分为结构化数据的存储和非结构化数据的存储。

一、结构化数据

(1)定义

通常指存储在数据库中,具备必定逻辑结构和物理结构的数据,最为常见的是存储在关系数据库中的数据;非结构化数据:通常指结构化数据之外的数据,这些数据不存储在数据库中,而是以各类类型的文本形式存放,其中Web上的一些数据(内嵌于HTML或XML标记中)又具备必定的逻辑结构和物理结构,被称为半结构数据。

(2)存储系统

目前比较成熟的结构化存储系统有Oracle、MySQL、Hadoop等。

二、非结构化数据

(1)定义

非结构化数据是数据结构不规则或不完整,没有预约义的数据模型,不方便用数据库二维逻辑表来表现的数据。包括全部格式的办公文档、文本、图片、XML, HTML、各种报表、图像和音频/视频信息等等。

(2)存储方式

1)使用文件系统存储文件,而在数据库中存储访问路径。这种方式的优势是实现简单,不须要DBMS的高级功能,可是这种方式没法实现文件的事务性访问,不便于数据备份和恢复,不便于数据迁移等; 

2)使用阿里云OSS的文件存储功能。

4)数据计算工具

数据计算分为实时计算、在线计算、离线计算。

一、数据实时计算

Apache Storm

二、数据在线计算

Elasticsearch

MySQL

三、数据离线计算

HaDoop Hive

 

5)数据分析工具

一、对数据矩阵科学计算:Python的numpy库

二、对数据切片等常规处理:强大的pandas库

三、对数据建模处理:sklearn库

6)数据加载工具

一、数据的可视化处理:Python中的matplotlib和seaborn库

二、经常使用的BI可视化工具:Tableu和帆软

三、ECharts

——————————————

阅读推荐

【大厂】基于rabbitMQ消息中心技术方案

【干货】一篇文章讲透数据挖掘

深度探讨知识图谱建模

【数据中台】数据中心建设规划

【流媒体】ffmpeg+HLS实现直播与回放

技术不能凌驾于业务,但能够引导业务

说框架设计思路

老王说架构

FaaS技术架构

从URL到看到网页的过程

相关文章
相关标签/搜索