R语言ETL工程系列:总论

本文是R语言ETL工程系列的开篇,主要介绍了ETL(提取、转换、加载)的基本概念,强调了R语言在数据预处理中的优势,特别是dplyr包的高效性和易用性。文章指出,虽然SQL在ETL中占据重要地位,但R语言的tidyverse包提供了一种更便捷的解决方案,有助于数据科学家提高工作效率。

640?wx_fmt=gif

作者黄天元,复旦大学博士在读,目前研究涉及文本挖掘、社交网络分析和机器学习等。希望与大家分享学习经验,推广并加深R语言在业界的应用。

邮箱:huang.tian-yuan@qq.com


前言

本篇是R语言ETL工程系列的第一篇,这个系列我们将讨论如何使数据预处理简洁便捷,本系列的宗旨是让这个过程显得更加轻松,让初学者快速入门这些基本概念和操作。


什么是ETL

我刚开始注意到ETL这个词的时候,是搜招聘信息的时候。我发现很多公司招人的时候有要求需要会ETL技术,于是进行了更加深入的了解。ETLExtract,Transfer,Load的简称,翻译成中文是提取、转换、加载。

640?wx_fmt=jpeg

广义的ETL技术包括数据的存储管理、规范化、审查等等。本系列指的ETL是狭义的ETL技术,也就是针对一个数据科学家,如果手头已经有了数据,如何把这份数据通过加载、形式的转化,最后得到一份直接能够进行分析的数据表格。
ETL这个过程在业界也有很多别称:数据清洗、数据整形、数据预处理等。你会发现相同名称的岗位,在不同的公司往往实际负责的任务会大相径庭。但是名称是次要的,它会随着时代的变更不断被改变和再定义。唯一不变的是,企业中、科研所、高效中存储的二维表数据,它们是必须经过多项预处理之后,才能够成为直接可用的有价值的数据。在数据中提取信息,在信息中发现知识,为了实现这一步,我们就必须先做ETL工程。业界普遍认为这个步骤需要花掉80%甚至以上的时间,为了让这个过程显得更加轻松,让数据预处理简洁便捷,让初学者快速入门这些基本概念和操作,这就是本系列的宗旨


什么是SQL

之所以要提到SQL,以为本系列的大部分操作,在没有R的便捷工具之前,人们大多都是通过SQL来实现的。

640?wx_fmt=jpeg

SQL,Structured Query Language,中文译为结构化查询语言,是对数据库数据进行数据操作的基本语言。它的历史非常悠久,在20世纪70年代就开始发展了。SQL是目前做数据分析师或者数据挖掘必备的技能,如果从业人员都无法在企业的数据仓库中调度数据,就更不要提如何在这些数据中挖掘商业价值了。SQL是目前做ETL工程的主流语言,尽管我们后续提到的R语言做ETL有优越之处,但是SQL作为一门数据查询语言,它的地位在短期内依旧是无法撼动的。


为什么用R做ETL

R语言在设计之初,就是面向统计计算和可视化的。每次打开R语言,我们都可以看到这么一句话:R is free software and comes withABSOLUTELY NO WARRANTY.我对这里的free具有两层理解:1.R语言是开源免费的;2.R语言是灵活自由的。用了这么久的R语言,我时常还是会感慨,这个社区居然有这么多活跃的开发者,如此努力地创造工具给大家免费使用,实在是太不可思议了!那时候我就在想,如果将来我能够熟练运用之后,也要把自己的经验分享给大家。


640?wx_fmt=jpeg


关于R的灵活自由,可能是有一定编程经验的用户才能够更加深刻地体会这一点。在解决数据科学的时候,我发现R语言对数据特别有办法。之所以使用RETL工程,就是因为R具有非常便捷的工具。dplyr包自2014年发布以来,已经在数据科学界得到广泛的应用。它的设计之初,就参考了SQL在数据操纵的特性,但是青出于蓝而胜于蓝,在实际工作中,我们发现dplyr的语法结果更加适合对数据进行预处理。举个例子,如果一个查询非常复杂,涉及层层嵌套,如果使用R语言dplyr的语法结构,往往能够写出高效率、可读性极强的、层层递进式的代码,从而减少了用户编写代码的时间,也有利于代码重用。
时至今日,dplyr为首所席卷的tidy之风正在席卷整个R语言的世界,而且笔者坚信,它在将来会席卷整个数据科学的世界

640?wx_fmt=jpeg


本系列的所有操作,都只使用了一个包,它叫做tidyverse,里面包含了众多数据处理的工具。第一次安装的时候可能有点费时,因为我发现随着时间的增长,它已经成为一个面面俱到的万花筒式数据科学工具包。
Long story short,用R就是因为,有了tidyverse这套免费易用的高效工具包,有了它,我们就可以利用这些工具畅游数据科学的世界!最后补一句:Life’s short, use R.


小结

本章对ETLSQLR进行了简要的介绍,并告诉大家为什么要用RETL。下一个章节中,我们将会用大量的代码和实际例子告诉大家,为什么要用RETL,它是多么的简单,以及它能够如何辅助SQL用户写出高效的代码。总的来说,RSQL都不难,作为数据科学工作者都应该掌握。ETL是数据科学必备的技能,对关系型数据库而言,这些技巧是不可或缺的。每当我看到一长串的SQL代码的时候,我认为,要么新的工具应该出现,要么老的SQL应该改版了…dplyr就是一个不错的替代方案,或者叫做辅助方案。它是支持SQL的(也就是它能够直接翻译成SQL,有现成工具能够翻译),而且也支持spark,未来也许大家能够从一长串的SQL中解放出来,来写更加明晰的代码。


640?wx_fmt=gif


大家都在看

R语言二分类问题案例分析:以泰坦尼克号沉船为例

无缝对接Spark与R:Sparklyr系列—探讨属于数据科学家的Spark

R与Python手牵手:数据的分组排序

R与Python手牵手:数据框的构建、读取与基本描述

R与Python手牵手:数据科学导论系列(包的载入)

R与Python手牵手:数据探索性分析案例展示

R与Python手牵手:多格式文件导入与爬虫


640?wx_fmt=jpeg

公众号后台回复关键字即可学习

回复 爬虫             爬虫三大案例实战  
回复 
Python        1小时破冰入门

回复 数据挖掘      R语言入门及数据挖掘
回复 
人工智能      三个月入门人工智能
回复 数据分析师   数据分析师成长之路 
回复 机器学习      机器学习的商业应用
回复 数据科学      数据科学实战
回复 常用算法      常用数据挖掘算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值