Skip to main content

Azure Databricks入门 - 概述

分类:  Azure Databricks 标签:  #Azure #入门 #Databricks 发布于: 2023-06-18 19:54:40

我开始学习Azure Databricks的时候遇到的最大困难是没有搞清楚Azure Databicks里面各种各样的名词和概念,这极大的阻碍了我学习该服务的热情和进度。认识到了这个问题之后,我调整了自己的方向,花了一些时间整理了Azure Databricks的基本结构,以及众多的工具和名词,后面再学习这个服务就感觉顺畅了很多,我将这个学习过程记录下来,就有了这个系列的入门文章了。

学习Azure Databricks的时候首先要明确的是Azure Databricks是为谁准备的平台?

总结下来这样几类人群是该服务的目标人群:

  • 数据科学家
  • 数据分析工程师
  • 机器学习工程师

为了向这几类人群提供更好工具和服务,Azure Databricks将自己的服务形态归结为了三类:

  • 数据科学家和数据工程师
  • 机器学习
  • Databricks SQL

看到这里大概率会比较晕,没有关系我们会继续学习。

Azure Databricks官方文档定义是一个数据分析平台,既然是数据分析平台它势必会要具备如下几个功能:

  • 数据提取
  • 数据转换以及其他处理
  • 数据存储

除了这几个功能之外,Azure Databricks还提供了数据仓库(LakeHouse)的功能。

它架构于开源软件Apache Spark之上, 基于云平台,提供了众多的工具来一起完成上述的各种功能要求,我们按照功能来分:

  • 数据提取: 提供各种基于SparkConnector从多种数据源中提取数据,例如可以简单上传文本文件或者多种开源格式的文件,也可以从各种Azure集成的服务,例如Azure StorageAzure Event HubIoT Hub,或其他的开源服务,例如Hive Table等提取数据。同时支持批量数据提取和实时流数据提取。
  • 数据转换以及其他的各种处理:基于开源的Spark的各种低级API, 例如基于PythonScalaJava的API, 高级的API, 例如Spark.SQL, 用户它们进行数据转换。还提供了默认集成的Delta Lake, 这包括Delta tableDelta View, 以及funciton, 也可以用于转换和处理数据。还提供了Delta Live Table用于定义Data pipeline 基于workflow的形式来处理数据提取和转换,这里每一项技术可以单独使用,也可以并行来处理。
  • 提供了LakeHouse,它集合了Data warehouseData lake的优点,用于商业BI, 方便和BI的分析工具集成。

我们上面大致的列出了Azure Databricks提供的工具,但是实际上还有更多的工具:

  • NotebookJobODBC/JDBC集成Azure Databricks使用notebookjob进行交互。也可以通过python或者java通过jdbcodbc连接执行一系列的任务。
  • Rest API: 提供一些类的rest api完成各种资源管理的工作,例如集群创建,job提交监控等等。
  • DBFS: 架构于其他抽象之上的文件系统,用于操作Azure Databricks的数据存取工作。
  • 集群:通过提供三种类型的集群完成不同的工作场景:All-purpose Cluster, Job Cluster, Singe Node cluster.
  • Workspace: 除了通过rest api来管理整个服务和资源,也可以通过UI形式的worksapce 来管理资源。
  • Databricks CLI: 提供命令行工具用于管理资源。

借用官方的一张图来大致的说明一下Azure Databricks的基本架构图:


我们需要对这个架构图做一些说明:

Azure Databricks分为两个主要的部分:

  • Control Panel: 这个部分是由于Azure来管理的,这里部分所有的数据是由Azure Databricks这个服务的内部订阅来存储,它包括一些后端服务,用户的Notebook的定义,以及workspace的配置等,这部分是加密储存的。
  • Data Panel: 这个部分是由用户的订阅来管理的,是用户数据保存的主要位置,用户也可以用连接器链接外部的资源。

Tips
Notebook数据是同时存储在Control PanelData Panel中的,例如notebook的定义或者某些meta数据会存在Control Panel中,但是结果是会存储在Data Panel中的。

我们后面的章节会继续学习Azure Databricks