全文共2121字,预计学习时长8分钟
什么是数据工程师?
过去,数据工程师只需知道基本的数据仓库、数据的提取转换加载(ETL)和数据可视化就够了。而近些年数据工程师的职能范围已发生了很大变化,不再局限于数据库管理和商业智能(BI)。
数据工程师需要掌握分布式计算、开发运营(DevOps)、数据运营和实现机器学习模型。事实上,很多高级数据工程师主要是做软件或数据科学(DS)工作,需要从头创建与应用程序接口(APIs)、流式数据服务等交互的系统和框架。
仅仅拼凑数据管道已无法满足市场需求。
然鹅,与软件工程不同,大学里数据工程的相关课程并不多,专门的训练营也比较少。通常只能在工作中,通过大量的技术实践去学习掌握。
但数据工程师的技术要求较高,这对于刚毕业的学生或传统的数据工程师是不小的挑战。
假如你想学习数据工程却无从下手,可以多读些帖子,观看系列视频来入门。那么就先从相关术语开始学习吧~这些与开发数据仓库和数据管道息息相关。
下面是数据工程师需要掌握的重要词汇。如果是初出校园,你可能常听到这些词汇,但并不一定不了解其含义。
数据仓库是数据分析人员和BI专业人员访问数据的中央位置。对于数据仓库、数据集市、Kimball和Inmon(两种数据仓库模式),及其各自含义,目前尚有争论。
归根结底,数据仓库通常是一组非规范化的数据,这些数据一般从单个或多个可以内部解决业务问题的应用程序数据库中提取。
不同于应用程序数据库,设计数据仓库旨在处理分析性查询,而非事务性查询。
此外,数据仓库通常可以容纳多个应用程序数据库,将多个系统的数据集中在一起,这也是数据仓库的一大优势。数据仓库还具有易理解性。好的数据仓库应是简单明了,便于分析人员将数据可视化工具与之连接。
而且,现代许多数据系统(如BigQuery,Redshift和Snowflake)都是专门用来管理数据仓库查询的,即通过大量的分析,求和以及聚合来进行分析性查询,而非事务性查询。
一般来讲,数据仓库的最终目标是创建某种自助服务分析系统。这意味着数据模型不能过于复杂,并且要有一套工程师和业务团队支持的完善的业务逻辑。
你可能经常会听到数据工程师提到“数据管道”这一术语,或者是ETL。两者有些细微差别,不过总体而言是相似的。
ETL指的是提取、转换和加载(有时也可能是ELT)。
ETL和数据管道都是自动化的工作流,它们将数据从A点运到B点,并在此过程中对数据进行转换,以提高数据分析的效率。
从应用程序数据库中提取数据时,通常会将数据转换成CSV或JSON格式,可以从应用程序数据库表、API、日志等渠道提取数据。
在提取时,数据通常被限制为数据库当时的快照或所有的历史数据。ETL的设计也会因许多细微的差别而发生改变,例如,数据是否允许修改、删除或复制。以这种方式设置应用程序数据库,可以保持站点快速响应,但也会限制分析人员洞察数据。
当用户更新配置文件或编辑各种信息时,数据状态可能会慢慢发生变化。因此,ETL还可以追踪数据随时间发生的变化,这种追踪数据进行变更管理的形式被称为缓慢变化维。
数据被转换后就可以加载进数据仓库。
DAG指的是有向无环图,它非常复杂,ETL只是其中一环。在转换数据时,需要按照特定的顺序采取步骤。但怎么告知系统呢?ETL如何知道该运行哪个部分以及何时运行呢?
这就是DAG的用处所在。
DAG在数据工程领域存在已久,只是长期以来,一直是通过CRON、一些自定义构建的元数据库以及Bash、Python和PowerShell脚本来进行管理的。这样既杂乱无序,又费时费力。
如今,出现了许多现代化的工具和库来帮助管理ETL管道,比如Airflow, petl,Luigi和Dagster(适合初学者),这样的工具还有很多。
我常用的是Airflow,它有着庞大的用户群。不过,好用的库数不胜数,等熟悉数据领域后,可能会用到其他库。
ETL会将数据加载到什么表里?为什么这些表的前缀这么奇怪?
当进入数据仓库工作时,会看到一份带有“fact_”或“f_”前缀的表格。这个前缀指的是在此表中找到的数据类型。
事实数据通常指那些实际交易的数据,比如电子商务网站上的订单、健康保险理赔总额等。事实表通常含有某类可合计的值,比如购买的物品总数或销售总额,以及dim_索引,比如store_id和product_type_id等。
事实表可以看作是一张中心表。
例如,在下面这张图片中,可以看到事实表位于所有表格的中心。因为事实表展示了正在分析和报告的核心内容,如事务、用户、打开电子邮件等。
数据仓库中的表多种多样,但事实表和维度表是最常见的。
维度表中的数据更具描述性,可以对数据进行描述和分组。分析数据时,我们经常会想按商店、地区、网站、办公室经理等标签进行分组。所以,如果想统计公司每栋大楼里有多少员工,大楼的描述性信息就在维度表中,而每栋大楼中的员工数据则在事实表中。
再去看一遍上述图片,事实表的周围都是维度表。
好啦,恭喜你已经了解了关于数据工程的基本知识,坚持继续去探索吧~
留言点赞关注
我们一起分享AI学习与发展的干货
如转载,请后台留言,遵守转载规范