Module 02 · The Data Engineering Ecosystem数据工程生态系统
Languages for Data Professionals查询、编程与脚本语言概览
本视频旨在介绍与数据专业人士工作相关的多种语言。这些语言可被归类为:查询语言、编程语言和Shell 脚本。
📌 核心要求:对于任何数据专业人士而言,精通至少每种类别中的一种语言至关重要。
语言类别速览
| 类别 | 目的 | 示例 |
|---|---|---|
| 查询语言 | 设计用于访问和操作数据库中的数据。 | SQL |
| 编程语言 | 设计用于开发应用程序和控制应用程序行为。 | Python、R、Java |
| Shell 和脚本语言 | 适用于重复且耗时的操作任务。 | Unix/Linux Shell、PowerShell |
查询语言:SQL (Structured Query Language)
SQL(结构化查询语言) 是一种查询语言,主要(但并非唯一)设计用于访问和操作关系数据库中的信息。
核心操作
使用 SQL,可以编写一系列指令来执行以下操作:
- 在数据库中插入、更新和删除记录。
- 创建新的数据库、表和视图。
- 编写存储过程:即编写一套指令并调用它们供以后使用。
SQL 的优势
- 可移植性:SQL 是可移植的,可以独立于平台使用。
- 广泛适用性:可用于查询各种数据库和数据存储库中的数据,尽管每个供应商可能存在一些变体和特殊扩展。
- 语法简洁:其语法与英语相似,简单直观。
- 高效简洁:使用
SELECT、INSERT INTO和UPDATE等基本关键字,开发人员可以用比其他一些编程语言更少的代码行编写程序。 - 快速检索:能够快速高效地检索大量数据。
- 解释器系统:它在解释器系统上运行,代码可以立即执行,使原型制作快速简便。
- 流行度高:SQL 是最流行的查询语言之一,凭借其庞大的用户社区和多年积累的文档,在全球范围内持续为所有用户提供统一的平台。
编程语言
Python
Python 是一种广泛使用的开源、通用、高级编程语言。
Python 的特点与优势
- 易学性与简洁性
- 被认为是最容易学习的语言之一,拥有庞大的开发社区。
- 语法允许程序员以更少的代码行表达概念。
- 专注于简洁性和可读性,学习曲线低,是初学者的理想工具。
- 与其他语言相比,使用 Python 完成任务所需的代码行数更少。
- 高性能计算
- 非常适合处理大量数据中的高计算任务,否则会极其耗时和繁琐。
- 提供 Numpy 和 Pandas 等库,通过并行处理简化了此类任务。
- 多范式支持
- 支持多种编程范式,如面向对象、指令式、函数式和过程式,使其适用于广泛的使用案例。
- 开源与跨平台
- 开源,免费,采用社区驱动的开发模式。
- 可在 Windows 和 Linux 环境中运行,并可移植到多个平台。
- 丰富的库生态系统
- 拥有广泛的社区支持和大量实用的分析库。
- 拥有多个开源库,用于数据操作、数据可视化、统计学和数学等。
- 主要库和功能包括:
- Pandas:用于数据清洗和分析。
- Numpy 和 Scipy:用于统计分析。
- Beautifulsoup 和 Scrapy:用于网络爬虫。
- Matplotlib 和 Seaborn:用于以条形图、直方图和饼图等形式进行数据可视化。
- OpenCV:用于图像处理。
R
R 是一种开源编程语言和环境,专为数据分析、数据可视化、机器学习和统计学而设计。
R 的关键优势
- 数据分析核心:广泛用于开发统计软件和执行数据分析。
- 强大的可视化能力:特别以其创建引人注目的可视化的能力而闻名,使其在该领域优于其他一些语言。
- 开放且独立于平台:是一种开源、独立于平台的编程语言。
- 可配对性:可以与包括 Python 在内的多种编程语言搭配使用。
- 高度可扩展:开发人员可以通过定义新函数持续添加功能。
- 全面的数据处理能力:有助于处理结构化和非结构化数据,具备更全面的数据处理能力。
- 图形库:拥有 Ggplot2 和 Plotly 等库,为用户提供美观的图形绘制。
- 报告与交互式应用:可以制作嵌入数据和脚本的报告,以及允许用户与结果和数据进行交互的交互式 Web 应用。
- 统计工具开发的主导者:在开发统计工具方面,R 在其他编程语言中占据主导地位。
Java
Java 是一种面向对象、基于类、独立于平台的编程语言,最初由 Sun Microsystems 开发。
Java 的应用
- 高排名:是当今使用的排名靠前的编程语言之一。
- 数据分析流程:Java 应用于数据分析的多个过程,包括数据清洗、数据导入导出、统计分析和数据可视化。
- 大数据框架:大多数流行的大数据框架和工具(如 Hadoop、Hive 和 Spark)通常都是用 Java 编写的。
- 速度关键项目:完美适用于对速度要求苛刻的项目。
Shell 和脚本语言
Unix/Linux Shell
Unix/Linux Shell 是为 UNIX Shell 编写的计算机程序。它是一系列以纯文本文件编写的 UNIX 命令,用于完成特定的任务。
用途与优点
- 编写快速简便:编写 Shell 脚本快速简便。
- 自动化重复任务:对于重复性任务最有用,这些任务如果每次输入一行命令会非常耗时。
- 典型的操作包括:
- 文件操作
- 程序执行
- 系统管理任务,如磁盘备份和评估系统日志
- 复杂程序的安装脚本
- 执行例行备份
- 运行批处理
PowerShell
PowerShell 是 Microsoft 推出的一款跨平台自动化工具和配置框架。
核心特性
- 优化目标:它针对处理 JSON、CSV、XML 等结构化数据格式以及 REST API、网站和办公应用进行了优化。
- 组成:由一个命令行 Shell 和脚本语言组成。
- 面向对象:PowerShell 是面向对象的,这使得对流经数据管道的对象可以执行过滤、排序、测量、分组、比较等多种操作。
- 其他应用:它也是一个用于数据挖掘、构建 GUI 以及创建图表、仪表板和交互式报告的优秀工具。