Uppgradera en Azure Databricks-arbetsyta till Unity Catalog

Den här sidan ger en översikt över hur du uppgraderar en arbetsyta som inte är en Unity-katalog till Unity Catalog. Det ger också instruktioner för att migrera bort från det äldre Hive-metaarkivet, DBFS och databricks Runtime-versioner som inte stöds.

Översikt över uppgraderingssteg

Om du vill uppgradera till Unity Catalog måste du:

  1. Etablera identiteter (användare, grupper och tjänstens huvudnamn) direkt till ditt Azure Databricks-konto, om du inte redan gör det. Stäng av identitetsförsörjning på arbetsytenivå.
  2. Konvertera alla lokala arbetsytegrupper till grupper på kontonivå. Unity Catalog centraliserar identitetshantering på kontonivå.
  3. Koppla arbetsytan till ett Unity Catalog-metaarkiv. Om det inte finns något metaarkiv för din arbetsyteregion måste en kontoadministratör skapa ett.
  4. Uppgradera tabeller och vyer som hanteras i Hive-metaarkivet till Unity Catalog.
  5. Ge användare, grupper eller tjänstens huvudnamn åtkomst till de uppgraderade tabellerna på kontonivå.
  6. Uppdatera frågor och jobb för att referera till de nya Unity Catalog-tabellerna i stället för de gamla Hive-metaarkivtabellerna.
  7. Migrera filer, notebook-filer och skript från DBFS.
  8. Uppgradera aktiva beräkningsresurser till Databricks Runtime-versioner som stöds.
  9. Inaktivera åtkomst till äldre funktioner på dina arbetsytor. Se Inaktivera åtkomst till äldre funktioner på dina arbetsytor.

UCX, ett Databricks Labs-projekt, innehåller verktyg som hjälper dig att uppgradera din arbetsyta som inte är Unity-Catalog till Unity Catalog. UCX är ett bra val för storskaliga migreringar. Se Använda UCX-verktygen för att uppgradera din arbetsyta till Unity Catalog.

Innan du börjar

Innan du börjar bör du bekanta dig med de grundläggande begreppen i Unity Catalog, inklusive metaarkiv och hanterad lagring. Se Vad är Unity Catalog?.

Du bör också bekräfta att du uppfyller följande krav:

  • För de flesta installationssteg måste du vara administratör för Azure Databricks-kontot. För alla aktiviteter som följer för vilka det finns andra behörighetskrav visas de i den uppgiftsspecifika dokumentationen.

    Den första Azure Databricks-kontoadministratören måste vara global administratör för Microsoft Entra-ID vid den tidpunkt då de först loggar in på Azure Databricks-kontokonsolen. Vid första inloggningen blir användaren administratör för Azure Databricks-kontot och behöver inte längre rollen Global administratör för Microsoft Entra-ID för att få åtkomst till Azure Databricks-kontot. Den första kontoadministratören kan tilldela användare i Microsoft Entra ID-klientorganisationen som ytterligare kontoadministratörer (som själva kan tilldela fler kontoadministratörer). Ytterligare kontoadministratörer kräver inte specifika roller i Microsoft Entra-ID.

  • De arbetsytor som du kopplar till metaarkivet måste finnas i Azure Databricks Premium-planen.

Uppgradera till Unity Catalog-demonstrationer

Titta på följande korta guidade demonstrationer för att se viktiga uppgraderingsuppgifter i praktiken. Varje demo innehåller ett specifikt steg och länkar till detaljerad dokumentation i förekommande fall.

Du kan också följa demonstrationen Använd UCX för att uppgradera till Unity Catalog.

Etablera användare, grupper och tjänstens huvudnamn till ditt konto

Unity Catalog refererar till identiteter på kontonivå. Innan du kopplar ett metaarkiv till din arbetsyta bör du göra följande:

  • Om du använder SCIM för att etablera användare, grupper och tjänstens huvudnamn från din IdP till din arbetsyta inaktiverar du den och konfigurerar etablering till ditt Azure Databricks-konto i stället. Se Synkronisera identiteter från din identitetsprovider och identiteter.

  • Uppdatera all automatisering som har konfigurerats för att hantera användare, grupper och tjänstens huvudnamn, till exempel SCIM-etableringsanslutningar och Terraform-automatisering, så att de refererar till kontoslutpunkter i stället för arbetsyteslutpunkter. Se SCIM-etablering på kontonivå och arbetsytenivå.

Konvertera lokala arbetsytegrupper till grupper på kontonivå

Se Migrera lokala arbetsytegrupper till kontogrupper.

Koppla din arbetsyta till ett metaarkiv

Om din arbetsyta inte är aktiverad för Unity Catalog (ansluten till ett metaarkiv) beror nästa steg på om du redan har definierat ett Unity Catalog-metaarkiv för din arbetsyteregion:

  • Om ditt konto redan har ett Unity Catalog-metaarkiv definierat för din arbetsyteregion kan du helt enkelt koppla arbetsytan till det befintliga metaarkivet. Gå till Aktivera en arbetsyta för Unity Catalog.
  • Om det inte finns något Unity Catalog-metaarkiv som har definierats för arbetsytans region måste du skapa ett metaarkiv och sedan koppla arbetsytan. Gå till Skapa ett Unity Catalog-metaarkiv.

Uppgradera tabeller i hive-metaarkivet till Unity Catalog-tabeller

Om arbetsytan var i tjänst innan den aktiverades för Unity Catalog har den ett Hive-metaarkiv som sannolikt innehåller data som du vill fortsätta att använda. Databricks rekommenderar att du uppgraderar tabellerna som hanteras av Hive-metaarkivet till Unity Catalog-metaarkivet.

Alternativ 1: Federera och uppgradera sedan externa tabeller

Den rekommenderade metoden är att först federera din Hive-metastore som en extern katalog och sedan uppgradera de externa tabellerna på plats. Med den här tvåstegsprocessen kan du migrera tabeller utan dataflytt samtidigt som du bevarar tabellhistorik, konfiguration, behörigheter och vyer.

Först federerar du ditt Hive-metaarkiv som en sekundär katalog i Unity Catalog. På så sätt kan du komma åt dina befintliga tabeller via Unity Catalog och förbereda dem för uppgradering.

Anvisningar om hur du federerar ditt Hive-metaarkiv finns i Hive-metaarkivfederation: aktivera Unity Catalog för att styra tabeller som är registrerade i ett Hive-metaarkiv.

Anmärkning

Om du väljer att inte uppgradera tabellerna och vill fortsätta arbeta med den federerade katalogen permanent kan du göra det. Databricks rekommenderar dock att du slutför uppgraderingen för att dra full nytta av Unity Catalog-funktioner.

När du har federerat hive-metaarkivet kan du uppgradera sekundärtabellerna till Unity Catalog-tabeller utan dataflytt. Det här arbetsflödet uppgraderar tabeller på plats och bevarar tabellhistorik, konfiguration, behörigheter och vyer.

Om du vill uppgradera en sekundär tabell till en hanterad Unity Catalog-tabell kör du följande kommando:

ALTER TABLE <foreign_catalog>.<schema>.<table_name> SET MANAGED;

Databricks rekommenderar att du uppgraderar till en hanterad tabell för att låsa upp förutsägelseoptimering för Unity Catalog, vilket inkluderar automatiskt underhåll (komprimering, klustring, vakuum) och prestandaförbättringar. Om du vill uppgradera en extern tabell till en extern Unity Catalog-tabell i stället kör du följande kommando:

ALTER TABLE <foreign_catalog>.<schema>.<table_name> SET EXTERNAL;

När tabellerna har migrerats och du inte längre förlitar dig på federation till den externa katalogen kan du ta bort anslutningen:

ALTER CATALOG <foreign_catalog> DROP CONNECTION;

Mer information om det här arbetsflödet finns i Konvertera en sekundär tabell till en hanterad Unity Catalog-tabell.

Alternativ 2: Uppgradera tabeller direkt

Om du väljer att inte använda det federationsbaserade uppgraderingsarbetsflödet kan du uppgradera tabeller direkt med SYNC eller CREATE TABLE AS SELECT. Se Uppgradera Hive-tabeller och vyer till Unity Catalog.

Bevilja åtkomst till uppgraderade eller federerade tabeller

Ge användare, grupper eller tjänstens huvudnamn åtkomst till de nya tabellerna på kontonivå. Se avsnitt Hantera privilegier i Unity Catalog.

Uppdatera frågor och jobb för att arbeta med dina uppgraderade tabeller och sökvägar till data

När du övergår från det arbetsytelokala Hive-metaarkivet till Unity Catalog kan du fortsätta att använda frågor och jobb som refererar till data som registrerats i Hive-metaarkivet med hive-metaarkivfederationen (rekommenderas) eller syntaxen som beskrivs i Arbeta med det äldre Hive-metaarkivet tillsammans med Unity Catalog. Men så småningom bör du uppdatera alla frågor och jobb för att använda Unity Catalog-tabeller och syntax.

Uppdatera därför frågor och jobb som använder sökvägsbaserad filåtkomst för att i stället använda Unity Catalog-volymer.

Detaljerade rekommendationer finns i Uppdatera jobb när du uppgraderar äldre arbetsytor till Unity Catalog.

Inaktivera åtkomst till DBFS

Som en del av migreringen av Unity Catalog rekommenderar Databricks att du inaktiverar åtkomsten till DBFS på dina arbetsytor. Detta säkerställer att alla data och arbetsflöden styrs av Unity Catalog och att du drar full nytta av Unity Catalog-funktioner.

Du kan använda DBFS-skannerskripten från Databricks Labs för att genomsöka din aktuella DBFS-användning och bestämma om du vill registrera tillgången på plats (med hjälp av en extern plats), migrera till Unity Catalog eller arkivera om du inte längre behöver den. Databricks Labs är en offentlig GitHub-lagringsplats som inte stöds direkt av Databricks.

I följande avsnitt beskrivs hur du migrerar olika tillgångar från DBFS till Unity Catalog.

Migrera filer som lagras i DBFS

Om du har rådatafiler som Parquet, CSV, JSON eller bilder som lagras i DBFS-roten (till exempel under /FileStore eller andra DBFS-rotkataloger) eller i molnlagring som monterats på DBFS (under /mnt/...) migrerar du dem med hjälp av Unity Catalog-volymer och kommer åt dem med hjälp av externa platser.

Följande steg beskriver hur du migrerar filer från DBFS till Unity Catalog-volymer. Mer information om när du ska använda volymer jämfört med arbetsytefiler finns i Rekommendationer för filer i volymer och arbetsytefiler.

Steg 1: Konfigurera en extern plats

Om du vill registrera tillgångarna i Unity Catalog konfigurerar du en extern plats för Unity Catalog för molnlagringscontainern eller sökvägen där filerna för närvarande finns. Du kan göra detta med hjälp av Catalog Explorer, SQL-kommandon, Terraform eller Azure Databricks CLI.

Detaljerade anvisningar finns i Ansluta till molnobjektlagring med Unity Catalog.

Steg 2: Skapa en volym

Unity Catalog-volymer är ett styrt sätt att organisera filer. Databricks rekommenderar att du använder volymer för att styra alla data som inte är tabelldata. Du kan skapa en extern volym i ett schema som refererar till en undermapp på din externa plats. Som exempel:

USE CATALOG main;
USE SCHEMA data;
CREATE VOLUME IF NOT EXISTS raw_files
LOCATION 'my_data_loc/csv-files/';

Alla filer under den sökvägen är nu tillgängliga via den externa platsen och styrs av Unity Catalog-behörigheter.

Mer information finns i Vad är Unity Catalog-volymer?.

Steg 3: Kopiera filer från DBFS-roten

Om dina filer tidigare har lagrats i DBFS-roten kopierar du dem till molnlagringssökvägen. Till exempel i en elektronisk anteckningsbok:

dbutils.fs.cp(
  "dbfs:/FileStore/tables/data.csv",
  "/Volumes/main/data/raw_files/data.csv"
)

Tips/Råd

Om du har ett stort antal filer eller filer som är större än några GB kan du överväga att använda Azure Databricks CLI eller en distribuerad kopia med Apache Spark för att parallellisera flytten. Azure Databricks CLI-kommandot fs cp kan rekursivt kopiera kataloger.

Steg 4: Verifiera migrerade filer

När du har migrerat listar och läser du filer från volymer med hjälp av standardkommandon:

# List files in the volume
dbutils.fs.ls("/Volumes/main/data/raw_files/")

# Read a CSV file into a DataFrame
df = spark.read.option("header", True).csv(
  "/Volumes/main/data/raw_files/2024-01-01-data.csv"
)

Den här koden kräver lämpliga Behörigheter för Unity-katalogen på volymen eller den externa platsen och en beräkningsresurs som stöder Unity Catalog. Unity Catalog tillämpar att den ansvariga parten som läser filen har READ behörighet på volymen eller extern plats.

Steg 5: Rensa DBFS-monteringar

När du har kontrollerat att filerna på den nya platsen är tillgängliga demonterar du gamla DBFS-monteringspunkter för att förhindra förvirring eller oavsiktlig användning:

dbutils.fs.unmount("/mnt/oldpath")

Överväg att låsa eller ta bort data i DBFS-roten om de har flyttats, eftersom om du lämnar kopior kan det leda till inkonsekventa uppdateringar eller säkerhetsrisker.

Migrera arbetsytetillgångar från DBFS

Vissa arbetsytor har notebook-filer, kodfiler eller referensskript lagrade på DBFS. Dessa kan vara:

  • Notebook-filer sparade i HTML- eller DBC-format i /FileStore för delning
  • Python-skript eller JAR-filer som används i Azure Databricks-jobb
  • Init-skript med datoromfång (till exempel dbfs:/databricks/init/...)

Notebook-filer och kod ska lagras som arbetsytefiler eller i Git-mappar, inte på DBFS. DBFS ger inte åtkomstkontroll per fil och bör inte användas för källkod eller notebook-filer.

  • Notebook-filer: Om du har notebook-filer som filer på DBFS importerar du dem till Azure Databricks-arbetsytan. Du kan göra detta manuellt med hjälp av användargränssnittets importfunktion eller med hjälp av CLI. Se till att behörigheter för notebook-filer på arbetsytan har angetts på rätt sätt för teamåtkomst. Framöver lagrar du notebook-filer som arbetsyteobjekt eller i Git-mappar och använder Git för versionskontroll.
  • Jobbskript: Om jobb har konfigurerats för att köra ett Python-skript från DBFS (till exempel ett jobb med uppgiftstypen "Python-skript" som refererar dbfs:/mnt/scripts/my_etl.py) flyttar du skripten till arbetsytefiler. Hantera dem i en Git-mapp för versionskontroll och ändringsspårning.
  • Skapa artefakter och bibliotek: Tillgångar som JAR-filer och Python-hjul bör lagras i Unity Catalog-volymer.
  • Init-skript med beräkningsomfång: Init-skript med beräkningsomfång bör lagras i Unity Catalog-volymer. Se Vad är init-skript?.

Leta upp och migrera beräkning till Databricks Runtime-versioner som stöds och åtkomstlägen

Anmärkning

Det här avsnittet innehåller frågor som kommer åt system.compute.clusters tabellen. För att få åtkomst till den här systemtabellen måste du vara administratör för Azure Databricks-kontot eller ha beviljats USE och SELECT behörigheter för compute systemschemat. Se Bevilja åtkomst till systemtabeller.

Som en del av migreringen av Unity Catalog rekommenderar Databricks att du uppgraderar alla beräknings- och jobb till Databricks Runtime 13.3 LTS eller senare och använder åtkomstlägen för Unity Catalog.

Om du vill granska beräkningen manuellt på arbetsytan går du till arbetsytans beräkningssida . I avsnittet All-purpose compute granskar du varje computeinstans Databricks Runtime-version. Sortera eller filtrera efter version för att identifiera kluster som kör versioner under 13.3 LTS. Upprepa för avsnittet Jobbberäkning eftersom jobb också kan konfigureras för att använda en viss Databricks Runtime-version.

För att programmatiskt hitta beräkningsversioner som körs i versioner under 13.3 LTS, gör en förfrågan i system.compute.clusters-tabellen. Som exempel:

SELECT
  workspace_id,
  cluster_id,
  dbr_version
FROM system.compute.clusters
WHERE
  TRY_CAST(SPLIT(dbr_version, '\\.')[0] AS INT) < 13
  OR (
    TRY_CAST(SPLIT(dbr_version, '\\.')[0] AS INT) = 13
    AND TRY_CAST(SPLIT(dbr_version, '\\.')[1] AS INT) < 3
  );

Då returneras en lista över beräknings- och jobbberäkningsresurser som kör versioner under 13.3 LTS.

Uppgradera beräkning till åtkomstlägen som stöds

Om du fortfarande har beräkning som körs i läget för delad åtkomst utan isolering kan du uppgradera den till åtkomstlägen som stöds. Se Åtkomstlägen. För att söka efter beräkning som körs i läget för delad åtkomst utan isolering, fråga system.compute.clusters-tabellen. Som exempel:

SELECT
  workspace_id,
  cluster_id,
  dbr_version,
  data_security_mode
FROM system.compute.clusters
WHERE data_security_mode IN ('NONE','NO_ISOLATION')
LIMIT 100;

Inaktivera åtkomst till äldre funktioner på dina arbetsytor

När du har slutfört migreringsstegen ovan kan du inaktivera åtkomst till äldre funktioner på dina arbetsytor.