Databricks-táblák elérése Delta-ügyfelekről

Ez a lap bemutatja, hogyan hozhat létre, olvashat és írhat Unity Katalógus által felügyelt és külső táblákat külső Delta-ügyfelekről a Unity REST API használatával. A támogatott integrációk teljes listájáért tekintse meg a Unity Catalog-integrációkat.

Borravaló

Az Azure Databricks adatok Microsoft Fabric használatával történő olvasásáról további információt a Microsoft Fabric Azure Databricks című témakörben talál.

Létrehozás, olvasás és írás a Unity REST API használatával

Fontos

A Unity Catalog által felügyelt táblák létrehozása és írása a Delta-ügyfelekről nyilvános előzetes verzióban érhető el.

A Unity REST API külső ügyfelek számára biztosít létrehozási, olvasási és írási hozzáférést a Unity Catalogban regisztrált táblákhoz. Konfigurálja a hozzáférést a munkaterület URL-címével végpontként. A következő táblázattípusok érhetők el:

Táblázat típusa Olvasd Írj! Teremtsd meg
Felügyelt Delta Igen Igen* Igen*
Külső delta Igen Igen Igen

* A katalógus véglegesítéseivel rendelkező felügyelt Delta-táblák esetében támogatott.

Támogatott ügyfelek

Az Apache Spark támogatja a Unity Catalog által felügyelt és külső Delta-táblák létrehozását, olvasását és írását a Unity REST API-n keresztül.

A bétaverzió az alábbi ügyfeleket támogatja. Ha szeretné használni őket, lépjen kapcsolatba Azure Databricks fiókcsapatával:

  • Apache Flink
  • DuckDB
  • StreamNative
  • Starburst

Követelmények

Azure Databricks támogatja a Unity REST API-nak a táblákhoz való hozzáférését a Unity Catalog részeként. Ezeknek a végpontoknak a használatához engedélyeznie kell a Unity Katalógust a munkaterületen.

A Delta-ügyfelek tábláihoz való hozzáférés a Unity REST API-val való konfigurálásához a következő konfigurációs lépéseket is el kell végeznie:

Korlátozások

  • A külső hozzáférés táblázatokhoz Iceberg olvasásokkal és IcebergCompatV3-mal jelenleg nem támogatott.
  • A külső ügyfelek nem módosíthatják delta.* vagy databricks.* törölhetik a táblatulajdonságokat, nem adhatnak hozzá vagy távolíthatók el a táblafunkciók, átnevezhetők az oszlopok, és nem adhatnak hozzá vagy helyezhetnek el CHECK korlátozásokat.
  • A külső ügyfelek nem hajthatnak végre táblakarbantartási műveleteket, például OPTIMIZE, VACUUM és ANALYZE, kezelt Delta-táblákon.
  • A külső ügyfelek nem hozhatnak létre létrehozott oszlopokat, alapértelmezett oszlopokat vagy kényszeroszlopokat tartalmazó táblákat.
  • Külső táblák létrehozásakor Azure Databricks azt javasolja, hogy az Apache Spark használatával győződjön meg arról, hogy az oszlopdefiníciók kompatibilisek az Apache Sparkpal. Az API nem ellenőrzi az oszlopspecifikáció helyességét. Ha a specifikáció nem kompatibilis az Apache Sparkkal, előfordulhat, hogy a Databricks Runtime nem tudja olvasni a táblákat.

Megjegyzés:

Ha egy külső Delta-ügyfélhez csatolt sorszűrőket vagy oszlopmaszkokat tartalmazó táblákat szeretne olvasni, tekintse meg a motorközi attribútumalapú hozzáférés-vezérlést (ABAC) a szükséges ügyfélverziók és -konfigurációk esetében.

Delta-táblák elérése az Apache Spark használatával PAT-hitelesítéssel

A külső Spark-ügyfelek PAT-hitelesítéséhez a következőre van szükség:

A következő konfiguráció szükséges a Unity Catalog által felügyelt és külső Delta-táblák olvasásához vagy írásához az Apache Spark használatával PAT-hitelesítéssel:

"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>.uri": "<workspace-url>",
"spark.sql.catalog.<uc-catalog-name>.token": "<token>",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_4.1_2.13:4.3.0,io.unitycatalog:unitycatalog-spark_4.1_2.13:0.5.0,org.apache.hadoop:hadoop-azure:3.4.2"

Cserélje le a következő változókat:

  • <uc-catalog-name>: Az Unity Catalog katalógusának neve, amely tartalmazza a táblákat.
  • <token>: Az integrációt konfiguráló főentitás személyes hozzáférési jogkivonata (PAT).
  • <workspace-url>: A Azure Databricks munkatér URL-címe, beleértve a munkaterület azonosítóját. Például: adb-1234567890123456.12.azuredatabricks.net.

Megjegyzés:

A fent látható csomagverziók a lap utolsó frissítésétől aktuálisak. Lehetséges, hogy újabb verziók érhetők el. Ellenőrizze, hogy a csomagverziók kompatibilisek-e a Spark-verzióval.

Az Apache Spark felhőbeli objektumtárolóhoz való konfigurálásával kapcsolatos további részletekért tekintse meg a Unity Catalog OSS dokumentációját.

Fontos

A Databricks Runtime 16.4 vagy újabb verzió szükséges a táblák olvasásához, írásához vagy létrehozásához, amikor a katalógus-kötelezettségvállalások engedélyezettek. A Databricks Runtime 18.0-s vagy újabb verziója szükséges a katalógus véglegesítésének engedélyezéséhez vagy letiltásához a meglévő táblákon.

A katalógus véglegesítéseivel rendelkező felügyelt Delta-táblák létrehozásához használja a következő SQL-t:

CREATE TABLE <uc-catalog-name>.<schema-name>.<table-name> (id INT, desc STRING)
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported') USING delta;

Külső Delta-táblák létrehozásához használja a következő SQL-t:

CREATE TABLE <uc-catalog-name>.<schema-name>.<table-name> (id INT, desc STRING)
USING delta
LOCATION <path>;

Delta-táblák elérése az Apache Spark használatával OAuth-hitelesítéssel

Azure Databricks az OAuth machine-to-machine (M2M) hitelesítést is támogatja. Az OAuth automatikusan kezeli a tokenek és hitelesítő adatok megújítását a Unity Catalog-hitelesítés során.

A külső Spark-ügyfelek OAuth-hitelesítéséhez a következőre van szükség:

A következő konfiguráció szükséges ahhoz, hogy a Unity Catalog által felügyelt táblákat és külső Delta-táblákat OAuth-hitelesítéssel hozzon létre, olvasson vagy írjon be a Unity Catalog-ba és külső Delta-táblákba az Apache Spark használatával:

"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>.uri": "<workspace-url>",
"spark.sql.catalog.<uc-catalog-name>.auth.type": "oauth",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.uri": "<oauth-token-endpoint>",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.clientId": "<oauth-client-id>",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.clientSecret": "<oauth-client-secret>",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_4.1_2.13:4.3.0,io.unitycatalog:unitycatalog-spark_4.1_2.13:0.5.0,org.apache.hadoop:hadoop-azure:3.4.2"

Cserélje le a következő változókat:

  • <workspace-url>: A Azure Databricks munkatér URL-címe, beleértve a munkaterület azonosítóját. Például: adb-1234567890123456.12.azuredatabricks.net.

Megjegyzés:

A fent látható csomagverziók a lap utolsó frissítésétől aktuálisak. Lehetséges, hogy újabb verziók érhetők el. Ellenőrizze, hogy a csomagverziók kompatibilisek-e a Spark-verzióval.