Module 01 · What is Data Engineering?什么是数据工程?
Responsibilities and Skillsets of a Data Engineer数据工程师的职责与技能要求
在本视频中,我们将了解数据工程师的职责和技能组合。
核心职责:提供可分析数据
数据工程师的首要职责是向数据消费者提供可分析的数据 ()。
当数据满足以下条件时,即为可分析:
- 准确 () 和可靠 ()。
- 符合其受管制的法规 ()。
- 在数据消费者需要时可供访问 ()。
从广义上讲,数据工程师负责:
- 数据提取与整合: 从不同来源提取、组织和集成数据。
- 数据准备: 通过转换和清洗数据,为分析和报告做好准备。
- 管道管理: 设计和管理涵盖数据从源头到目标系统整个流程的数据管道。
- 基础设施设置与管理: 设置和管理数据摄取、处理和存储所需的基础设施。
- 这可能包括数据平台、用于聚合源数据的数据存储、用于大规模数据处理的分布式系统以及用于存储和传播可分析数据的数据存储库。
数据工程师的技术技能 (Technical Skills)
数据工程师可能需要的技术技能包括:
操作系统与基础设施
- 操作系统知识: 熟悉 UNIX、Linux 和 Windows 等操作系统,包括常用的管理工具、系统实用程序和命令。
- 基础设施组件知识: 了解基础设施组件,如虚拟机、网络,以及应用服务(如负载均衡和应用性能监控)。
- 云服务: 熟悉 Amazon、Google、IBM 和 Microsoft 等提供的云服务。
数据库和数据仓库
具备使用数据库和数据仓库的经验,包括:
| 类型 | 示例 |
|---|---|
| 关系型数据库 (RDBMS) | IBM DB2, MySQL, Oracle Database, PostgreSQL. |
| NoSQL 数据库 | Redis, MongoDB, Cassandra, Neo4J. |
| 数据仓库 | Oracle Exadata, IBM Db2 Warehouse on Cloud, IBM Netezza Performance Server, Amazon RedShift. |
数据管道与 ETL 工具
- 数据管道:具备处理数据管道的高水平熟练度。
- 热门解决方案包括:Apache Beam, AirFlow, DataFLow.
- ETL 工具:具备使用 ETL 工具的经验。
- 示例:IBM Infosphere Information Server, AWS Glue, Improvado.
编程与查询语言
精通用于查询、操作和处理数据的语言,包括:
- 查询语言: 用于访问和操作数据库中的数据,例如关系数据库的 SQL 以及 NoSQL 数据库的类 SQL 查询语言。
- 编程语言: 例如 Python, R, 和 Java。
- Shell 和脚本语言: 例如 Unix/Linux Shell 和 PowerShell。
大数据处理
- 熟悉 Hadoop, Hive, 和 Spark 等大数据处理工具。
提示: 数据工程过程涉及使用多种不同的工具和技术。掌握可比较技术的工作知识,有助于评估不同工具之间的权衡并提出适当的建议。
数据工程与交叉领域
数据工程处于软件工程和数据科学的交汇点。
除了日常使用的工具和技术外,数据工程师还需要对数据科学家、分析师和业务用户如何利用可分析数据有敏锐的理解。
功能性技能 (Functional Skills)
作为数据工程师,以下功能性技能对您很有帮助:
- 需求转换能力: 能够将业务需求转化为技术规范。
- 软件开发生命周期 (SDLC): 能够处理完整的软件开发生命周期,包括构思、架构、设计、原型制作、测试、部署和监控。
- 业务理解: 了解数据在业务中的潜在应用。
- 风险理解: 了解拙劣数据管理的风险,这主要涵盖了数据质量、隐私、安全和合规性。
软技能 (Soft Skills)
数据工程是一项团队运动。
- 团队中可能有多个数据工程师贡献他们的专业知识来协作完成一个项目,并与数据消费者(包括分析师、数据科学家、业务用户和其他技术团队)密切互动。
- 因此,人际交往能力、团队合作和协作对数据工程师至关重要。
- 有效沟通: 作为数据工程师,您需要能够以一种能建立清晰理解的方式,与技术和非技术利益相关者进行有效沟通。
总结:技能的培养与选择
在本视频中,您了解了数据工程师的职责和技能组合。
- 技能广度: 数据工程需要广泛的技能组合。
- 专业化选择: 没有一个数据工程师能够掌握所有这些技能,这意味着您需要选择一个或多个专业领域,但要对所有领域有良好的理解,以便能够做出更明智的决策。
- 持续成长: 您的技能将随着经验、您选择的专注领域以及您投入自我提升的时间而逐渐增长。