【Azure 架构师学习笔记】- Azure Databricks (3) - 再次认识DataBricks

本文属于【Azure 架构师学习笔记】系列

本文属于【Azure Databricks】系列。

接上文 【Azure 架构师学习笔记】- Azure Databricks (2) -集群

前言

在对Databricks有了初步了解之后,如果要深入使用则需要对其进行更深层次的了解。

Databricks

ADB 是一个统一的数据和分析平台。它的主要用户是数据工程师,数据科学家和数据分析师。它是一个托管平台,可以让用户更加专注于数据的使用,而不用操心集群,库,依赖项,升级等与数据不相关的工作。

ADB 在这里特指Azure上的Databricks。它是托管在Azure上的Databricks,可以跟其他Azure 服务一样通过portal创建。意味着它已经原生化地集成到Azure,包括AAD, 其他数据工具等。要注意Databricks是一家公司的产品,Azure更多像是二房东。

Databricks的愿景是Lakehouse, 集中管理数据,使其成为"single source of truth"。 在过去, 数据仓库是主流,然而不适合时代的发展,比如数据架构的预设,很难应对非结构化数据的处理和分析。后来出现的data lakes如Hadoop, 虽然解决或缓解了一部分的问题,但是对于性能和可靠性,又成了一个新的问题。Lakehouse的出现就是为了整合这两类数据平台的优缺点。

Databricks其中一个核心特点是所有底层技术都是开源得,如Spark, Delta, ML Flow等。Databricks 把这些技术集成到一个统一平台并改进以便于企业开箱即用。

Databricks架构

Databricks作为一个统一得平台,不过在大型企业中,它不可能成为唯一的工具去实现所有的工作。所以需要其他工具进行协助,比如在Azure, ADB 用于ETL 和机器学习, Synapse用于进行BI的常规工作。另外也可以通过Power BI触发ADB在Storage Account上进行查询。

Spark

前面提到很多Spark,这是一个开源的,分布式的,基于内存的处理引擎。由于其速度比传统的Hadoop 工具快得多,它越来越受到大数据,机器学习工具的青睐。

在Databricks中,Spark是执行负载和查询的核心引擎,并且Databricks也是创建在原生的Spark之上。

Delta

Delta是一种特定的开源文件格式,用来解决传统数据湖文件格式的限制。在底层上Delta是由Parquet这种针对大数据优化的列存储结构,并添加了元数据和事务日志。它跟Parquet和ORC 的主要区别在于:

  • ACID 事务
  • 可以进行upserts操作。
  • 可以进行索引化。
  • 结合了流式和批处理特性,但是不需要使用复杂的Lambda架构。

SQL Analytics

Databricks提供了一个区域供用户进行基于Data Lake的SQL 的编写,即时输出简单的图形,还有基于SQL 的警告。

何时使用Databricks

  • 当你的数据湖出现了性能问题,或者变得"混浊"时, 可以使用Delta对数据湖进行现代化改造。
  • 机器学习:Databricks的其中一个强项就是机器学习。
  • 大数据集成:从成本和性能来说,大数据的ETL 过程是Databricks的其中一个优势。

不适合用Databricks

  • 即时查询:Spark是一个分布式引擎,其架构不适合进行即时查询的操作。
  • 少量数据:对于GB或以下级别的数据,Databricks并不能发挥优势,反而成本很大。
  • 低代码开发:相比于ADF 这类ETL 工具,ADB 主要使用代码进行操作,如果需要低代码的拖拉拽方式,那Databricks并不适合。

ADB 架构

跟绝大部分Azure资源类似,ADB 也分为Control Plane和Compute Plane(其他资源称为Data Plane)。

Control Plane控制着底层资源和服务,如Notebook, ADB 账号, workspace配置,存储加密等。

Compute plane是用于处理数据。

ADB 由于并不是微软自己开发的产品,微软对其只能进行集成和优化,比如ADB 需要data lake进行存储,需要特定网络访问集群等,这些都需要进行额外的配置,如托管VNet。

下面是来自微软的架构图:

下图则从其他网站上复制,更加简化,适合入门者理解。配上了以下的简单描述:

  • Delta Lake:存储层,帮助Data Lake更加可靠。它集成了流式计算和批处理,并且带有ACID 特性。完全兼容Apache Spark并可以运行在你现有的数据湖上。
  • Delta Engine:对Delta Lake进行了优化处理的查询引擎。
  • 其他内置工具使其能成为统一的数据处理平台。
相关推荐
编码者卢布7 小时前
【Azure 环境】获取Azure上资源的创建时间createdTime信息(ARM REST API版本)
microsoft·azure
编码者卢布1 天前
【Azure Developer】azd 安装最新版无法登录中国区问题二:本地Windows环境遇问题
microsoft·flask·azure
编码者卢布2 天前
【Azure Developer】中国区Azure环境中查看用户账号是否可用(accountEnabled)的操作步骤
microsoft·flask·azure
编码者卢布2 天前
【Azure APIM】如何实现对经过APIM并到达后端服务请求的全链路追踪呢?
python·flask·azure
编码者卢布2 天前
【Azure Stream Analytic】用 JavaScript UDF 解决 JSON 字段被转成 Record 的关键点
javascript·json·azure
编码者卢布2 天前
【Azure App Service】部署在应用服务上的WebJob中,为何会多出一个名为“DaaS“的 WebJob呢?
microsoft·azure
發糞塗牆5 天前
【Azure 架构师学习笔记】 - Azure AI(3)-数据工程在AI系统中的设计(ADF+ADLS)
人工智能·azure
宝桥南山7 天前
Power Platform - 恢复Developer environment
microsoft·微软·azure·rpa
NineData8 天前
NineData 新增支持 Azure SQL Database > PolarDB PostgreSQL
数据库·sql·azure·数据库管理工具·ninedata·数据库迁移·数据库迁移工具
考證寶題庫網9 天前
Designing and Implementing a Microsoft Azure AI Solution 微軟Azure AI-102 認證全攻略
人工智能·microsoft·azure