将工作区特征表升级到 Unity Catalog

本页介绍如何将现有工作区特征表升级到 Unity Catalog。

首先,必须升级基础工作区 Delta 表。 按照以下说明操作:将表和视图升级到 Unity Catalog

当基础表和数据在 Unity Catalog 中可用后,使用 upgrade_workspace_table 将工作区特征表元数据升级到 Unity Catalog,如以下代码所示。 无论你目前使用的是哪个 Databricks Runtime 版本,Databricks 都建议始终使用最新版本的 databricks-feature-engineering 进行此操作。

%pip install databricks-feature-engineering --upgrade

dbutils.library.restartPython()

from databricks.feature_engineering import UpgradeClient
upgrade_client = UpgradeClient()
upgrade_client.upgrade_workspace_table(
  source_workspace_table='recommender_system.customer_features',
  target_uc_table='ml.recommender_system.customer_features'
)

以下元数据已升级到 Unity Catalog:

  • 主键
  • 时序列
  • 表和列注释(说明)
  • 表和列标记
  • 笔记本和作业世系

如果目标表已有的表或列注释与源表不同,则升级方法将跳过升级注释并记录警告。 如果使用版本 0.1.2 或更低版本的 databricks-feature-engineering,则会引发错误,并且不会运行升级。 对于所有其他元数据,目标表和源表之间的不匹配会导致错误并阻止升级。 若要绕过错误并覆盖目标 Unity Catalog 表上的任何现有元数据,请将 overwrite = True 传递到 API:

upgrade_client.upgrade_workspace_table(
  source_workspace_table='recommender_system.customer_features',
  target_uc_table='ml.recommender_system.customer_features',
  overwrite=True
)

注意

  • 在调用此 API 之前,必须先将基础工作区 Delta 表升级到 Unity Catalog。
  • Databricks Runtime 13.2 ML 及更低版本不支持对标记和时序列进行升级。
  • 请记得通知所升级特征表的生成者和使用者开始使用 Unity Catalog 中的新表名称。 如果使用 CREATE TABLE AS SELECT 或克隆源表的类似方式升级 Unity 目录中的目标表,则不会在目标表中自动同步对源表的更新。