Sider.ai
  • 聊天
  • Wisebase
  • 工具
  • 浏览器插件
  • 客户端
  • 价格
立即下载
登录

通过Sider更快学习、更深入思考、更聪明成长。

产品
应用
  • 扩展程序
  • iOS
  • Android
  • Mac OS
  • Windows
Wisebase
  • Wisebase
  • Deep Research
  • Scholar Research
  • Math Solver
  • Rec NoteNew
  • Audio To Text
  • Gamified Learning
  • Interactive Reading
  • ChatPDF
工具
  • 网站生成器New
  • AI PPTNew
  • 写作大师
  • Nano Banana Pro
  • Nano Banana Infographic
  • 图片生成
  • 意大利脑洞
  • 背景移除
  • 背景替换
  • 区域抹除
  • 文字移除
  • 局部重绘
  • 画质提升
  • 创作者
  • 文本翻译
  • 图片翻译
  • PDF翻译
Sider
  • 联系我们
  • 帮助中心
  • 下载
  • 价格
  • 教育优惠
  • 新功能
  • 博客
  • 社区
  • 合作伙伴
  • 联盟
  • 邀请
©2026 版权所有
使用条款
隐私政策
  • 首页
  • 博客
  • AI 工具
  • 如何使用 Databricks 而不失去你的周末(或理智)

如何使用 Databricks 而不失去你的周末(或理智)

更新于 2025年9月28日

11 分钟


你是否尝试过用电子表格来完成工厂传送带的工作?几年前的夏天,我就是这样,试图用一台像雷雨中吉娃娃一样呜咽的笔记本电脑来处理数百万个日志文件。那时有人说:“你试过 Databricks 吗?”就像唱片突然停止播放一样。
如果“Spark”、“集群”和“Delta Lake”这些词让你想逃之夭夭,那么好消息是:使用 Databricks 不必感觉像驾驶火箭飞船。把它想象成数据人员的共享厨房——厨师(你和你的团队)可以带来食材(数据),使用炉灶(计算集群),并按照食谱(notebook)烹饪出真正能满足业务需求的膳食(分析、仪表板、机器学习模型)。
在本指南中,我们将设置你的工作区,启动你的第一个集群,在 notebook 中编写代码,使用 SQL 进行查询,将结果保存在 Delta 表中,安排作业,并避免两个经典的陷阱:意外的账单和神秘的“为什么我的作业失败了?”之夜。我将保持内容的通俗易懂、实用和诚实——就像两个邻居隔着栅栏交换技巧一样,只不过栅栏是由 parquet 文件组成的。
Databricks 到底是什么? 将 Databricks 想象成一个用于大数据和 AI 的一体化工作室。它将 Apache Spark 封装在一个友好的界面中,添加了协作式 notebook,使用 Delta Lake(一种超级表格格式)管理数据,并为你提供治理工具,这样你就不会不小心让数据水龙头整夜开着。你可以编写 Python、SQL、Scala 或 R;混合搭配;并邀请团队成员在同一个 notebook 中工作,而不会互相肘击。
你的心智模型
  • Workspace(工作区):你的项目总部——用户、notebook、仓库、作业。
  • Compute(计算):集群(用于 notebook 和作业)和 SQL Warehouses(SQL 仓库)(用于 BI/SQL 查询)。
  • Storage(存储):你的云数据 (S3/ADLS/GCS)。Databricks 添加了一个友好的目录,其中包含你可以查询的表。
  • Governance(治理):访问控制和 Unity Catalog,以便合适的人员看到合适的数据。
  • Pipelines(流水线):用于数据工程的 Delta Live Tables;用于安排任务的 Jobs;用于实验和模型的 MLflow。
步骤 1:创建或加入工作区 如果你的公司已经有 Databricks,你将收到邀请。否则,注册一个试用版(选择你喜欢的云),并创建一个工作区。你将进入一个干净的、带有左侧边栏的界面。不要对这些选项感到恐慌——我们将从 Workspace(工作区)、Compute(计算)和 Data(数据)这三个开始。
步骤 2:启动你的第一个集群(底层“引擎”) 集群只是一堆 Databricks 为你启动的云机器。
  • 单击 Compute(计算)→ New Cluster(新建集群)。
  • 选择一个集群模式(从 Single user(单用户)或 Shared(共享)开始进行测试)。
  • 选择一种小型实例类型以保持成本友好。
  • 启用自动终止(例如,15-30 分钟)。这是云的“熄灯”定时器。
  • 创建。等待一两分钟;你将看到一个绿色的“Running(正在运行)”。
Pogue 提示:将你的集群命名为显而易见的东西(“dev-pogue-15min-autoterm”)。未来的你会感谢你。
步骤 3:打开一个 notebook(你的“工作台”)
  • Workspace(工作区)→ New(新建)→ Notebook。
  • 选择一种语言。Python 是一个舒适的起点;你仍然可以使用 magic 命令运行 SQL。
  • 将 notebook 附加到你正在运行的集群(顶部的下拉菜单)。
尝试你的第一个单元格:
print("Hello, Databricks!")
然后尝试一个 Spark 预告片:
spark.range(5).show
恭喜你,你刚刚启动了一个分布式计算引擎来数到五。你正式成为一名数据向导。
步骤 4:引入数据(“食材架”) 你可以导入文件,连接到对象存储,或查询现有表。
  • 单击侧边栏中的 Data(数据)。你将看到 catalogs(目录)和 schemas(模式)(表的文件夹),以及添加数据的选项。
  • 如果你有一个 CSV 文件,上传它以进行快速测试。Databricks 可以推断模式。
使用 Python 读取云存储中的 CSV:
df = spark.read.option("header", True).csv("/mnt/my-bucket/sales.csv") df.printSchema
df.limit(10).display
该 display 函数是 Databricks 的魔法:轻松排序、过滤和快速绘制图表。
步骤 5:将你的结果保存为 Delta 表(为什么选择 Delta?) Delta 表就像具有超能力的电子表格:它们保持事务保证(“ACID”),跟踪版本,并使更新/插入/合并变得合理。
df.write.mode("overwrite").format("delta").saveAsTable("analytics.sales_clean")
现在你可以使用 SQL 进行查询:
-- 使用 %%sql 将你的单元格切换到 SQL %%sql SELECT product, SUM(amount) AS total FROM analytics.sales_clean GROUP BY product ORDER BY total DESC
想要具有审计友好性的、版本化的数据?你可以时间旅行:
%%sql SELECT * FROM analytics.sales_clean VERSION AS OF 2
步骤 6:与 SQL Warehouses(SQL 仓库)交朋友(对于 BI 人员) 如果你主要进行仪表板和业务问题处理,请启动一个 SQL Warehouse(SQL 仓库)(Compute(计算)→ SQL Warehouses(SQL 仓库))。它就像一个为 SQL 调整的轻量级引擎。
  • 连接你的 BI 工具(Power BI、Tableau 或 Databricks SQL Dashboard)。
  • 创建一个仪表板:可视化、过滤器、刷新计划。
步骤 7:使用 Delta Live Tables(从“手动”到“自动”的流水线) 如果你有可重复的转换——“清理原始销售数据,连接产品元数据,按周聚合”——Delta Live Tables (DLT) 将其转换为具有检查和沿袭的托管流水线。
一个小的 SQL DLT 示例:
CREATE OR REFRESH LIVE TABLE sales_clean AS SELECT * FROM cloud_files('/mnt/data/sales_raw', 'csv');
CREATE OR REFRESH LIVE TABLE weekly_sales AS SELECT product, weekofyear(date) AS week, SUM(amount) AS weekly_total FROM LIVE.sales_clean GROUP BY product, week;
  • DLT 处理监控、重试和数据质量规则。
  • 添加 expectations(期望)(例如“amount >= 0”),以便坏数据以响亮的方式失败,而不是悄悄地破坏你的季度。
步骤 8:使用 Jobs(作业)进行调度(因为你喜欢睡觉)
  • Jobs(作业)→ Create Job(创建作业)。
  • 选择你的 notebook,设置一个计划(例如,每天凌晨 2 点),选择一个小型的作业集群。
  • 为失败添加电子邮件或 Slack 警报。
奖励:参数化 notebook,以便相同的代码可以使用不同的输入为 dev/test/prod 运行。
步骤 9:无泪的权限和治理 数据访问控制至关重要。使用内置的目录权限来确保正确的读者、作者和所有者。如果你的组织使用集中式 metastore,你将遇到 Unity Catalog:它标准化了 catalog.schema.table 这样的名称,并为你提供更好的审计和细粒度控制。
Pogue 提示:从简单开始——一个用于分析的目录,一个用于沙箱的目录——并清楚地命名事物。未来的分析师会请你喝咖啡。
步骤 10:成本控制(“不要收到意外账单”部分)
  • 探索时默认使用小型实例。
  • 始终在开发集群上启用自动终止。
  • 对于计划任务,首选作业集群(启动、运行、关闭)。
  • 明智地缓存:除非你需要重用大型 DataFrame,否则不要持久化它们。
  • 在 UI 中查看成本指标,并在你的云提供商中设置预算/警报。
一天的工作:一个快速演示 假设你的老板问:“哪个产品线在本季度增长最快?”以下是 Databricks 的流程:
  • 创建一个 notebook,附加一个开发集群。
  • 提取销售和产品元数据(云存储中的 CSV)。
  • 清理:强制执行模式,删除空值,修复日期格式。
  • 将清理后的数据写入 Delta。
  • SQL 计算季度环比增长。
  • 在 notebook 中可视化;然后为老板发布一个仪表板。
  • 将 notebook 包装在一个 Job 中,以便每天早上刷新。
故障排除角(因为这种情况会发生)
  • 集群无法启动:检查你的配额/实例类型;尝试较小的 VM;确认权限。
  • 数据无法读取:验证路径和凭据;尝试一个小样本;检查推断的模式。
  • 作业不断失败:添加日志记录(打印语句、显示),降低并行度,并验证输入。
  • 结果看起来“不对劲”:时区!它们很隐蔽。强制转换时间戳,设置默认时区,并记录假设。
协作:像乐队一样工作,而不是单人表演
  • 使用 Repos 将 notebook 与 Git 同步。尽早提交,经常提交。
  • 直接在 notebook 单元格中添加注释。在顶部保留一个“Read Me First(先读我)”单元格,其中包含说明。
  • 创建小的、可组合的 notebook(提取、转换、分析),以便团队成员可以轻松参与,而无需进行探查。
Python?SQL?两者都有。 你可以在一个 notebook 中混合使用多种语言。例如,在 SQL 中原型化你的逻辑(快速迭代),然后切换到 Python 以使用专门的库(预测、NLP)。谨慎使用 UDF——原生 Spark 函数更快,更易于扩展。
性能:三个杠杆
  • 分区:跳过大海捞针,只读取针。按经常过滤的列(日期、区域)对 Delta 表进行分区。
  • 文件大小:小文件就像闪光——无处不在,令人讨厌。使用优化的写入/自动优化将小文件合并为块状、高效的文件。
  • 缓存和广播连接:缓存重用的 DataFrame;在大型连接中广播小表以避免 shuffle。
你希望在第二天掌握的安全基础知识
  • 将密钥存储在托管的 secret scope 中;永远不要硬编码密钥。
  • 使用最小权限授予来锁定生产表。
  • 使用审计日志来查看谁在何时更改了什么。
从修补到生产:一条现实的道路
  • 第 1 周:使用 notebook 和一个小型集群进行探索。保存第一个 Delta 表。分享胜利。
  • 第 2 周:为你的重复转换构建一个 DLT 流水线。添加数据质量检查。
  • 第 3 周:将 notebook 包装到 Jobs 中,添加警报,并将仪表板连接到 SQL Warehouse(SQL 仓库)。
  • 第 4 周:将密钥移动到 vault,整理权限,设置命名约定,并记录所有内容。
常见的误解,温和地消除
  • “Databricks 仅适用于 Spark 专家。” 不再是这样了。SQL Warehouses 和 UI 助手意味着分析师无需编写一行 Scala 代码即可蓬勃发展。
  • “它会很贵。” 如果你整个周末都开着体育场灯,那可能会很贵。通过自动终止和小型作业集群,你可以保持成本合理。
  • “版本控制令人头疼。” Delta 的时间旅行和表历史使回滚和审计变得异常平凡。
关于有用的助手的一句话 如果你发现自己陷入编写样板 Spark 代码、向……自己解释你自己的 notebook,或将粗略的结果转换为整洁的摘要,那么一个智能副驾驶可以节省数小时的时间。像 Sider.AI 这样的工具可以作为友好的聊天框坐在你的浏览器中,帮助你起草一个入门级的 PySpark 单元格,重构一个笨拙的连接,或将你的 notebook 的输出转换为为你老板准备的可读的简报。这里的诀窍是:提出具体的、有根据的问题(“为这个模式编写一个使用 upsert 逻辑合并到 Delta 表中的 PySpark……”),并粘贴你模式的一个小的、具有代表性的样本,以便建议是准确的。如果你试图让它猜测一切,你们最终都会耸耸肩。
你的第一个星期:一个小型的剧本 第 1 天:创建一个工作区登录名。启动一个带有自动终止的小型开发集群。 第 2 天:导入一个小型的 CSV。使用 display 进行探索。保存一个 Delta 表。 第 3 天:构建一个简单的 notebook 流水线:raw → clean → aggregate。添加注释。 第 4 天:切换到 SQL 以验证结果。构建一个小型仪表板。 第 5 天:创建一个 Job 以每天刷新。关闭集群,准时回家。
备忘单:你实际会使用的命令
  • 读取 CSV/Parquet:spark.read.option("header", True).csv(path) / spark.read.parquet(path)
  • 写入 Delta 表:df.write.format("delta").mode("append").saveAsTable("catalog.schema.table")
  • SQL 单元格:%%sql 后跟你的查询
  • SQL 中的 Merge (upsert) 模式:
MERGE INTO target t USING source s ON t.id = s.id WHEN MATCHED THEN UPDATE SET * WHEN NOT MATCHED THEN INSERT *;
  • Python 中的 Autoloader(增量提取):
df = (spark.readStream .format("cloudFiles") .option("cloudFiles.format", "json") .load("/mnt/raw/events"))
df.writeStream.format("delta").option("checkpointLocation","/mnt/chk").start("/mnt/delta/events")
何时从 notebook 切换到流水线
  • 如果你每天运行同一个 notebook,请将其移动到 Job 中。
  • 如果你链接了三个或更多 notebook,请考虑 DLT——它可以简化依赖关系并添加数据质量规则。
  • 如果多个团队依赖于输出,请将其提升为具有明确 SLA 的托管目录。
最后一件事(Pogue 的数据引力定律) 数据具有引力。移动它很重,甩来甩去很贵。当您将计算带到数据,保持表整洁 (Delta),并自动化无聊的部分时,Databricks 的效果最佳。从小处着手,标记所有内容,并设置那些自动终止计时器,就像你的云账单依赖于它一样——因为它确实依赖于它。
主要收获
  • 从一个小型集群和自动终止开始。
  • 使用 notebook 进行探索;将清理后的结果保存为 Delta 表。
  • 对于可重复的转换,请使用 DLT 并使用 Jobs 进行调度。
  • 通过 SQL Warehouses(SQL 仓库)和仪表板分享见解。
  • 尽早锁定权限和密钥;边走边记录。
  • 当你需要帮助时,依靠副驾驶——但要保持你的提示具体。
如果你可以使用 spark.range(5).show 数到五,你就可以在 Databricks 中构建有用的东西。一旦你的夜间作业在凌晨 2 点运行而不会寻呼你,你就会知道你已经进入了那个罕见而美丽的被称为“行为良好的数据”的领域。

常见问题解答

Q1:作为初学者,开始使用 Databricks 的最快方法是什么? 创建一个小型的、自动终止的集群,打开一个 notebook,并加载一个带有 display 的小型 CSV 文件以进行探索。将你清理后的结果保存为一个 Delta 表,并尝试一个简单的 SQL 查询——这让你在第一天就获得了真正的胜利,而不会迷失在高级功能中。
Q2:我的流水线应该使用 notebook 还是 Delta Live Tables? 在你弄清楚事情时,从 notebook 开始;它们非常适合探索和快速获胜。当你的逻辑稳定并且需要可靠运行时,切换到 Delta Live Tables 以进行托管依赖关系、数据质量检查和更轻松的监控。
Q3:如何保持 Databricks 成本在控制之下? 对开发使用小型实例,启用自动终止,并首选作业集群进行计划运行。避免持久化大型 DataFrame,除非必要,并密切关注成本指标和云预算,这样就不会有任何东西运行整个周末。
Q4:非程序员可以有效地使用 Databricks 吗? 是的——SQL Warehouses(SQL 仓库)加上仪表板使 Databricks 对分析师友好。你可以编写简单的 SQL,可视化结果,并分享见解,而无需接触 PySpark,然后仅在需要更重的转换时才引入工程师。
Q5:将数据保存为 Delta 表的优势是什么? Delta 表为你提供 ACID 事务、版本历史(时间旅行)和更好的性能。这意味着更安全的更新,在出现问题时更容易回滚,以及对相同数据的更快查询。

最近文章
如何掌握 ChatPDF:快速洞察密集文档

如何掌握 ChatPDF:快速洞察密集文档

快速、精准文档的最佳X自动翻译替代方案

快速、精准文档的最佳X自动翻译替代方案

三星AI翻译在伊朗无法使用?实用解决方法

三星AI翻译在伊朗无法使用?实用解决方法

波斯语翻译工具:实现更快更准确工作的实用指南

波斯语翻译工具:实现更快更准确工作的实用指南

深度、有引用研究的最佳Grok替代方案

深度、有引用研究的最佳Grok替代方案

你真正会用的AI图像生成器15大功能

你真正会用的AI图像生成器15大功能