将 Community Edition 工作区迁移到免费版

重要

此功能目前以公共预览版提供。 可以在预览页面上确认加入状态。 请参阅 管理 Azure Databricks 预览版

随着 Databricks 免费版的发布,社区版(CE)即将停用。 Community Edition 工作区所有者应使用工作区迁移工具尽快迁移到 Free Edition。 有关 Community Edition 与 Free Edition 之间的功能比较,请参阅 功能比较

迁移工作区

使用迁移工具时,Azure Databricks 会创建链接到现有登录名的新 Free Edition 工作区。 然后,笔记本和数据将迁移到新的 Free Edition 工作区。

只能运行一次迁移,因此在开始之前,请务必清理未使用的笔记本和表。 有关数据迁移限制的列表,请参阅 “限制”。

步骤 1:查看当前工作区

在使用迁移工具之前,请查看当前工作区,并确定要迁移的关键笔记本和数据。 请将您想迁移的任何表和笔记本从tmpFilestore目录中移出。

步骤 2:开始迁移过程

注释

你必须是工作区所有者才能使用迁移工具。

在 CE 工作区中:

  1. 在 Community Edition 工作区顶部的横幅中单击“ 移动到免费版 ”。
  2. 对话框说明了迁移过程。
  3. 单击“迁移”。 您的 CE 工作区已被锁定,并且您已被注销。在数据迁移完成之前,请避免重新登录。
  4. 迁移完成后(通常不到 2 小时),会收到一封电子邮件,其中包含登录链接。

步骤 3:测试 免费版 工作区

登录时,现在可以看到 Community Edition 和 Free Edition 工作区。 打开这两个工作区,确认所有内容都已迁移到 Free Edition 工作区。

  1. 打开 工作区>用户>[你的电子邮件],确认所有笔记本是否都在。
  2. 打开 目录>默认目录 并确认所有表是否存在。
  3. 按单元格运行密钥笔记本。 如果看到错误,请参阅 常见问题

注释

你可能会注意到,某些表被拆分为较小的部分。 这是预期的。 请参阅 “我的表”拆分为较小的部分 ,了解如何重新合并它们。

步骤 4:从 CE 工作区下载任何缺失的资产

如果未转移任何资产,可以从 Community Edition 工作区手动下载这些资产,并将其重新上传到 Free Edition 工作区。

7 天后,将永久删除 Community Edition 工作区。 验证所有内容是否已在该日期之前传输到新工作区。

局限性

迁移可能不会转移所有资源。 在开始迁移之前,请查看以下限制:

  • 免费版的硬限制为 500 个表。 如果在 Community Edition 工作区中有 500 多个表,则不会迁移所有表。
  • 对于已存档的表或部分表,迁移会尝试迁移它们,但它们可能会在查询历史记录中显示为错误。 自动存档发生在未访问超过3个月的数据。
  • 迁移 CSV 文件是尽最大努力的。 在某些情况下,分隔符被错误地使用,列组合在一起,或者表无法创建。
  • 仅支持的文件和数据类型迁移。 如果需要上述任何资产,请在开始迁移之前从工作区手动下载它们。 不会迁移以下文件和数据类型:
    • .zip 文件、 .mp4 视频、系统日志
    • XML 文件
    • 隐藏文件或不支持的格式
    • MLflow 实验
    • tmpFilestore 下的任何内容
    • 在外部存储的文件 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

小窍门

  1. 在目录中查找基础表。

  2. 复制表的文件名。

  3. 返回到笔记本。

  4. 指示 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
代理砖块
企业管理功能
经典计算
无服务器计算
显卡 自带