作为Azure Databricks创新承诺的一部分,平台和运行时功能可能会被新功能停用并取代。 Databricks Runtime 版本也会按常规计划进行停用和替换。 此页面列出了停用阶段,以及有关平台功能和 Databricks Runtime 版本的相应支持的详细信息。 它还包括用于检测使用遗留 Databricks Runtime 版本的群集和作业的 SQL 查询。
有关预览和发布类型的信息,请参阅 Azure Databricks 预览版。
平台功能生命周期
下表介绍了Azure Databricks平台功能停用阶段:
| 阶段 | 说明 | 支持 | 迁移说明 |
|---|---|---|---|
| 遗留 | 该功能仍然可用,但有更新、更好的功能或方法来完成此功能提供的任务。 此标签指示将在未来某个日期停用。 | 已满。 支持和文档可用。 | 建议迁移到新的替代功能或完成任务的新方法,但不需要立即迁移。 |
| 已弃用 | 该功能不再处于积极开发状态。 将不再发布更新。 该功能即将停用,因此你需要制定一个计划来停止使用该功能并过渡到替代功能。 | 已满。 该功能不再更新,但支持和文档仍可用。 | 强烈建议迁移到新的替换功能或完成任务的新方法,因为重要的更新将不再适用。 |
| 停止支持 (EoS) | 该功能不再处于积极开发阶段,并且不再提供正式支持。 | 无。 文档可能仍然存在,但已存档,不再进行维护。 | 急需迁移到新的替换功能或完成任务的新方法,因为重要更新不再适用,并且不再提供对可能出现的问题的支持。 |
| 生命周期终止 (EoL) | 此功能已从 Databricks 产品中完全移除。 | 无 | 必须迁移到新的替换功能或完成任务的新方法,因为该功能不再可用。 此时,迁移可能非常困难。 |
Databricks Runtime 支持生命周期
每个 Databricks Runtime 版本都会先发布一个供早期评估的 Beta 版,然后再正式发布为正式可用版本(GA)。 在正式发布 (GA) 功能开发阶段(约六个月),Azure Databricks 会在同一版本号下发布新功能和修复。 群集在重启时接收更新。 在功能开发阶段结束后,该版本将转入为期三年的长期支持(LTS)阶段。 有关支持的版本,请参阅 Databricks Runtime 发行说明版本和兼容性。
不支持的 Databricks Runtime 版本的工作负荷可能会继续运行,但Azure Databricks不提供支持或修复。
注释
在 Databricks Runtime 19 之前,Azure Databricks发布运行时作为次要功能版本(例如 18.0、18.1、18.2),每个版本都有自己的 Beta 版和 GA 版本。
| 阶段 | 说明 |
|---|---|
| Beta 版本 | 可在正式发布前进行早期评估。 不建议用于生产用途。 不支持 SLA。 |
| GA(功能开发) | 提供了重大稳定性和安全修复。 Azure Databricks在功能开发阶段的相同版本号下发布新功能和修补程序,持续约六个月。 受支持的版本发布在 受支持的 Databricks Runtime 版本。 |
| LTS | 功能开发阶段结束后,版本将转换为长期支持(LTS)。 重大稳定性和安全性修复将在三年内持续回移植。 支持的 LTS 版本在 支持的 Databricks Runtime 版本中发布。 |
| 停止支持 (EoS) | 如果版本不受支持:
支持终止日期是 GA 发布日期后的三年。 不再支持的版本已发布在终止支持 Databricks Runtime 发行说明中。 |
| 生命周期终止 (EoL) | 一旦版本到达生命周期结束,它就会从Azure Databricks环境中删除,并且它变得不可用。 无法启动新工作负载,并且这些版本上运行的现有工作负荷会失败。 必须将工作负荷迁移到受支持的运行时版本。 Azure Databricks 尽最大努力将生命周期结束日期设定为支持终止日期之后六个月。 但是,Databricks 保留在支持结束后随时完全删除发布版本的权利,而无需事先通知。 |
检测旧版 Databricks Runtime 群集
此临时视图汇总了运行 Databricks Runtime 版本 10.4 或更低版本的群集的 Databricks Runtime 群集使用情况。 它聚合过去 90 天的使用情况,包括工作区信息、群集标识符、Databricks Runtime 版本、使用情况单位和 Databricks 单元(DBU)的总使用量。
创建legacy_dbrs视图
CREATE OR REPLACE TEMP VIEW legacy_dbrs AS
WITH clusters_dbr_versions AS (
SELECT
account_id,
workspace_id,
cluster_id,
cluster_name,
owned_by,
dbr_version,
TRY_CAST(regexp_extract(dbr_version, '(\\d+)\\.(\\w+)?(?:\\.(\\w+))?', 1) AS INT) AS major_version,
TRY_CAST(regexp_extract(dbr_version, '(\\d+)\\.(\\w+)?(?:\\.(\\w+))?', 2) AS INT) AS minor_version,
ROW_NUMBER() OVER(PARTITION BY account_id, workspace_id, cluster_id ORDER BY change_time DESC) AS rnk
FROM
system.compute.clusters
QUALIFY rnk=1
),
usage AS (
SELECT
account_id,
workspace_id,
usage_metadata.cluster_id AS cluster_id,
usage_unit,
ROUND(SUM(usage_quantity), 2) AS total_usage_dbu,
MAX(usage_date) as last_seen_date
FROM
system.billing.usage
WHERE
usage_metadata.cluster_id IS NOT NULL AND
usage_date > CURRENT_DATE() - INTERVAL 90 DAYS
GROUP BY ALL
),
workspace_info AS (
SELECT
account_id,
workspace_id,
workspace_name,
workspace_url
FROM
system.access.workspaces_latest
)
SELECT
cdv.workspace_id,
wi.workspace_name,
wi.workspace_url,
cdv.cluster_name,
cdv.cluster_id,
cdv.owned_by,
cdv.dbr_version,
total_usage_dbu,
usage_unit,
last_seen_date
FROM
clusters_dbr_versions cdv
INNER JOIN usage u USING (workspace_id, cluster_id)
LEFT JOIN workspace_info wi USING (workspace_id)
WHERE
major_version < 10 OR (major_version = 10 AND minor_version < 4)
GROUP BY ALL
ORDER BY
workspace_id, total_usage_dbu DESC;
若要查看每个群集的旧 Databricks Runtime 使用情况,请查询刚刚创建的视图。
SELECT * FROM legacy_dbrs;
若要查看跨工作区和 Databricks Runtime 版本的聚合群集使用情况,请使用以下查询。 这有助于确定哪些 Databricks Runtime 版本仍在使用、运行每个版本的群集数以及 DBU 中的总使用量。
SELECT
dbr_version,
workspace_id,
COUNT(DISTINCT cluster_id) total_clusters,
SUM(total_usage_dbu) AS total_usage_dbu
FROM legacy_dbrs
GROUP BY dbr_version, workspace_id
ORDER BY dbr_version, workspace_id
检测旧版 Databricks Runtime 作业
使用此查询可检索过去 90 天内执行的所有作业,其中最近的运行使用了早于 10.4 的 Databricks Runtime 版本。 这有助于识别需要升级的工作负荷。
使用旧版的 DBR 查询作业
%sql
with latest_jobs AS (
SELECT
*,
ROW_NUMBER() OVER(PARTITION BY workspace_id, job_id ORDER BY change_time DESC) as rn
FROM system.lakeflow.jobs
QUALIFY rn=1
),
latest_clusters AS (
SELECT
*,
ROW_NUMBER() OVER(PARTITION BY workspace_id, cluster_id ORDER BY change_time DESC) as rn
FROM system.compute.clusters
QUALIFY rn=1
),
job_tasks_exploded AS (
SELECT
workspace_id,
job_id,
EXPLODE(compute_ids) as cluster_id
FROM system.lakeflow.job_task_run_timeline
WHERE period_start_time >= CURRENT_DATE() - INTERVAL 90 DAY AND ARRAY_SIZE(compute_ids) > 0
GROUP BY ALL
),
workspace_info AS (
SELECT
account_id,
workspace_id,
workspace_name,
workspace_url
FROM
system.access.workspaces_latest
),
clusters_with_dbr AS (
SELECT
t1.*,
t2.cluster_name,
t2.owned_by,
t2.dbr_version
FROM job_tasks_exploded t1
INNER JOIN latest_clusters t2 USING (workspace_id, cluster_id)
)
SELECT
wi.account_id,
wi.workspace_id,
wi.workspace_name,
wi.workspace_url,
latest_jobs.name,
cwd.job_id,
cwd.cluster_id,
cwd.cluster_name,
cwd.dbr_version
FROM clusters_with_dbr cwd
JOIN workspace_info wi ON cwd.workspace_id = wi.workspace_id
LEFT JOIN latest_jobs USING (workspace_id, job_id)
WHERE dbr_version RLIKE '^([1-9]\\.|10\\.[0-3]\\.)'