本课程涵盖了微软BISSIS几乎所有常用控件的讲解,讲解的内容不是按照书本照本宣科的简单的告诉大家如何使用,而是通过大量的案例,代码对各个知识点进行穿插讲解。每一个基本案例都是由我个人原创,并加入了个人的测试,总结和归纳部分。每一个案例自始至终,来龙去脉,所有的代码和实现操作过程均在视频课程中一步一步现场编程和实现。因此大家是完全可以按照视频中的操作步骤实现所有讲解的案例,通过对案例的总结和归纳是可以掌握案例中讲解的每一个知识点的。
第一步,按照课程课时的顺序一个一个视频观看,在第一次学习的时候可以跟着视频进行操作,把完整的案例做出来。做完案例之后,在不看视频的情况下把案例能够顺利的做出来,表示在操作上我已掌握。
第三步,在学习完每一个案例与对应的博客阅读内容之后,对自己进行一个模拟面试,看本文最下方的每一课对应的面试题。通过自我回答和总结的方式看看每一个问题是否可以清晰的连贯的回答上来,如果不能答出来,还需要回头看视频和练习案例,直到能够完整的回答出来为止。
这些案例的完成一定会遇到上面所提到的问题,每一个问题的解决就是一个能力的积累,一次经验的上升。
我曾经在一个JAVA+IOS项目中,需要解决JAVA服务器端与IOS手机应用程序端解决WebService接口的调用问题。由于没有任何的IOS开发经验,在没有任何技术支持的情况下,是抱着一定要解决这个问题的想法,尝试了三套不同的WebService接口,连续三天三个通宵最终成功解决。这个过程就是上述我所描述的问题,一种思路不行就换种思路,根据不同的报错信息进行排错,筛选方案,大胆尝试与分析,不断尝试到最终解决。
第五步,在上述步骤全部完成之后,我可以对大家进行模拟面试。模拟面试可能是跨知识点的,也可能是对其中的某些重要知识点进行提问。通过这么几个步骤的锻炼,我相信大家是完全可以对这门课程掌握的非常好的,完全可以建立起一个完整的知识和技能体系。对大家的点,面,体系性的提高和信心的提高是有非常大的帮助的。同时,对于国际学员,我可以提供英语模拟面试,帮助大家在一个更好的氛围中适应这种面试。
在我的工作经历中,我面试过很多BI开发人员,其中有一点最为忌讳的就是在简历上写上精通微软BI,精通SSIS,SSRS,SSAS。一般作为一个2-3年的BI开发人员,在一个正常的BI技术成长体系是很难达到精通的程度的。所谓精通,应该是具备一个完整的知识和技能体系,遇到过各种各样的技术问题并解决掉的。一个能称之为精通的BI开发人员,无论是基础知识还是框架设计能力,解决方案的提出能力,各种项目的锤炼都应该是达到了一个非常之高的水平。
通常情况下,在我所熟知的微软BI的领域里,只有少数一部分人能够说精通微软BI的SSIS,SSRS,SSAS中其中之一或者之二。对于这类与实际能力不符的面试者,基本上非常简单和基础的一些问题就可以排除掉,可以说和简历上技能的描述完全不符的。自然也从侧面反映这些面试者对技术的态度抱有很大的侥幸心理,对于技术上的不尊重,我们的整个面试团队也自然会联想到该候选人对于工作对于项目的态度也是否一样不严谨。
所以,尊重技术,认真的态度对一个BI开发很重要。包括我对于我自己的技术定位,仍然只定位于很熟悉某一类或者某几类产品与技术,技术在某些方面还可以,但远远没有达到精通的水平。4年的微软BI开发经验,我还需要4-5年类似于现在这样的步伐我觉得才有可能达到一个精通的水准。
放低姿态很重要,对于BI职位要求比较高的用人方对于一个人的技术能力与否是可以通过技术面试环节来判定的,个人简历上的技术描述仅仅是一个参考。我们所面试的一些BI开发者,其实在技术的选择上是有针对性的。比如,我们项目中急需的SSRS,SSIS开发工程师,那么我们就会对SSRS,SSIS部分的内容进行重点考察。如果是对SSAS有高要求的,那么会对SSAS进行重点考察,而并非是真正需要一个全面掌握微软BI技能的,因为我们知道这类全才一般是很难碰到的。在我们的一些面试经验中,往往在某一项或者某两项能力比较突出的候选人都通过了面试。
比如曾经面试一个候选人,他对SSRS并不熟悉,对SSISETL也并不是非常熟悉,但是他对SSAS很熟悉。那么在面试的过程中,当我们问到SSIS,SSRS的时候,尤其是SSRS答的很不好。但是他的问答就是SSRS我做的比较少,不太熟悉。对于ETL控件也不是非常熟悉,但是常用的操作还是没有问题。那么,自然后面的面试过程我们就不会主动去提到SSIS,SSRS。最后,SSAS面试的很不错。那么在我们的评价中,SSAS的能力很突出,但SSRS,SSIS的薄弱并没有给我们带来很大的负面印象。至少不会一开始说我们这几块都非常熟悉,最后面试的反差很大。在一个没有印象反差的前提下,坦率,诚恳让我们觉得这个候选人在对待问题的态度上是没有问题的。SSAS很熟悉已经证明了他是具备比较不错的技术能力的,只是因为受限于经历的项目没有太多的参与到SSRS,SSIS的开发中来。能够扎实的掌握微软BI某一个模块的能力,说明也完全有能力掌握其它几个模块的能力,假以时日在项目中慢慢引导是完全没有问题的。
对于这位面试者我们给出的结论是:
而对于之前反差比较大的结论就是:
不可否认,上述的面试过程一定是存在很多的面试瑕疵。但是需要考虑到实际的薪资情况:
所以,对于我们很多BI初级开发者来说,尽量的在面试过程中避免过多的暴露自己的不足。在初期选择相应的职位时,放低姿态,需要完全展现自己很强的那一面。因为在一个项目团队中,很难让一个BI开发者即做SSRS,又兼顾SSIS和SSAS。每个人都有分工,一般最多一个人专注于某一项或者某两项,在其它项上主要就是一个Backup。
针对于这种情况,在面试准备期间需要考虑在目前的技术储备上,哪一项是我最熟悉的最擅长的,哪一项是我目前比较熟悉但是需要加强的,哪一项是我目前不太熟悉但是以后会有所规划的。当你可以清晰的了解到自身的技术储备和未来技术提升规划的时候,把你的想法坦诚的和用人方进行沟通。一旦用人方正好在你熟悉和擅长的领域或者你熟悉但需要加强的领域有职位空缺的时候,你成功的几率就会非常高。前提就是,你所擅长的一定是你真正擅长的,你需要准备的非常充分并且展现的淋漓精致。
学完这个课程之后,包括博客的阅读,项目案例作业的解决。只要能够认真完成上述几个学习步骤,我可以肯定的说这个课程是掌握的非常不错的,在ETL控件的使用能力上一定相比于同等经历的BI开发者来说是完全可以更甚一筹的。因为你不仅仅拥有一个知识体系,并且也具备了对一些比较复杂问题的解决能力。
那么是不是说这么课程学完了就可以搞定SSISETL的一切?这个坦率来讲也不是的。SQLServerIntegrationService(SSIS)我们可以把它拆分成三大类:
作为我个人而言,我是从纯的ETL开发,不涉及到数据仓库的设计,不涉及到各种框架应用来起步的。在我的微软BI头两年工作中,在美国WI的SHP(SecurityHealthPlan)医疗保险项目,做的就是ETL开发。当具备了ETL开发能力的时候,进入到其它项目上了解了数据仓库的实现,完全也可以跟着尝试去独立设计部分的维度表和事实表,到最后独立的设计与开发。因为数据仓库更多的体现的是一种解决思想和设计方案,它的具体实现还是需要借助于基本的SQL,ETL控件来完成。从基本的ETL开发到设计思想的过渡和实施数据仓库项目,这个过程是顺其自然就可以过渡的。
对于ETL框架,日志框架,调度等是基于1-2年的BI开发之后,慢慢的总结出来的一些更好的维护和管理ETLPackage包的理念,这个理念也是可以从项目中慢慢摸索和获得的。
当能够认识到这个体系的完备过程,自然就应该认识到作为ETL的基础这门课程的重要性。
一般在介绍自己的工作和技术情况的时候,可以主动的和面试官提到你在SSIS方面的技能能力和储备。
比如说:我对SSIS很熟悉,基本的ETL控件在我的各个项目中都用到过,包括像控制流ControlFlow,数据流DataFlow里面的常用控件大部分我都用到过。
当主动提及某一方面的技术,且用人方恰好有这方面的需求的时候,他会主动的深入了解这方面的技能。那么可能会随便找几个控件面试一下你的基础能力,比如介绍一下Lookup的用法,介绍一下Merge,MergeJoin,UnionAll的区别,介绍一下SCD实现的几种类型,ScriptTask或者ScriptComponent的用法,ForeachLoop的用法。
如果能够很好的学好本门课程,这些问题的回答应该是非常轻松的,并且可以深入的引导用人方并展现你对这些控件的掌握能力,比如:
此自测题也可以作为面试题来准备,虽然对于ETL控件的面试大多不会考察到这么细的粒度,但是仍然可以作为面试官考察BI开发者对基础知识点的掌握的熟练程度与深度。在SSIS中,一个基本的配置改变,对数据的走向与控制可能就会有天壤之别,所以这些基础的技能点还是值得大家在学习SSISETL控件的过程中好好总结的。