Databricks Data Science&Engineering 模块介绍
Databricks Data Science&Engineering 架构
Databricks 数据科学与工程(有时简称为“工作区”)是基于 Apache Spark 的数据开发 &分析平台。 它最早是与 Azure 集成,以提供一键式安装程序、简化的工作流程以及交互式工作区,从而使数据工程师、数据科学家和机器学习工程师之间可以进行协作。
使用大数据管道时,原始或结构化的数据将通过 Azure 数据工厂以批的形式引入 Azure,或者通过 Apache Kafka、事件中心或 IoT 中心进行准实时的流式传输。 此数据将驻留在 Data Lake(长久存储)、Azure Blob 存储或 Azure Data Lake Storage 中。 在运行分析工作流的过程中,可以使用 Azure Databricks 从 Azure Blob 存储、Azure Data Lake Storage、Azure Cosmos DB 或 Azure SQL 数据仓库等多个数据源读取数据,并使用 Spark 将数据转化为前所未有的见解。
(Azure Databricks 典型数据分析应用场景)
(Azure Databricks 产品界面)
功能特性 &产品使用介绍
1)工作区(Workspace)
一个交互式的工作区,是用于访问所有 Databricks 资产的环境。用户(主要是数据的消费者)可以通过这个工作区进行合作。工作区将对象(笔记本、库、仪表板和试验)组织成文件夹,并提供对数据对象和计算资源的访问。
2)笔记本(Notebook)
一个包含可执行命令的记事本,用户可以在 Notebook 中编写 Python 命令,编辑命令,并执行命令,获得输出的结果,并可以对结果进行可视化处理,Notebook 的功能和 UI 类似于 Jupyter Notebook。(交互式代码编辑器)
当我们选择“sql”语言后,在 notebook 中便可以开始编写 task,其 notebook 支持多种常见语法,“%{label}”代表指定语义,比如“%md”、“%sql”则分别表示 markdown 语法和 sql 语法。编写完后使用"ctrl+shift+enter"可即时执行该 task,并返回执行结果。
3)作业(Job)
作业可以只包含一个任务,或者也可以是一个具有复杂依赖项的大型多任务工作流。Job 用于立即或按照计划来运行 notebook 或 library。job 类型的集群在 job 开始时创建,在 job 完成时结束。
调度配置:
4)集群(Cluster)
运行 Notebook 或 job 的资源。Cluster 有两种类型:通用(All-purpose)和 job,all-purpose 集群是交互式的,用于通用的数据集成和数据分析任务,而 job 类型的集群用于定时运行 job。下图展示了创建一个 spark cluster 的过程,包括指定运行时、worker 与 driver 节点等。
在指定 worker type 和 driver type 时,展示了实例的规格,其相应报价可参照:https://azure.microsoft.com/en-us/pricing/details/databricks/#overview
5)工作流(Workflow)
用于开发和运行数据处理管道的框架,快速构建具有依赖项的各种 pipeline,典型的流式 pipeline 如 Delta live tables,同时还集成了多种合作 partner 的 pipeline 如 dbt。
以一个工作流程为例:
摄取原始点击流数据并执行处理以会话化记录。
摄取订单数据并将其与会话化的点击流数据相结合,以创建准备好的数据集以进行分析。
从准备好的数据中提取特征。
并行执行任务以保留特征并训练机器学习模型。
要想完成上述流程,通过 job 入口进入后,点击“+”按钮开始往工作流画布中添加 task。在 task 配置页面,可从中选择提前通过 notebook 已创建好的 task,在“depends on”选项中,可选择当前画布中已创建的 task 作为其依赖,视具体场景配置“advanced options”,确定后,重复上述过程,即可成功创建一个目标 workflow。
6)Databricks 与各种数据源、开发人员工具和合作伙伴解决方案集成
数据源:Databricks 可以从各种数据格式(例如 CSV、Delta Lake、JSON、Parquet、XML 和其他格式)以及数据存储提供程序(例如 Azure Data Lake Storage、Google BigQuery 和 Cloud Storage、Snowflake 及其他提供程序)中读取和写入数据。
开发人员工具:Databricks 支持各种开发人员工具,借助这些工具,你可以编写代码,通过 Databricks 集群和 Databricks SQL 仓库处理数据。 其中包括 IDE、连接器和驱动程序、IaC 平台、CI/CD 工具、CLI、REST API 和身份验证方法。
合作伙伴解决方案:Databricks 已验证与各种第三方产品(如 Fivetran、Power BI、Tableau 等)的集成。借助这些解决方案,用户可以通过 Databricks 集群和 SQL 仓库处理数据,并且在许多情况下具有低代码和无代码体验。 这些解决方案支持常见场景,例如数据引入、数据准备和转换、商业智能 (BI) 和机器学习。
Databricks 合作伙伴
Databricks 在在世界各地有数百个全球合作伙伴,包括 Microsoft、Amazon、Tableau、Informatica、Cap Gemini 和 Booz Allen Hamilton 等。这些合作伙伴关系的建立,可以帮助客户方的数据团队解决世界上最棘手的数据问题。
合作伙伴介绍:https://learn.microsoft.com/zh-cn/azure/databricks/integrations/partners。
Databricks 创新之处
支持不同类型用户的数据访问
要使用 SQL 访问数据,必须有人去处理原始数据,并做结构化处理。那么是否能用基本的 SQL 语句完成数据转换?答案虽然是肯定的,但只能祝一切好运。SQL 有其强大之处,但并非适用于一切。SQL 并非一种通用编程语言,因此非常难以实现递归和循环,难以使用变量。Databricks 产品支持执行 Spark、Python、Scala、Java 和 R 等语言,适用于不同类型的用户。
Spark 等 Databricks 产品支持处理各种的类型数据,结构化的、半结构化的,以及非结构化的。
数据存储层和处理层的完全解耦
Databricks 实现了计算和存储的分离,可处理在任何位置、以任何格式存储的数据。不需要任何专用的格式或工具,因此数据迁移具有高度的灵活性。
强大的数据版本控制
Databricks 原生支持 DELTA 格式。Delta Lake 是完全兼容 ACID 的,这就解决了 Spark 的不兼容 ACID 这一主要问题。此外,Delta Lake 支持在流水线出现错误时恢复系统,并易于对数据提供确保,例如确保开发模型中所使用的数据不变
Databricks 魔力象限
Databricks 在 2021 年 Gartner 魔力象限图有 1 个关键变化:在 DBMS(云数据库管理系统,Cloud Database Management Systems)领域处于领导者象限。另一个则是在 2019 年于 DSML(数据科学和机器学习平台,Data Science and Machine Learning)领域同样入选了领导者象限。从中我们可以看到,Databricks 在 DSML 方向的领先地位,以及正在发力的 DBMS 方向。
Databricks 市场情况
融资及估值:
根据 2021 年的报告,Databricks 的年度经常性收入(ARR)达到 6 亿美元,高于 2020 财年的 4.25 亿美元,且 ARR 预计将达到 30%的年增长率。2021 年 8 月 31 日的最新一轮融资中,其估值达到 $380 亿。
客户:
Databricks 已经与亚马逊、Google、微软以及阿里巴巴等全球领先的公共云服务提供商建立了合作关系,且全球有超过 40%的财富 500 强企业都在使用 Databricks 的云平台,如今,全球 7000 多家组织(包括荷兰银行、康泰纳仕、H&M 集团、再生元和壳牌)依靠 Databricks 实现大规模数据工程、协作数据科学、全生命周期机器学习和业务分析。
收费模式:
Databricks 将服务器与功能服务的费用分开收取,用户的账单主要分为两部分:常规的底层云厂商服务器租用成本,以及 Databricks 在这些服务器上的功能费用。客户使用底层服务器时,费用单独付给云厂商,并不算在 Databricks 的营收里。
(Databricks 计费标准)
Databricks 为何如此成功?
以下访谈来自播客“what's next”对 Databricks 联合创始人进行的访谈,问的几个关键问题很好的回答了 Databricks 的成功因素。
Databricks 如此成功是因为做对了什么?
从开始就坚持三个原则:All in Cloud、不做数据仓库、不做定制化和 Support。
All in Cloud 和不做定制化和 Support:使得基础软件能够规模化,最大化公司人员的单位产出。感觉有点像用 ToC 的方式去做 ToB 的产品,但也唯有如此,才能发挥软件架构价值,撑起想象力。
不做数据仓库:有其他一些大厂、云厂商本身也有平台优势,避开太卷的赛道。
在发展过程中对上述信条有没有过怀疑?
有过,还算比较幸运,因为都知道云是未来,但不知道这个未来是多久。比如 Cloudera 在 08-09 年成立时,从名字就可以看出想开启云时代,但生不逢时,后来还是改变了策略。也有过很多其他道路的诱惑,比如有个 1000w 美元的大单子,只要求提供 support 。而刚开始时,Databricks 产品的营收甚至不如做 Spark 峰会的卖票钱。
刚开始,All in Cloud 都会受到挑战,但是到 2018~2019 年左右就开始形成了共识,没人挑战了。
相对云厂商资深产品有什么优势?
云厂商有很多业务分散精力,小公司能够更专注,对 Spark 技术积累更多、所面临的场景理解更深。
Databricks 有没有业务暴增的转折点?
没有严格意义上的大客户的转折点,但有和 Azure 的合作值得一说。
15 年的时候 Amazon host Spark 已经有几个亿的营收了。Databricks 在 17 年和 Azure 的合作,做了叫做 Azure Databricks 的一款产品,大卖,成为了 Azure 的标杆服务。Azure 与 Databricks 互相成就,共同做大。
为什么决定做湖仓一体?
计算自然延伸到存储,开始做数据湖(面向数据科学家、深度学习场景)。为了消除用户组织内部的数据壁垒,自然想能不能打通数据湖和数据仓库。于是提出湖仓一体(Lakehouse)。
引文:
1、databricks 工作区介绍,https://learn.microsoft.com/zh-cn/azure/databricks/scenarios/workspace/
2、现代数据架构指南,https://future.com/emerging-architectures-modern-data-infrastructure/
3、databricks 定价,https://azure.microsoft.com/en-us/pricing/details/databricks/#overview
4、Databricks:未来最值得期待的数字领域超级独角售,2022-06-01,https://www.modb.pro/db/414934
5、Databricks 合作伙伴,https://learn.microsoft.com/zh-cn/azure/databricks/integrations/partners
评论