文章摘录
How To Become a Data Engineer
概览:文章从数据工程师的角度介绍了数据科学中的工作内容,并且附上了大量的学习资料。数据工程师在数据生态中也是高薪的职业,需求也很多,对数据工程师有兴趣的建议阅读。
资料来源:Adylzhan Khashtamov 文章日期:20210108 原文链接:https://khashtamov.com/en/how-to-become-a-data-engineer/ 相关链接:[coursera 数据结构和算法专业化]
数据工程师
对数据工程师的需求正在迅速增长。根据 hired.com 的数据,2019年的需求增长了45% 。旧金山湾区数据工程师的平均工资约为16万美元。所以问题是: 如何成为一个数据工程师?
从数据工程的名称可以看出,它与数据密切相关。但是,如果数据分析通常意味着从现有数据中提取洞察力,那么数据工程则意味着构建用于交付、存储和处理数据的基础设施的过程。根据人工智能的需求层次,数据工程处理位于最底层: 收集,移动和存储,数据准备。因此,如果您的组织希望成为数据/ai 驱动的组织,那么他们应该雇佣/培训数据工程师。
数据工程师职责
过去的数据工程师负责编写复杂的 SQL 查询,使用大型企业工具(如 Informatica ETL、 Pentaho ETL、 Talend 等)构建 ETL (提取、转换和加载)流程。但现在市场需要更广泛的技能。如果你想成为一名数据工程师,你需要:
- Intermediate knowledge of SQL and Python SQL 和 Python 的中级知识
- Experience working with cloud providers like AWS, Azure or GCP 有与 AWS、 Azure 或 GCP 等云供应商合作的经验
- The knowledge of Java/Scala is a big plus 了解 Java/Scala 是一个很大的优势
Understading SQL/NoSQL databases (data modeling, data warehousing, performance optimization) 理解 SQL/NoSQL 数据库(数据建模、数据仓库、性能优化)
数据工程师的技能
Algorithms & Data Structures
算法和数据结构
If you prefer video courses I would recommend to look at the I took these courses and think they are quite good as a starting point.
如果你喜欢视频课程,我建议你看看 [coursera 数据结构和算法专业化]。我参加了这些课程,并认为它们是一个很好的起点。谈到演讲,我强烈建议大家看看 Alex Petrov 的演讲(原文中有 Youtube 链接),Alex 还有一系列与数据库相关的文章:- On Disk IO, Part 2: More Flavours of IO 关于磁盘 i/o,第2部分: 更多的 i/o 风味
- On Disk IO, Part 3: LSM Trees 在磁盘 IO 上,第3部分: LSM 树
- On Disk IO, Part 4: B-Trees and RUM Conjecture 关于磁盘 IO,第4部分: b 树与 RUM 猜想
- On Disk IO, Part 5: Access Patterns in LSM Trees 关于磁盘 IO,第5部分: LSM 树中的访问模式
数据库很棒,卡内基梅隆大学把他们的课程上传到 Youtube:
- Introduction to Database Systems (Fall 2019) 数据库系统简介(2019年秋季)
- Advanced Database Systems (Spring 2020) 高级数据库系统(Spring 2020)
SQL - 数据库的通用语言
SQL 开发于70年代,现在仍然是处理数据最流行的语言。一些专家时不时地声称 SQL 很快就会消亡,但尽管有很多谣言,它仍然活着。我认为我们还会坚持使用 SQL 十年或二十年(甚至更久)。在大数据生态系统中有许多不同的 SQL 引擎: Presto (Trino)、 Hive、 Impala 等。我强烈建议投入一些时间来掌握 SQL。
如果您不熟悉 SQL,可以从 Mode 的 SQL 指南开始: Introduction to SQL.。如果您感到舒适,可以继续使用 DataCamp’s interactive courses。我推荐以下几点:
- Intermediate SQL 中间 SQL
- Joining Data in SQL 在 SQL 中连接数据
PostgreSQL Summary Stats and Window Functions 摘要统计数据和窗口函数
编程 - Python Java Scala
大数据工具
在大数据领域有许多不同的技术,其中最流行的是:
Apache Kafka 阿帕奇 · 卡夫卡 is the leading message queue/event bus/event streaming 领先的消息队列/事件总线/事件流
- Apache Spark is the unified analytics engine for large-scale data processing 是大规模数据处理的统一分析引擎
- Apache Hadoop, the big data framework which consists of different tools, libraries and frameworks including distributed file system (HDFS), Apache Hive, HBase etc. 大数据框架由不同的工具、库和框架组成,包括分散式档案系统、 Apache Hive、 HBase 等
Apache Druid 阿帕奇德鲁伊 is a real-time analytics database 是一个实时分析数据库
云平台
所有的东西都去了云端。您至少应该有与一家云提供商合作的经验。我推荐使用亚马逊网络服务,它是世界上领先的云服务提供商。第二名是微软 Azure,第三名是谷歌云平台。
分布式系统基础
现在生成的数据量是巨大的。你不能把它装进一台计算机里。数据应该分布在不同的节点上。如果你想成为一个优秀的数据工程师,你必须了解分布式系统的基本原理。有很多资源可以让你开始这个领域的旅程:
Distributed Systems 分布式系统 lectures from MIT by Robert Morris 来自麻省理工学院的演讲作者: Robert Morris
- Distributed Systems 分布式系统 lectures by Martin Kleppmann 讲座作者: Martin Kleppmann
- Distributed Systems 分布式系统 by Lindsey Kuper 作者: Lindsey Kuper
数据管道
构建数据管道是数据工程师的主要职责之一。数据管道是一个数据整合的过程。数据工程师应该能够可靠地交付、加载和转换来自多个来源的数据到一个特定的目的地,通常是中央数据仓库或数据湖。有许多工具可以帮助您构建这个过程。看看阿帕奇的气流,Spotify 的 Luigi,Prefect 或 Dagster。如果您更喜欢 nocode 解决方案,Apache NiFi 是一种解决方案。图书速读
《数字跃迁:数字化变革的战略与战术》
战略拐点
战略拐点是指一个组织在其所处的竞争环境中发生重大变化的时间点。变化的来源可以是新技术的引入、法规的变更、客户价值或期望的变化,或者其他变化。即使变化本身是为人熟知的,但如果赶上了组织的管理层尚未做好进行关键性业务策略调整的准备,也可能会导致组织的业务状况恶化。战略拐点的原因可以包括:法规、不断变化的公众品位、商业环境的改变、技术变革。
技术变革:新技术的出现可能会对现有的公司商业模式造成严重的打击。iPhone的问世对诺基亚和黑莓等生产商造成了很大的冲击;数码摄影技术压倒了柯达;数字图书的出现对印刷商、出版商和连锁书店都是毁灭性的打击;iTunes的出现对各类音乐制作人和发行商来说都是一个打击;优步(Uber)和滴滴的出现使私家车可以提供租车服务;爱彼迎(Airbnb)的出现让普通人可以出租自己的房子、公寓,甚至一个单人间;亚马逊(Amazon)和阿里巴巴以及其他网站在电子商务领域的成功,重创了西尔斯(Sears)等许多连锁零售企业,并迫使沃尔玛(Walmart)大举进入电子商务领域。这样的例子举不胜举。
数字化组织的五种能力:5S模型
敏感(sensing)
组织必须对商业环境的近期发展保持敏感和关注,实时监控自己所处的业务环境、进入或者准备进入市场的新竞争者、组织中将要实现的新技术和潜在的技术,以及市场中新出现的商业模式。在现代数字商业环境中,组织不能满足于现有的成就,必须始终对正在发生的事件保持敏感和关注。动态的商业环境要求组织能够迅速做出响应。
悟性(savvy)
悟性即做决定的能力:这意味着组织需要根据信息(甚至部分信息)做出决定,同时承担一定的风险。组织必须开发其在智能应用和数据智能分析领域的人才与能力,以便能够在高级业务分析的帮助下做出决策。这需要建立一种组织文化,这种文化可以支持并鼓励基于该分析的数据分析和决策(数据驱动下的决策)。过去为人称道的直觉与经验已经无法应对数字化时代的挑战。
规模化(scale)
规模化即形成规模化效应的能力。数字化组织能够快速、高效地发展,并且毫不费力就能够服务大量客户。像谷歌这样的公司由于能够高效地处理查询搜索指令而迅速发展。1999年,谷歌在一年内处理了10亿次查询;而到2014年,这个数字达到了1万亿次。优步刚开始时只有少数司机与其合作,并服务于少数客户,但该公司以惊人的速度发展,到2015年,其每年服务量超过了10亿次。在此之后只用了6个月就达到了20亿次。2015年底,亚马逊的活跃用户达到了3.04亿。一个传统组织是难以在如此短的时间内以如此的速度发展的。
视野和焦点(scope and focus)
数字化组织能够利用自身建立起来的数字化平台迅速扩展,并超越自身原有的领域。亚马逊快速从一个专注于通过电子商务网站销售图书的组织转变为一个在销售领域无处不在的大组织,并且进入了更多领域,如云服务(AWS)、电子书(Kindle)、人工智能的声控扬声器等。苹果能够迅速开发出成功的数字产品,并通过苹果应用程序商店(App Store)迅速转型为音乐和应用程序领域的巨头,而且还进入了电子支付(Apple Pay)、智能手表(Apple Watch)和车载娱乐操作系统(CarPlay)领域。平安集团除了开发与其传统业务相关的保险方面的技术之外,也迅速进入了金融科技、物联网等领域。与传统组织通过缓慢扩张进入相似领域不同的是,数字化组织行动迅速,并能将其视野范围扩展到全新的、不同的和创新的领域。
速度(speed)
基于软件的数字化组织能够做出快速的响应,并以最快的速度扩展业务。它们与数以百万计的客户联系在一起,清楚客户对什么感兴趣,反应速度非常快。特斯拉开发了一款集合了各种软件的电动汽车,该公司可以通过直接发送到汽车上的软件对汽车进行升级(空中下载技术),迅速为其汽车增添附加组件。安卓(Android)操作系统和苹果的iOS操作系统都可以通过给正在运行其软件的智能手机添加新功能实现升级换代。一个不是基于软件产品的组织,更新不可能拥有这种灵活性和速度,有时甚至根本无法更新。组织必须培养快速决策的能力。一般情况下,一个产品在上市两三年后将不再适合数字化时代。因此组织必须分阶段地思考问题,在产品完全成型之前发布一些最小可行性产品(minimum viable product),并且要有非常快的发展速度和对相关内容的持续关注。有些人称之为“快速失败机制”(fail fast)。组织如果发现先前的计划不成功,必须学会马上放弃它们,因为创新常常会有失败。
受数字化变革影响的领域
麻省理工学院数字商业中心与凯捷咨询公司联合开展了一项名为“数字化变革:10亿美元的企业路线图”的研究。该研究发现了九个主要的影响领域,研究人员将其分为三类,每一类都列出了三个主要的影响领域。这个模型也在乔治·韦斯特曼、迪迪埃·邦尼特(Didier Bonnet)和安德鲁·麦卡菲的一篇题为“数字化变革的九要素”的文章中出现,该文章于2014年在《麻省理工斯隆管理评论》上发表。这篇文章提出了三类影响领域,并在九个标题下加以阐述。我们把这个模型简称为影响领域的韦斯特曼模型(The Westerman Model of Areas of Impact):
数字化的终极目标:敏捷的组织
你能拥有的唯一可持续的优势就是敏捷性,仅此而已。因为没有别的东西是可持续的,你创造的一切,其他人都能复制出来。
—— 杰夫·贝佐斯(Jeff Bezos),亚马逊创始人
商业模式
(经典)商业模式
商业模式解释(定义基本原理)组织是如何为它的客户创造价值,以及如何赚钱并实现其目标的。
商业战略
商业模式解释的是组织如何运作;商业战略解释的是组织如何竞争,即它确定了组织在市场中的竞争优势和竞争地位。
商业模式画布
案例研究:雅高酒店
为了诠释大型企业的数字化变革之旅,我们从酒店业选择一个案例研究,随着Trivago、Expedia、Booking.com、猫途鹰、爱彼迎等公司的出现,传统酒店行业遭受了巨大冲击。上述这些公司都是数字化竞争者,试图在全球酒店行业价值中分一杯羹。雅高酒店是全球最大的连锁酒店之一。这个案例将证明即便是传统行业中的成型企业也能够应对数字化变革所带来的挑战。一个成型的企业可以利用数字化技术开展革新,与竞争对手竞争从而取得成功。雅高酒店成功展开数字化变革的旅程,实现了销售和利润增长。
2019年,雅高酒店经营4500家不同品牌的酒店(如Ibis、Novotel、Sofitel、Mercure等),拥有员工25万名,在100个国家都有它的身影。在对商业环境以及数字公司所带来的威胁进行研究分析后,雅高酒店在2014年决定展开数字化变革之旅。雅高将公司的愿景定位为领军酒店行业,并且以此为开端,将该计划命名为“领军数字化酒店”。该连锁酒店的管理层组建了一个资深团队,从客户决定开始考虑旅行的那一刻开始,便对他们的行程进行深入的研究,包括选择酒店、预订房间、酒店住宿、结束住宿后与朋友分享经历等不同阶段。
雅高酒店的数字化变革专门小组拟定了一个横跨数年的计划,加强客户的数字体验。图15-1是该连锁酒店数字旅程的主要阶段概览。专门小组决定,首先从评估酒店行业面临的数字冲击以及在此情况下该连锁酒店的定位入手,并为这一数字化时代制定酒店的愿景。接着,专门小组绘制路线图,调整组织架构,分配资源,以便开展数字化变革和采取各项举措。尤其值得注意的是,他们决定改变企业的思维定式,创造创新文化氛围。
该连锁酒店着手为在其生态系统中的所有主要利益相关者开发数字解决方案,包括其客户、员工和商业合作伙伴。雅高酒店从八项数字举措开启这一旅程,每一个领域均有明确的关键绩效指标(KPI)。图15-2展示了这八项数字举措;其中四项是客户导向型,一项是员工导向型,一项为合作伙伴导向型,剩余两项是系统和数据导向型,注重基础设施技术和商业分析。
案例研究:Codelco
世界上最大的铜矿公司之一Codelco的案例说明数字化变革不仅仅适用于B2C公司。Codelco成立于1976年,是一家国有企业,拥有近2万名员工。在21世纪初,公司面临复杂的商业挑战:在确保员工安全的同时,还需要提升生产力、保护环境。
公司决定为未来发展探索新的战略,其中一项决策就是在采矿过程中引入自动化设备,从人工劳动转向利用技术和信息达成其战略目标。2003年,该公司启动了Codelco数字化项目,旨在促进采矿过程中的自动化倡议实施,帮助CEO传达Codelco数字化转型的重要意义。采取该战略后,Codelco开始在部分矿场使用高水平的自动化设备和机器人:公司使用自动卡车,远程监控采矿过程,使用先进的机器人技术,并分析信息以改善其业务流程。
2016年,Codelco宣布计划使用云技术和大数据技术分析其从传感器及其他设备处接收到的大量信息,期望改善公司的业绩表现。如今公司的业务和操作流程已经实现了自动化和数字化,并且有能力利用分析将生产力提升到新水平。