在 AWS 和 Azure 上使用 Databricks 进行数据工程
使用 Spark、Delta Lake、cloudFiles 等 Databricks 核心功能构建数据工程管道
讲师:Durga Viswanatha Raju Gadiraju
口袋资源独家Udemy付费课程,独家中英文字幕,配套资料齐全!
用不到1/10的价格,即可享受同样的高品质课程,且可以完全拥有,随时随地都可以任意观看和分享。
你将会学到的
- 利用 Databricks 功能的数据工程
- Databricks CLI 用于管理数据工程管道的文件、数据工程作业和集群
- 在作业集群上部署使用 PySpark 开发的数据工程应用程序
- 在作业集群上使用笔记本部署使用 PySpark 开发的数据工程应用程序
- 使用用于数据工程应用程序或管道的 Spark SQL 利用 Delta Lake 执行 CRUD 操作
- 使用 Pyspark 执行 CRUD 操作,利用 Delta Lake 进行数据工程应用程序或管道
- 设置开发环境以使用 Databricks 开发数据工程应用程序
- 在 Databricks 集群上使用 Spark 结构化流构建数据工程管道
- 利用 Databricks Auto Loader cloudFiles 使用 Spark Structured Streaming 进行增量文件处理
- 自动加载程序 cloudFiles 文件发现模式概述 – 目录列表和文件通知
- Auto Loader cloudFiles 文件发现模式之间的差异 – 目录列表和文件通知
- 传统 Spark Structured Streaming 与利用 Databricks Auto Loader cloudFiles 进行增量文件处理的区别。
要求
- 使用 Python 的编程经验
- 使用 Spark 的数据工程经验
- 编写和解释 SQL 查询的能力
- 本课程非常适合经验丰富的数据工程师将 Databricks 作为关键技能之一添加到配置文件中
说明
作为本课程的一部分,你将使用称为 Databricks 的与云平台无关的技术学习所有数据工程。
关于数据工程
数据工程不过是根据我们的下游需求处理数据。作为数据工程的一部分,我们需要构建不同的管道,例如批处理管道、流管道等。与数据处理相关的所有角色都合并在数据工程下。按照惯例,它们被称为 ETL 开发、数据仓库开发等。
关于 Databricks
Databricks 是最流行的与云平台无关的数据工程技术堆栈。他们是 Apache Spark 项目的提交者。Databricks 运行时提供了利用云弹性的 Spark。使用 Databricks,你只需为使用的内容付费。在一段时间内,他们通过提供传统 BI 以及 AI 和 ML 所需的所有功能,提出了 Lakehouse 的想法。以下是 Databricks 的一些核心功能。
- Spark – 分布式计算
- Delta Lake – 执行 CRUD 操作。它主要用于构建在 Data Lake 中的文件中插入、更新和删除数据等功能。
- cloudFiles – 利用云功能以最有效的方式以增量方式获取文件。
- Databricks SQL – 一个基于 Photon 的界面,经过微调,可以运行通过报告工具提交的报告和可视化查询。它也用于临时分析。
课程详情
作为本课程的一部分,你将使用 Databricks 学习数据工程。
- 开始使用 Databricks
- 设置本地开发环境以使用 Databricks 开发数据工程应用程序
- 使用 Databricks CLI 管理与数据工程应用程序相关的文件、作业、集群等
- 构建数据工程应用程序的 Spark 应用程序开发周期
- Databricks 作业和集群
- 作为 Python 应用程序在 Databricks 作业集群上部署和运行数据工程作业
- 使用笔记本在 Databricks 作业集群上部署和运行数据工程作业
- 在 Databricks 平台上使用 Dataframes 深入了解 Delta Lake
- 在 Databricks 平台上使用 Spark SQL 深入了解 Delta Lake
- 在 Databricks 集群上使用 Spark 结构化流构建数据工程管道
- 利用 Databricks Auto Loader cloudFiles 使用 Spark Structured Streaming 进行增量文件处理
- AutoLoader cloudFiles 文件发现模式概述 – 目录列表和文件通知
- Auto Loader cloudFiles 文件发现模式之间的差异 – 目录列表和文件通知
- 传统 Spark Structured Streaming 与利用 Databricks Auto Loader cloudFiles 进行增量文件处理的区别。
- 用于数据分析和报告的 Databricks SQL 概述。
在接下来的几周内,我们将添加更多与 Pyspark、Spark with Scala、Spark SQL 和 Streaming Pipelines 相关的模块。
目标受众
这是此高级课程的目标受众。
- 经验丰富的应用程序开发人员可以通过先验知识和 Spark 经验获得与数据工程相关的专业知识。
- 经验丰富的数据工程师可以获得足够的技能来将 Databricks 添加到他们的个人资料中。
- 测试人员使用 Databricks 提高与数据工程应用程序相关的测试能力。
先决条件
- 后勤
- 配置不错的计算机(至少 4 GB RAM,但非常需要 8 GB)
- 双核是必需的,四核是非常需要的
- Chrome 浏览器
- 高速互联网
- 有效的 AWS 账户
- 有效的 Databricks 帐户(免费的 Databricks 帐户是不够的)
- 作为数据工程师的经验,尤其是使用 Apache Spark
- 了解一些云概念,例如存储、用户、角色等。
相关费用
作为培训的一部分,你只会获得材料。你需要在自己或公司的云帐户和 Databricks 帐户上进行练习。
- 你需要处理相关的 AWS 或 Azure 成本。
- 你需要处理相关的 Databricks 成本。
训练方法
以下是有关培训方法的详细信息。
- 它使用 Udemy 提供的参考资料、代码片段和视频自定进度。
- 需要注册自己的 Databricks 环境来练习 Databricks 的所有核心功能。
- 我们建议每周花4 到 5 个小时完成 2 个模块。
- 强烈建议处理所有任务,以便获得 Databricks 的真实体验。
- 将通过 Udemy 问答提供支持。
这是详细的课程大纲。
Azure 上的 Databricks 入门
作为本节的一部分,我们将详细介绍如何注册 Azure 并在 Azure 上设置 Databricks 集群。
- Azure 上的 Databricks 入门
- 注册 Azure 帐户
- 登录并增加 Azure 中区域 vCPU 的配额
- 创建 Azure Databricks 工作区
- 启动 Azure Databricks 工作区或群集
- Azure Databricks UI 快速演练
- 创建 Azure Databricks 单节点群集
- 使用 Azure Databricks UI 上传数据
- 使用 Azure Databricks 创建笔记本和验证文件的概述
- 使用 Azure Databricks Notebook 开发 Spark 应用程序
- 使用 Azure Databricks Notebook 验证 Spark 作业
- Azure Databricks Notebooks 的导出和导入
- 终止 Azure Databricks 集群并删除配置
- 通过删除资源组来删除 Azure Databricks 工作区
适用于 Databricks 的 Azure Essentials – Azure CLI
作为本节的一部分,我们将详细介绍如何设置 Azure CLI 以使用相关命令管理 Azure 资源。
- 适用于 Databricks 的 Azure Essentials – Azure CLI
- 使用 Azure 门户云外壳的 Azure CLI
- 在 Mac 上开始使用 Azure CLI
- 在 Windows 上开始使用 Azure CLI
- 使用 Azure CLI 预热 – 概述
- 使用 Azure CLI 创建资源组
- 在资源组中创建 ADLS 存储帐户
- 添加容器作为存储帐户的一部分
- 将数据上传到 ADLS 文件系统或容器的概述
- 在本地设置数据集以上传到 ADLS 文件系统或容器
- 将本地目录上传到 Azure ADLS 文件系统或容器
- 使用 Azure CLI 删除 Azure ADLS 存储帐户
- 使用 Azure CLI 删除 Azure 资源组
将 ADLS 装载到 Azure Databricks 以访问 Azure Blob 存储中的文件
作为本节的一部分,我们将详细介绍与将 Azure Data Lake Storage (ADLS) 挂载到 Azure Databricks 群集相关的详细信息。
- 将 ADLS 挂载到 Azure Databricks – 简介
- 确保 Azure Databricks 工作区
- 使用 Python 虚拟环境在 Mac 或 Windows 上设置 Databricks CLI
- 为新的 Azure Databricks 工作区配置 Databricks CLI
- 注册 Azure Active Directory 应用程序
- 为 AD 应用程序客户端密码创建 Databricks 密码
- 创建 ADLS 存储帐户
- 将存储帐户上的 IAM 角色分配给 Azure AD 应用程序
- 设置零售数据库数据集
- 创建 ADLS 容器或文件系统并上传数据
- 启动 Databricks 集群以挂载 ADLS
- 将 ADLS 存储帐户装载到 Azure Databricks
- 验证 Azure Databricks 群集上的 ADLS 装载点
- 从 Databricks 卸载挂载点
- 删除用于将 ADLS 挂载到 Azure Databricks 的 Azure 资源组
为 Databricks 设置本地开发环境
作为本节的一部分,我们将详细介绍如何使用 Pycharm、Databricks dbconnect、Databricks dbutils 等工具为 Databricks 设置本地开发环境。
- 设置单节点 Databricks 集群
- 安装 Databricks 连接
- 配置 Databricks 连接
- 将 Pycharm 与 Databricks Connect 集成
- 将 Databricks 集群与 Glue 目录集成
- 设置 AWS s3 存储桶并授予权限
- 将 s3 存储桶挂载到 Databricks 集群中
- 使用来自 IDE(例如 Pycharm)的 Databricks dbutils
使用 Databricks CLI
作为本节的一部分,我们将概述 Databricks CLI 以与 Databricks 文件系统或 DBFS 交互。
- Databricks CLI 简介
- 安装和配置 Databricks CLI
- 使用 Databricks CLI 与 Databricks 文件系统交互
- 使用 Databricks CLI 获取 Databricks 集群详细信息
Databricks 作业和集群
作为本节的一部分,我们将介绍与 Databricks 作业和集群相关的详细信息。
- Databricks 作业和集群简介
- 在 Databricks 平台中创建池
- 在 Azure Databricks 上创建集群
- 请求增加 Azure 上的 CPU 配额
- 在 Databricks 上创建作业
- 使用 Databricks 作业集群提交作业
- 在 Databricks 中创建池
- 使用附加到池的交互式 Databricks 集群运行作业
- 使用附加到池的 Databricks 作业集群运行作业
- 练习 – 使用 Databricks 交互式集群将应用程序作为作业提交
在 Databricks 上部署和运行 Spark 应用程序
作为本节的一部分,我们将详细介绍在 Databricks 集群上部署 Spark 应用程序以及运行这些应用程序的相关细节。
- 为 Databricks 准备 PyCharm
- 准备数据集
- 将文件移动到 ghactivity
- 重构 Databricks 代码
- 使用 Databricks 验证数据
- 为生产部署设置数据集
- 使用 Databricks dbutils 访问文件元数据
- 为 Databricks 构建可部署包
- 使用 Databricks Web UI 运行作业
- 使用 Databricks CLI 获取作业和运行详细信息
- 使用 CLI 提交 Databricks 作业
- 设置和验证 Databricks 客户端库
- 使用 Databricks Jobs API 重置作业
- 使用 Python 以编程方式运行 Databricks 作业
- 使用 Databricks Notebooks 详细验证数据
使用笔记本部署和运行 Spark 作业
作为本节的一部分,我们将介绍与在 Databricks 集群上部署 Spark 应用程序以及使用 Databricks Notebooks 运行这些应用程序相关的详细信息。
- 模块化 Databricks 笔记本
- 使用 Databricks Notebook 运行作业
- 将应用程序重构为 Databricks 笔记本
- 使用 Databricks 开发集群运行 Notebook
使用 Databricks 上的 Spark 数据帧深入了解 Delta Lake
作为本节的一部分,我们将介绍与使用 Spark 数据帧的 Databricks Delta Lake 相关的所有重要细节。
- 在 Databricks 上使用 Spark 数据帧的 Delta Lake 简介
- 在 Databricks 上为 Delta Lake 创建 Spark 数据帧
- 在 Databricks 上使用 Delta 格式编写 Spark 数据帧
- 在 Databricks 上使用 Delta 格式更新现有数据
- 在 Databricks 上使用 Delta 格式删除现有数据
- 在 Databricks 上使用 Delta 格式合并或更新数据
- 在 Databricks 上的 Delta Lake 中使用合并删除
- 使用 Databricks 上的增量日志进行快照恢复
- 在 Databricks 上使用 Vacuum 删除不必要的 Delta 文件
- 在 Databricks 上压缩 Delta Lake 文件
在 Databricks 上使用 Spark SQL 深入了解 Delta Lake
作为本节的一部分,我们将介绍与使用 Spark SQL 的 Databricks Delta Lake 相关的所有重要细节。
- 在 Databricks 上使用 Spark SQL 的 Delta Lake 简介
- 在 Databricks 上使用 Spark SQL 创建 Delta Lake 表
- 在 Databricks 上使用 Spark SQL 将数据插入 Delta Lake 表
- 在 Databricks 上使用 Spark SQL 更新 Delta Lake Table 中的数据
- 在 Databricks 上使用 Spark SQL 从 Delta Lake 表中删除数据
- 使用 Databricks 上的 Spark SQL 将数据合并或插入到 Delta Lake 表中
- 在 Databricks 上使用 Spark SQL 在 Delta Lake 表上使用合并函数
- 在 Databricks 上使用 Spark SQL 使用 Delta Lake Table 进行快照恢复
- 在 Databricks 上使用 Spark SQL 清理 Delta Lake 表
- 在 Databricks 上使用 Spark SQL 压缩 Delta Lake 表
通过 Web 和 SSH 访问 Databricks 集群终端
作为本节的一部分,我们将了解如何通过 Web 和 SSH 访问与 Databricks Cluster 相关的终端。
- 在 Databricks 管理控制台中启用 Web 终端
- 启动 Databricks 集群的 Web 终端
- 为 Databricks 集群驱动程序节点设置 SSH
- 验证与 AWS 上 Databricks 驱动程序节点的 SSH 连接
- SSH 的限制以及与 Databricks 集群相关的 Web 终端的比较
使用初始化脚本在 Databricks 集群上安装软件
作为本节的一部分,我们将了解如何通过为我们的应用程序安装相关的 3rd 方库来引导 Databricks 集群。
- 在 Databricks 集群上设置 gen_logs
- Databricks 集群的初始化脚本概述
- 创建脚本以在 Databricks 集群上从 git 安装软件
- 将初始化脚本复制到 dbfs 位置
- 使用 init 脚本创建 Databricks 独立集群
Spark 结构化流的快速回顾
作为本节的一部分,我们将快速回顾一下 Spark 结构化流。
- 在 Databricks 驱动程序节点上验证 Netcat
- 将日志消息推送到 Databricks 驱动程序节点上的 Netcat Webserver
- 使用 Spark Structured Streaming 读取 Web 服务器日志
- 将流数据写入文件
在 Databricks 上使用 Spark 结构化流的增量负载
作为本节的一部分,我们将了解如何在 Databricks 上使用 Spark 结构化流执行增量加载。
- Spark 结构化流式处理概述
- 在 Databricks 上进行增量数据处理的步骤
- 使用实例配置文件配置 Databricks 集群
- 使用 Databricks Notebooks 将 GHArchive 文件上传到 AWS s3
- 在 Databricks 上使用 Spark 结构化流读取 JSON 数据
- 在 Databricks 上使用 Trigger Once 使用 Delta 文件格式写入
- 使用 Databricks 上的 Spark 分析 Delta 文件中的 GHArchive 数据
- 在 Databricks 上添加新的 GHActivity JSON 文件
- 将数据增量加载到 Databricks 上的目标表
- 验证 Databricks 上的增量负载
- Databricks 上 Spark 结构化流文件处理的内部结构
使用 Databricks 上的 autoLoader 云文件进行增量加载
作为本节的一部分,我们将了解如何在 Databricks 集群上使用 autoLoader cloudFiles 执行增量加载。
- Databricks 上的 AutoLoader cloudFiles 概述
- 将 GHArchive 文件上传到 Databricks 上的 s3
- 在 Databricks 上使用 AutoLoader cloudFiles 写入数据
- 在 Databricks 上添加新的 GHActivity JSON 文件
- 将数据增量加载到 Databricks 上的目标表
- 在 Databricks 上添加新的 GHActivity JSON 文件
- 在 Databricks 上使用 AWS 服务处理 S3 事件的概述
- 为 Databricks 上的 cloudFiles 文件通知配置 IAM 角色
- 在 Databricks 上使用 cloudFiles 文件通知进行增量加载
- 查看 AWS 服务以获取 Databricks 上的 cloudFiles 事件通知
- 查看为 Databricks 上的 cloudFiles 检查点生成的元数据
Databricks SQL 集群概述
作为本节的一部分,我们将概述 Databricks SQL 集群。
- Databricks SQL 平台概述 – 简介
- 使用 Databricks SQL 的 SQL 编辑器运行第一个查询
- 使用 Databricks SQL 的仪表板概述
- 用于查看 Metastore 数据库和表的 Databricks SQL 数据资源管理器概述
- 使用 Databricks SQL 编辑器开发脚本或查询
- 使用 Databricks SQL 平台查看表的元数据
- 将数据加载到retail_db 表中的概述
- 配置 Databricks CLI 以将数据推送到 Databricks 平台
- 使用 Databricks CLI 将 JSON 数据复制到 DBFS
- 使用 Spark API 分析 JSON 数据
- 使用 Spark API 分析 Delta 表模式
- 将 Spark 数据帧中的数据加载到 Delta 表中
- 使用 Databricks SQL 编辑器运行即席查询以验证数据
- 使用 Databricks SQL 的外部表概述
- 使用 COPY 命令将数据复制到 Delta 表中
- 管理 Databricks SQL 端点
此课程面向哪些人:
- 想要学习 Databricks for Data Engineering 的初学者或中级数据工程师
- 想要使用 Databricks 探索数据工程的中级应用工程师
- 想要使用 Databricks 学习数据工程的数据和分析工程师
- 想要学习 Databricks 以测试使用 Databricks 构建的数据工程应用程序的测试人员