Databricks 支援生命週期

作為 Azure Databricks 對創新承諾的一部分,平台與執行環境功能可能會被淘汰,並由新功能取代。 Databricks Runtime 版本也會定期淘汰並被取代。 本頁列出了退休階段,以及對應平台功能和 Databricks 執行時版本的支援細節。 它也包含 SQL 查詢,用來偵測使用舊版 Databricks 執行環境的叢集與工作。

有關預覽與發行類型的資訊,請參閱 Azure Databricks預覽發佈

平台功能生命週期

Azure Databricks 平台的功能退役階段詳述如下表格:

階段 描述 支援 移轉注意事項
傳統 此功能仍可供使用,但有較新的、更好的功能或方法來完成這項功能提供的工作。 此標籤表示未來的淘汰日期。 完整。 有支援和文件供使用。 建議移轉至新的取代功能或完成工作的新方式,但並非立即需要。
已廢棄 此功能已不再積極開發。 不再發佈更新。 此功能即將淘汰,因此您必須制定計劃,以停止使用此功能並轉換至替代方案。 完整。 功能已不再更新,但仍提供支援和文件。 強烈建議移轉至新的取代功能或完成工作的新方式,因為不會再套用重要的更新。
終止支援 (EOS) 此功能已不再在積極開發中,且正式不再提供支援。 無。 文件可能仍然存在,但已封存,且不再維護。 移轉至新的取代功能或完成工作的新方式十分緊迫,因為不會再套用重要的更新,也不再為可能發生的問題提供支援。
生命週期結束 (EOL) 此功能已從 Databricks 產品完全移除。 移轉至新的取代功能或完成工作的新方式是必不可少,因為此功能已無法使用。 此時,移轉可能非常困難。

Databricks 執行環境支援生命週期

每個 Databricks 執行時版本都有初步測試版以供早期評估,之後以一般可用性(GA)形式正式上線。 在 GA 功能開發階段(約六個月),Azure Databricks 會以相同版本號釋出新功能與修正。 叢集在重新啟動時會收到更新。 功能開發階段結束後,版本將轉為三年的長期支援(LTS)。 有關支援版本,請參閱 Databricks 執行環境版本說明及相容性

未受支援的 Databricks 執行環境版本的工作負載可能仍會繼續運行,但 Azure Databricks 不提供支援或修正。

Note

在 Databricks Runtime 19 之前,Azure Databricks 將執行時版本作為次要功能版本釋出(例如 18.0、18.1、18.2),每個版本都有自己的 Beta 和 GA 版本。

階段 描述
試用版 在通用發射前可進行早期評估。 不建議用於生產用途。 不提供支援服務等級協議(SLA)。
GA(功能開發) 提供重大的穩定性與安全性修正。
Azure Databricks 會在約六個月的功能開發階段,以相同的版本號釋出新功能與修正。
支援的版本會以 支援的 Databricks 執行時版本發佈。
LTS 功能開發階段結束後,版本會轉為長期支援(LTS)。 主要的穩定性與安全修正會被回溯三年。
支援的 LTS 版本會以 支援的 Databricks 執行版本發佈。
終止支援 (EOS) 如果某個版本不受支援:
  • 在這些版本上執行的工作負載不會受到 Databricks 支援。
  • 修正不會向下移植。
  • 當您建立或更新計算資源時,就無法再使用UI來選取它。

支援終止日期是在 GA 發布日期後三年。
不支援的版本會在終止支援 Databricks Runtime 版本資訊發佈。
生命週期結束 (EOL) 一旦某個版本達到生命週期終止,就會從 Azure Databricks 環境中移除,變得無法使用。 您無法啟動新的工作負載,而且在這些版本上執行的現有工作負載會失敗。 您必須將工作負載移轉至支援的執行階段版本。
Azure Databricks 盡力將終止服務日期設定在支援終止日期後六個月。 不過,Databricks 保留在支援結束後隨時完全移除發行版本的權利,恕不另行通知。

偵測舊版 Databricks Runtime 叢集

此暫存檢視總結了執行 Databricks Runtime 10.4 或更早版本的叢集使用情況。 它彙整過去 90 天的使用情況,包含工作區資訊、叢集識別碼、Databricks 執行時版本、使用單元,以及 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 執行時使用情況,請查詢剛建立的檢視。

SELECT * FROM legacy_dbrs;

要查看跨工作區及 Databricks 執行時版本的聚合叢集使用情況,請使用以下查詢。 這有助於辨識仍在使用的 Databricks 執行時版本、每個版本執行的叢集數量,以及 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 天內曾執行且最近一次執行使用 Databricks Runtime 版本早於 10.4 的所有作業。 這有助於辨識需要升級的工作負載。

使用舊版 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]\\.)'