"Data ETL" transformation journey data from white-collar workers to the data (D) - With PowerQuery SSIS need it?

In true enterprise-class BI project, ETL data set using PowerBIDeskTop that is not feasible, we need to use a professional to build a data warehouse ETL tool to complete, and then the data modeling work.
Given I can touch up the readership, the majority of workers in the business context of data analysis herein, this give us a simple, entry gymnastics demonstration, so that we reduce the fear of the type of professional IT tools.
All tools are used by the people, are thinking about as simple as possible approachable, learned PowerQuery groups, I am confident step forward just confidence, SSIS enough to grasp the level is still very easy to achieve.

PowerQuery limitations

As a self-service BI lightweight ETL tool, PowerQuery really can make a lot of us enjoy the convenience of data processing, without professional ability, most operations can be completed only by the interface, it is undeniable PowerQuery experience is very good.

Many even implement such a tedious task in SSIS ETL tools on a professional level, can be done on PowerQuery very smoothly as inverse perspective, simple web crawling, null fill the ranks of the transposition and so on.

But PowerQuery limitations is also very obvious.

First, it is very prone to performance bottlenecks, although the data processing logic is clear, but it is to endure the long wait time, very often, the level of slightly larger amount of data, this alone would veto the use of PowerQuery program.

In fact, some data ETL it is defective, for example, can not use the extension of the regular expression character string data processing;

Finally, it is a serious shortcoming is the only target data into PowerPivot level, can not return to a relational database is more friendly data store, data handling, consumption only on the data model can not be generated for other purposes.

Similarly, such a result would lose a large country, can not use SQL statements to be further cleaned data integration. SQL statement is based on the approach set of rows, and there are performance guarantees analysis window function, plays a very large role in the data ETL process, priority is generally capable of handling up to meet in the SQL in SQL, ensure that the advantages of performance.

Of course there are many areas PowerQuery defects, such as an incremental update mechanism is more complex slowly changing dimension processing to regenerate the data warehouse surrogate key to replace the original natural key functions.

SSDT Installation Introduction

Tabular Editor In the previous series, I mentioned is discarded SSDT steering Tabular Editor, here they come back and say re-use SSDT?

Yes, SSDT is the entire enterprise BI development tool, including the development of SSIS, SSAS, SSRS three modules, Tabular Editor only alternative SSAS section.

SSIS Learning Resources

SSIS learning, similar to Excel, as PowerQuery learning, because steps like more, more intuitive explanation of the video, can be found on YouTube of a foreigner series of free tutorials (read people foreigners the course then comparing the country, we know what knowledge-paid harvest).
https://www.youtube.com/watch?v=Td97JdNUujg&list=PLWf6TEjiiuIDUhRIhBSuJgHOggAR_SZsQ

At the same time Microsoft official documents also provided very detailed information, but beginner looks more difficult, as it can examine the document.

https://docs.microsoft.com/zh-cn/sql/integration-services/sql-server-integration-services?view=sql-server-2017

Its introductory tutorial, I looked at, or partial IT language, not too easy to look down, fewer shots, more difficult to understand.

https://docs.microsoft.com/zh-cn/sql/integration-services/integration-services-tutorials?view=sql-server-2017

Similarly, the system really want to learn SSIS, recommendations or need to prepare a Redbook, read again, and then read back when there is a problem in actual combat, than searching for answers to a complete system on the network has been unable to find the paper on (the Chinese version of the book Network quality book, I have the electronic version of the collection, the background can reply to [get] SSIS).

开始第一个SSIS项目

安装好之后的程序入口,可能要选择安装SSDT2015比较合适,SSDT2017笔者安装过好多轮都是出错。

进来后,生成一个叫包的东西Package.dtsx,后续所有的操作,都围绕着往这个包里填充控件逻辑。

在左上方可看到,当前是控制流的位置,而SSIS工具箱里的控件都是在控制流里使用的,因其是近乎万能级别的ETL工具,所以非常多的任务可用,我们一般只用到上方的【执行SQL任务】和【数据流任务】两种为主。其他只会在特定的任务场景上才会使用。

控制流和数据流的区别,用笔者语言来说是控制流是类似我们写程序的一个函数、过程任务片段,完成一件数据单元的任务,而数据流,是指控制流中涉及到数据的转换处理的加工过程,就像一个管道一样,从控制流的起点开匝放水,水流经过整个数据流的过程,最终流出回到控制流的流程中。

控制流中的数据流任务,可以再嵌套一个循环结构的容器,就变成批量执行某个数据流任务单元了,例如抽取某个文件夹下的所有Excel文件数据到数据库中,使用循环容器,就可以将任务分解成循环执行【Excel文件抽取数据到数据库】这样一个数据流任务,最终实现文件夹内所有Excel文件都抽取到数据库中。

Sqlserver的导入导出任务在SSIS上复现

前面的Sqlserver系列的文章中,曾经演示过导入导出的任务,其实底层就是用SSIS的数据流任务来完成,以下简单演示下Excel数据到Sqlserver数据库表的过程。 全过程都是界面化操作,拖拉组件即可完成,非常易上手。

首先,拖一个数据流任务出来。

双击数据流任务,或直接切换到数据流选项卡中,来到数据流任务的设计界面。

一个数据流任务中,一般有有种类型的组件,分别完成E(Extract抽取 源组件),T(Transform 转换组件),L(Load 目标组件)。

首先拉一个源组件,连接Excel文件。

同样使用双击的方式,打开Excel源的详细设置,如Excel源的连接信息,抽取哪个表数据等,同样可以使用此界面的【新建】按钮,直接创建一个数据源连接信息。

选择好Excel文件的路径信息即可完成连接信息的创建。

有了连接信息后,就可以读取到此Excel文件的架构,然后可以直接选取需要读取哪个Excel工作表即可(当然此步一样可以写SQL查询,查询此Excel文件的内容,用Excel直接的SQL语法进行操作,通常必要性不大,在Excel里存放的数据全量抽取到数据库中,再作处理更为轻松)。

若需调整表内的字段信息如增减字段和字段的重命名等操作,可以跳到列选项卡中进行操作,反正所有一切,都可界面完成,无需写SQL语句。

image.png

企业级的产品,最强大之处在于其稳定性的保障,处理错误的能力也是非常必要,我们永远需要假设我们上游给到的数据是不干净大概率有异常情形的如数据类型不对。

所以【错误输出】这里可以更进一步去处理发生错误时应该怎么做,是直接报错中止,还是忽略错误,而错误的产生甚至可以颗粒度到哪个字段产生而使用不同的错误处理对策。在练习阶段,这些都可以先默认设置,日后回到头来再细细地对照着文档研究其中的细节。

数据源的加载环节已经做完,我们简单做一个转换操作的演示,增加一列数据的加载时间,方便日后数据审核复查时,知道数据是什么时候抽取的。

点击上面的源任务,出现两条箭头,蓝色的代表此组件执行成功后的下一步操作指向,红色指向执行失败的导向。将蓝色箭头拖到下方的【派生列】组件即可。

连接好的效果。

因数据流任务里的数据管道的概念,现阶段管道里的内容是Excel表的数据,列字段是源里抽取后得到的结果,所以在派生列里,其实可以对上游的列字段进行识别,进行简单的计算转换如单位转换,计算转换如生成金额列=单价*数量等。

本次只生成一个时间戳的字段,无需依赖于上游的字段,直接用SSIS里的内置函数得到,同样地拖拉一下函数即可。生成的新列,甚至可以替换原来列的内容,或作为新列添加。

在SSIS里,支持OLEDB的数据源与目标,Sqlserver使用OLEDB的数据驱动去连接,兼容性会更好,一般推荐使用它而不是Sqlserver的原生驱动Native Client。

此处若不太知道目标源怎么选,甚至还可以用目标源助手,再来一次向导式的引导,当然源也一样可以,熟练后一般都不会再用向导操作。

同样地我们利用【新建】按钮,直接跳转到创建目标的数据连接。

同样地,SSIS已经自动帮我们按源的数据类型和字段名称,生成了SQL语句用来创建目标表(若是已经有现成表,直接选择即可,会将源数据直接插入到目标表中存放,怎样避免重复插入及插入数据去重等,就需要一些进阶的用法,后续再分享)。

同样地转到【映射】选项卡中,可以看到SSIS自动帮我们创建好对应的列匹配关系,若源和目标的字段名称不同,需要手动去在输入列与目标列中做匹配映射调整。

重新回顾我们所做的数据流,没有错误提示,即代表成功了。

同样地我们模拟了一下【控制流】的任务清单,给大家再次感受下两者的差异(实际情况更好的处理方式是每个数据流的任务,单独建一个包,而不是一个包执行多个数据流任务,后续再分享细节)。

最后一步大功告成,我们要享受我们的开发成果,可以执行此包或此数据流任务(数据流任务可以单独执行,方便调度,包的执行就是包有控制流任务都一起生效,单个任务流组件执行,仅对此组件的任务生效)。

执行完好,我们可以切换不同的选项卡看一下不同的结果,因此次只执行了一个数据流,比较简单,复杂的【任务流】可以在进度选项卡中看到更丰富的执行过程日志。

来到数据库中查看,可看到我们目标表中,多出一列加载时间。源数据按预期加载完成。

因现在是测试模型,执行完,需要中止回到设计模型才可以进行修改。

再执行一遍,可发现数据已经重复生成了多一份副本,所以我们刚刚的控制流,需要再做其他的任务控制,先删除清空目标表的数据,再进行源数据的抽取加载到目标表,这些后续再给大家做完整的演示。

结语

本篇简略分析了PowerQuery的一些局限性,建议有PowerQuery的使用经验的群体,可以再往前一步,加入到SSIS的阵营中来。

结合之前的Sqlserver和Azure的系列推文,将这些能力整合起来,就可以由业务分析者去主导真正的企业级BI,从部门级别的应用慢慢地反推整个企业级的应用,由甲方人员推动的BI项目,才能够走得更远,做得更合乎实际使用并且可扩展性更强,持续产出更大。

*笔者未来聚焦在数据领域的分享,不限于Excel,会分享更多Sqlserver、dotNET、Azure、PowerBI等话题,升级数据分析的能力,欢迎继续关注。**

系列文章

从数据民工到数据白领蜕变之旅(一)-工具总览 https://www.jianshu.com/p/2bd3f90206ec
从数据民工到数据白领蜕变之旅(二)-重温Excel催化剂经典 https://www.jianshu.com/p/cb89929bb8ae
从数据民工到数据白领蜕变之旅(三)-除了Excel催化剂之外PowerQuery新物种同样值得期待 https://www.jianshu.com/p/d154b09c881d

关于Excel催化剂

Excel催化剂先是一微信公众号的名称,后来顺其名称,正式推出了Excel插件,插件将持续性地更新,更新的周期视本人的时间而定争取一周能够上线一个大功能模块。Excel催化剂插件承诺个人用户永久性免费使用!

Excel催化剂插件使用最新的布署技术,实现一次安装,日后所有更新自动更新完成,无需重复关注更新动态,手动下载安装包重新安装,只需一次安装即可随时保持最新版本!

Excel催化剂插件下载链接:https://pan.baidu.com/s/1Iz2_NZJ8v7C9eqhNjdnP3Q

联系作者

公众号

取名催化剂,因Excel本身的强大,并非所有人能够立马享受到,大部分人还是在被Excel软件所虐的阶段,就是头脑里很清晰想达到的效果,而且高手们也已经实现出来,就是自己怎么弄都弄不出来,或者更糟的是还不知道Excel能够做什么而停留在不断地重复、机械、手工地在做着数据,耗费着无数的青春年华岁月。所以催生了是否可以作为一种媒介,让广大的Excel用户们可以瞬间点燃Excel的爆点,无需苦苦地挣扎地没日没夜的技巧学习、高级复杂函数的烧脑,最终走向了从入门到放弃的道路。

最后Excel功能强大,其实还需树立一个观点,不是所有事情都要交给Excel去完成,也不是所有事情Excel都是十分胜任的,外面的世界仍然是一个广阔的世界,Excel只是其中一枚耀眼的明星,还有其他更多同样精彩强大的技术、工具等。*Excel催化剂也将借力这些其他技术,让Excel能够发挥更强大的爆发!

关于Excel催化剂作者

姓名:李伟坚,从事数据分析工作多年(BI方向),一名同样在路上的学习者。
服务过行业:零售特别是鞋服类的零售行业,电商(淘宝、天猫、京东、唯品会)

技术路线从一名普通用户,通过Excel软件的学习,从此走向数据世界,非科班IT专业人士。
历经重重难关,终于在数据的道路上达到技术平原期,学习众多的知识不再太吃力,同时也形成了自己的一套数据解决方案(数据采集、数据加工清洗、数据多维建模、数据报表展示等)。

擅长技术领域:Excel等Office家族软件、VBA&VSTO的二次开发、Sqlserver数据库技术、Sqlserver的商业智能BI技术、Powerbi技术、云服务器布署技术等等。

2018年开始职业生涯作了重大调整,从原来的正职工作,转为自由职业者,暂无固定收入,暂对前面道路不太明朗,苦重新回到正职工作,对Excel催化剂的运营和开发必定受到很大的影响(正职工作时间内不可能维护也不可能随便把工作时间内的成果公布于外,工作外的时间也十分有限,因已而立之年,家庭责任重大)。

和广大拥护者一同期盼:Excel催化剂一直能运行下去,我所惠及的群体们能够给予支持(多留言鼓励下、转发下朋友圈推荐、小额打赏下和最重点的可以和所在公司及同行推荐推荐,让我的技术可以在贵司发挥价值,实现双赢(初步设想可以数据顾问的方式或一些小型项目开发的方式合作)。

Guess you like

Origin www.cnblogs.com/ExcelCuiHuaJi/p/11331579.html