热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

怎么将ETL技术落地

ETL概述ETL(Extraction-Transformation-Loading)是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准

ETL概述

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

 

 

 


数据治理流程

 

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

 

 


1)数据的采集

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

 


2)数据的传输

一般会通过队列方式进行,因为数据量实在是太大了,数据必须经过处理才会有用,可是系统处理不过来,只好排好队,慢慢的处理。

 


3)数据的存储

现在数据就是金钱,掌握了数据就相当于掌握了钱。要不然网站怎么知道你想买什么呢?就是因为它有你历史的交易的数据,这个信息可不能给别人,十分宝贵,所以需要存储下来。

 


4)数据的清洗和分析

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

 

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

 


5)数据的检索和挖掘

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

 


6)数据的加载与应用

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

 


数据治理工具类


1)数据采集工具

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在优势、劣势

 

2、针对爬虫类

 

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

(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)数据清洗工具

1、DataWrangler

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

2、Google Refine

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

3、Logstash

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


3)数据存储工具

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

1、结构化数据

(1)定义

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

(2)存储系统

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

2、非结构化数据

(1)定义

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

(2)存储方式

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

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


4)数据计算工具

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

1、数据实时计算

Apache Storm

2、数据在线计算

Elasticsearch

MySQL

3、数据离线计算

HaDoop Hive

 


5)数据分析工具

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

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

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


6)数据加载工具

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

2、常用的BI可视化工具:Tableu和帆软

3、ECharts

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

阅读推荐

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

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

深度探讨知识图谱建模

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

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

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

说框架设计思路

老王说架构

FaaS技术架构

从URL到看到网页的过程



推荐阅读
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • 一份来自清华的数据分析笔记,请查收!
    之前发过很多数据分析的文章,收到不少好评,但也有一些困惑:入门数据分析该学哪些知识点?该看哪些书?是从Pyth ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 数据结构与算法的重要性及基本概念、存储结构和算法分析
    数据结构与算法在编程领域中的重要性不可忽视,无论从事何种岗位,都需要掌握数据结构和算法。本文介绍了数据结构与算法的基本概念、存储结构和算法分析。其中包括线性结构、树结构、图结构、栈、队列、串、查找、排序等内容。此外,还介绍了图论算法、贪婪算法、分治算法、动态规划、随机化算法和回溯算法等高级数据结构和算法。掌握这些知识对于提高编程能力、解决问题具有重要意义。 ... [详细]
  • cs231n Lecture 3 线性分类笔记(一)
    内容列表线性分类器简介线性评分函数阐明线性分类器损失函数多类SVMSoftmax分类器SVM和Softmax的比较基于Web的可交互线性分类器原型小结注:中文翻译 ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • Python入门后,想要从事自由职业可以做哪方面工作?1.爬虫很多人入门Python的必修课之一就是web开发和爬虫。但是这两项想要赚钱的话 ... [详细]
  • 支持向量机训练集多少个_25道题检测你对支持向量机算法的掌握程度
    介绍在我们学习机器算法的时候,可以将机器学习算法视为包含刀枪剑戟斧钺钩叉的一个军械库。你可以使用各种各样的兵器,但你要明白这些兵器是需要在合适的时间合理 ... [详细]
  • plt python 画直线_机器学习干货,一步一步通过Python实现梯度下降的学习
    GradientDescent-梯度下降梯度下降法(英语:Gradientdescent)是一个一阶最优化算法,通常也称为最速下降法。要使用梯度下降法找 ... [详细]
author-avatar
一鳞半爪恋歌
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有