重要
此功能目前以公共预览版提供。 可以在预览页面上确认加入状态。 请参阅 管理 Azure Databricks 预览版。
随着 Databricks 免费版的发布,社区版(CE)即将停用。 Community Edition 工作区所有者应使用工作区迁移工具尽快迁移到 Free Edition。 有关 Community Edition 与 Free Edition 之间的功能比较,请参阅 功能比较。
迁移工作区
使用迁移工具时,Azure Databricks 会创建链接到现有登录名的新 Free Edition 工作区。 然后,笔记本和数据将迁移到新的 Free Edition 工作区。
只能运行一次迁移,因此在开始之前,请务必清理未使用的笔记本和表。 有关数据迁移限制的列表,请参阅 “限制”。
步骤 1:查看当前工作区
在使用迁移工具之前,请查看当前工作区,并确定要迁移的关键笔记本和数据。 请将您想迁移的任何表和笔记本从tmp和Filestore目录中移出。
步骤 2:开始迁移过程
注释
你必须是工作区所有者才能使用迁移工具。
在 CE 工作区中:
- 在 Community Edition 工作区顶部的横幅中单击“ 移动到免费版 ”。
- 对话框说明了迁移过程。
- 单击“迁移”。 您的 CE 工作区已被锁定,并且您已被注销。在数据迁移完成之前,请避免重新登录。
- 迁移完成后(通常不到 2 小时),会收到一封电子邮件,其中包含登录链接。
步骤 3:测试 免费版 工作区
登录时,现在可以看到 Community Edition 和 Free Edition 工作区。 打开这两个工作区,确认所有内容都已迁移到 Free Edition 工作区。
- 打开 工作区>用户>[你的电子邮件],确认所有笔记本是否都在。
- 打开 目录>默认目录 并确认所有表是否存在。
- 按单元格运行密钥笔记本。 如果看到错误,请参阅 常见问题。
注释
你可能会注意到,某些表被拆分为较小的部分。 这是预期的。 请参阅 “我的表”拆分为较小的部分 ,了解如何重新合并它们。
步骤 4:从 CE 工作区下载任何缺失的资产
如果未转移任何资产,可以从 Community Edition 工作区手动下载这些资产,并将其重新上传到 Free Edition 工作区。
7 天后,将永久删除 Community Edition 工作区。 验证所有内容是否已在该日期之前传输到新工作区。
局限性
迁移可能不会转移所有资源。 在开始迁移之前,请查看以下限制:
- 免费版的硬限制为 500 个表。 如果在 Community Edition 工作区中有 500 多个表,则不会迁移所有表。
- 对于已存档的表或部分表,迁移会尝试迁移它们,但它们可能会在查询历史记录中显示为错误。 自动存档发生在未访问超过3个月的数据。
- 迁移 CSV 文件是尽最大努力的。 在某些情况下,分隔符被错误地使用,列组合在一起,或者表无法创建。
- 仅支持的文件和数据类型迁移。 如果需要上述任何资产,请在开始迁移之前从工作区手动下载它们。 不会迁移以下文件和数据类型:
-
.zip文件、.mp4视频、系统日志 - XML 文件
- 隐藏文件或不支持的格式
- MLflow 实验
-
tmp或Filestore下的任何内容 - 在外部存储的文件
dbfs:/
-
排查常见问题
无法选择群集大小或实例类型
Free Edition 使用 无服务器计算,因此无法自定义群集大小或实例类型。 无服务器计算会根据工作负载需求自动扩展。
小窍门
运行单元格以自动启动无服务器计算,或从下拉菜单中选择计算资源。 如果看到延迟或错误,请让工作负荷保持轻量级,并在几分钟后重试。
我的其中一个文件没有成功传输
如果文件是非标准格式(例如,、.mp4.zip隐藏或不受支持),则会出现这种情况。
小窍门
在 7 天内从 Community Edition 工作区下载该文件,并手动将其上传到 Free Edition 工作区。
我的桌子被拆分成较小的部分
某些 CE 表由以片段方式存储的大型文件提供支持。 在迁移期间,Azure Databricks 将每个部件复制为自己的表。
小窍门
使用重组功能 UNION ALL:
CREATE OR REPLACE TABLE my_full_table AS
SELECT * FROM my_table_part1
UNION ALL
SELECT * FROM my_table_part2
UNION ALL
SELECT * FROM my_table_part3;
我的数据表已转移,但我的笔记本电脑无法找到它。
你的笔记本可能按名称引用了一张表,但在迁移过程中表名发生了变化。
在免费版中,所有表都创建在 workspace.default.<table_name>。 表名称是其中之一:
- 包含文件的目录。 所以,
/my_table/my_table_data_file.parquet被称为my_table。 - 如果它位于 DBFS 根目录下,则使用文件名。 所以,
/my_table_data_file.parquet被称为my_table_data_file。
小窍门
在目录中查找基础表。
复制表的文件名。
返回到笔记本。
指示 Databricks Assistant 将旧表位置的所有实例替换为新表位置:
Replace all references to 'old_table_name' with 'workspace.default.new_table_name' in this notebook
我的笔记本代码不起作用
这通常分为两类:
案例 1:你使用的是 RDD
RDD 是旧版 Spark 抽象,在免费版中不受支持。 将它们替换为 DataFrames。
小窍门
请让 Databricks 助手帮助转换 RDD 代码:
Convert all RDD operations in this notebook to DataFrame operations
案例 2:你使用的是 Scala 或 R
无服务器计算仅支持 Python 和 SQL。 如果笔记本使用 Scala 或 R,则需要将其转换为 Python。
小窍门
让 Databricks 助手转换代码:
Convert this Scala/R code to Python using PySpark DataFrames
dbutils.fs.mount 命令失败
新的 Azure Databricks 工作区不支持旧版 DBFS 装载。
小窍门
请改用 Unity 目录外部位置和卷。 若要存储数据集或共享文件,请创建卷:
CREATE VOLUME IF NOT EXISTS workspace.default.my_volume;
然后使用以下方法访问文件:
# Write data
df.write.mode("overwrite").option("path", "/Volumes/workspace/default/my_volume/my_data").saveAsTable("my_table")
# Read data
df = spark.read.table("my_table")
我无法在 /dbfs/ 中读取或写入文件
免费版限制对 DBFS 根目录的直接访问,以确保安全性。
小窍门
使用 Unity 目录卷存储数据集或共享文件:
# Create a volume (run once)
spark.sql("CREATE VOLUME IF NOT EXISTS workspace.default.my_data_volume")
# Write files
dbutils.fs.cp("file:/local/path/data.csv", "/Volumes/workspace/default/my_data_volume/")
# Read files
df = spark.read.csv("/Volumes/workspace/default/my_data_volume/data.csv", header=True, inferSchema=True)
功能对比
下表比较了 Community Edition 和 Free Edition 中提供的功能:
| 功能 / 特点 | 社区版 | 免费版 |
|---|---|---|
| Notebooks | ✓ | ✓ |
| MLflow | ✓ | ✓ |
| 摄入 | ✓ | |
| Jobs | ✓ | |
| Pipelines | ✓ | |
| Dashboards | ✓ | |
| Genie | ✓ | |
| 语义搜索 | ✓ | |
| 模型服务 | ✓ | |
| 模型评估 | ✓ | |
| Agents | ✓ | |
| 统一目录 | ✓ | |
| 清洁室 | ||
| Lakebase | ||
| 代理砖块 | ||
| 企业管理功能 | ||
| 经典计算 | ✓ | |
| 无服务器计算 | ✓ | |
| 显卡 | 自带 |