Metodtips för DBFS och Unity Catalog

Unity Catalog introducerar ett antal nya konfigurationer och begrepp som närmar sig datastyrning helt annorlunda än DBFS. Den här artikeln beskriver flera metodtips för att arbeta med externa platser i Unity Catalog och DBFS.

Databricks rekommenderar att du inte använder DBFS och monterad molnobjektlagring för de flesta användningsfall i Unity Catalog-aktiverade Azure Databricks-arbetsytor. I den här artikeln beskrivs några scenarier där du bör använda monterad molnobjektlagring. Observera att Databricks inte rekommenderar att du använder DBFS-roten tillsammans med Unity Catalog, såvida du inte måste migrera filer eller data som lagras där till Unity Catalog.

Hur används DBFS i Unity Catalog-aktiverade arbetsytor?

DBFS-rotenär standardplatsen för att lagra filer som är associerade med ett antal åtgärder som utförs på Azure Databricks-arbetsytan, inklusive att skapa hanterade tabeller i arbetsytans hive_metastoreomfång. Åtgärder som utförs mot tabeller i hive_metastore använder äldre dataåtkomstmönster, som kan omfatta data och autentiseringsuppgifter för lagring som hanteras av DBFS.

Hur fungerar DBFS i åtkomstläge för en användare?

Kluster som konfigurerats med enkel användaråtkomstläge har fullständig åtkomst till DBFS, inklusive alla filer i DBFS-roten och monterade data. DBFS-rot och monteringar är tillgängliga i det här åtkomstläget, vilket gör det till valet för ML-arbetsbelastningar som behöver åtkomst till Unity Catalog-datauppsättningar.

Databricks rekommenderar att du använder tjänstens huvudnamn med schemalagda jobb och åtkomstläge för enskild användare för produktionsarbetsbelastningar som behöver åtkomst till data som hanteras av både DBFS och Unity Catalog.

Hur fungerar DBFS i läget för delad åtkomst?

Läget för delad åtkomst kombinerar datastyrning i Unity Catalog med azure Databricks äldre tabell-ACL:er. Åtkomst till data i hive_metastore är endast tillgängligt för användare som har uttrycklig behörighet.

Om du vill interagera med filer direkt med HJÄLP av DBFS måste du ha ANY FILE behörigheter som beviljats. Eftersom ANY FILE tillåter användare att kringgå äldre tabeller aCL:er i hive_metastore och komma åt alla data som hanteras av DBFS rekommenderar Databricks försiktighet när du beviljar den här behörigheten.

Använd inte DBFS med externa platser i Unity Catalog

Unity Catalog skyddar åtkomsten till data på externa platser med hjälp av fullständiga moln-URI-sökvägar för att identifiera bidrag för lagringskataloger för hanterade objekt. DBFS-monteringar använder en helt annan dataåtkomstmodell som kringgår Unity Catalog helt och hållet. Databricks rekommenderar att du inte återanvänder lagringsvolymer för molnobjekt mellan DBFS-monteringar och externa UC-volymer.

Skydda din Unity Catalog-hanterade lagring

Varje Unity Catalog-metaarkiv har ett objektlagringskonto som konfigurerats av en Azure Databricks-kontoadministratör. Unity Catalog använder den här platsen för att lagra alla data och metadata för Unity Catalog-hanterade tabeller.

Ett lagringskonto som används för ett Unity Catalog-metaarkiv bör:

  • Skapas ny för Unity Catalog.
  • Ha en anpassad identitetsprincip definierad för Unity Catalog.
  • Kan endast nås med Unity Catalog.
  • Endast nås med hjälp av identitetsåtkomstprinciperna som skapats för Unity Catalog.

Lägga till befintliga data på externa platser

Det går att läsa in befintliga lagringskonton i Unity Catalog med hjälp av externa platser. För största säkerhet rekommenderar Databricks att du bara läser in lagringskonton till externa platser om alla andra autentiseringsuppgifter för lagring och åtkomstmönster har återkallats.

Du bör aldrig läsa in ett lagringskonto som används som en DBFS-rot som en extern plats i Unity Catalog.

Klusterkonfigurationer ignoreras av åtkomst till Unity Catalog-filsystem

Unity Catalog respekterar inte klusterkonfigurationer för filsysteminställningar. Det innebär att Hadoop-filsysteminställningar för att konfigurera anpassat beteende med lagring av molnobjekt inte fungerar vid åtkomst till data med hjälp av Unity Catalog.

Begränsning kring åtkomst till flera sökvägar

Du kan vanligtvis använda Unity Catalog och DBFS tillsammans, men sökvägar som är lika med eller delar en överordnad/underordnad relation kan inte refereras i samma kommando eller notebook-cell med olika åtkomstmetoder.

Om till exempel en extern tabell foo har definierats på hive_metastore platsen a/b/c och en extern plats definieras i Unity Catalog a/b/den , utlöser följande kod ett fel:

spark.read.table("foo").filter("id IS NOT NULL").write.mode("overwrite").save("a/b/c")

Det här felet skulle inte uppstå om den här logiken är uppdelad i två celler:

df = spark.read.table("foo").filter("id IS NOT NULL")
df.write.mode("overwrite").save("a/b/c")