Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Produkty, usługi lub technologie wymienione w tej zawartości są w trybie konserwacji i ta dokumentacja została wycofana. Zobacz Uzyskiwanie dostępu do tabel usługi Azure Databricks z klientów platformy Apache Iceberg.
Katalog REST Apache Iceberg umożliwia odczytywanie tabel zarejestrowanych w Unity Catalog w usłudze Azure Databricks z obsługiwanych klientów Iceberg, w tym Apache Spark, Apache Flink, Trino i Snowflake.
Aby uzyskać pełną listę obsługiwanych integracji, zobacz Integracje Unity Catalog.
Odczyt przy użyciu punktu końcowego katalogu Iceberg w Unity Catalog
Unity Catalog zapewnia rozwiązanie tylko do odczytu dla interfejsu API katalogu REST Iceberg dla tabel z włączoną funkcjonalnością odczytu Iceberg.
Skonfiguruj dostęp przy użyciu punktu końcowego /api/2.1/unity-catalog/iceberg. Aby uzyskać szczegółowe informacje na temat korzystania z tego interfejsu API REST, zobacz specyfikację interfejsu API REST
Uwaga / Notatka
Azure Databricks wprowadziło dystrybucję poświadczeń dla niektórych klientów Iceberg. Databricks zaleca używanie zarządzania poświadczeniami w celu kontrolowania dostępu do lokalizacji przechowywania w chmurze w obsługiwanych systemach. Zobacz wydawanie poświadczeń dla Unity Catalog w celu uzyskania dostępu do systemu zewnętrznego.
Jeśli obsługa poświadczeń nie jest obsługiwana przez klienta, należy skonfigurować dostęp z klienta do lokalizacji magazynu w chmurze zawierającej pliki i metadane tabeli Delta z włączonym odczytem Iceberg (UniForm). Aby uzyskać szczegółowe informacje o konfiguracji, zapoznaj się z dokumentacją klienta Iceberg Reader.
Ważne
Punkt /api/2.1/unity-catalog/iceberg końcowy ma limit szybkości 5 QPS. W przypadku wyższego poziomu QPS należy użyć punktu końcowego /api/2.1/unity-catalog/iceberg-rest . Zobacz Uzyskiwanie dostępu do tabel usługi Azure Databricks z klientów platformy Apache Iceberg.
Wymagania
Usługa Azure Databricks obsługuje dostęp do katalogu Iceberg przez REST do tabel w ramach Unity Catalog. Aby korzystać z tych punktów końcowych, musisz mieć włączony Unity Catalog w swoim obszarze roboczym. Następujące typy tabel kwalifikują się do odczytów katalogu REST Iceberg:
- Tabele zarządzane przez Unity Catalog z włączonym odczytywaniem Iceberg (UniForm).
- Tabele zewnętrzne Unity Catalog przechowywane w Delta Lake z włączoną funkcją odczytu Iceberg (UniForm).
Zobacz Odczytywanie tabel Delta przez klientów Iceberg.
Należy wykonać następujące kroki konfiguracji, aby skonfigurować dostęp do odczytu tabel Databricks z klientów Iceberg przy użyciu katalogu REST Iceberg:
- Włącz dostęp do danych zewnętrznych dla magazynu metadanych. Zobacz Włączanie dostępu do danych zewnętrznych w magazynie metadanych.
- Udziel podmiotowi konfigurującemu integrację uprawnienia
EXTERNAL USE SCHEMAw schemacie zawierającym tabele. Zobacz Udzielanie uprawnień katalogu aparatu Unity podmiotu zabezpieczeń. - Uwierzytelnianie przy użyciu osobistego tokenu dostępu usługi Databricks. Zobacz Autoryzowanie dostępu do zasobów usługi Azure Databricks.
Odczytywanie tabel Iceberg w Apache Spark
Poniżej przedstawiono przykład ustawień konfigurowania platformy Apache Spark w celu odczytywania tabel usługi Azure Databricks w formacie Iceberg:
"spark.sql.extensions": "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions",
# Configuration for accessing Uniform tables in Unity Catalog
"spark.sql.catalog.<spark-catalog-name>": "org.apache.iceberg.spark.SparkCatalog",
"spark.sql.catalog.<spark-catalog-name>.type": "rest",
"spark.sql.catalog.<spark-catalog-name>.uri": "<workspace-url>/api/2.1/unity-catalog/iceberg",
"spark.sql.catalog.<spark-catalog-name>.token":"<token>",
"spark.sql.catalog.<spark-catalog-name>.warehouse":"<uc-catalog-name>"
Zastąp następujące zmienne:
-
<uc-catalog-name>: nazwa katalogu w Unity Catalog, który zawiera twoje tabele. -
<spark-catalog-name>: nazwa, którą chcesz przypisać do katalogu w sesji platformy Spark. -
<workspace-url>: adres URL obszaru roboczego usługi Azure Databricks. -
<token>: token PAT dla głównego podmiotu konfigurującego integrację.
Dzięki tym konfiguracjom, możesz wykonywać zapytania dotyczące tabel usługi Azure Databricks jako Iceberg w platformie Apache Spark, używając identyfikatora <catalog-name>.<schema-name>.<table-name>. Aby uzyskać dostęp do tabel w wielu katalogach, należy skonfigurować każdy wykaz oddzielnie.
Podczas wykonywania zapytań w tabelach w Katalogu Unity przy użyciu konfiguracji Spark warto pamiętać o następujących kwestiach:
Potrzebujesz
"spark.sql.extensions": "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions"tylko w przypadku, gdy uruchamiasz procedury składowane specyficzne dla Iceberg .Usługa Azure Databricks używa magazynu obiektów w chmurze dla wszystkich tabel. Musisz dodać specyficzny dla chmury pakiet JAR Iceberg jako pakiet Spark.
- AWS:
org.apache.iceberg:iceberg-aws-bundle:<iceberg-version> - Błękit:
org.apache.iceberg:iceberg-azure-bundle:<iceberg-version> - GCP:
org.apache.iceberg:iceberg-gcp-bundle:<iceberg-version>
Aby uzyskać szczegółowe informacje, zobacz dokumentację dotyczącą integracji Iceberg AWS z Apache Spark.
- AWS:
Odczytywanie tabel usługi Databricks za pomocą usługi Snowflake
Poniżej przedstawiono przykład zalecanych ustawień konfiguracji, aby umożliwić usłudze Snowflake odczytywanie tabel usługi Azure Databricks w formacie Iceberg:
CREATE OR REPLACE CATALOG INTEGRATION <catalog-integration-name>
CATALOG_SOURCE = ICEBERG_REST
TABLE_FORMAT = ICEBERG
CATALOG_NAMESPACE = '<uc-schema-name>'
REST_CONFIG = (
CATALOG_URI = '<workspace-url>/api/2.1/unity-catalog/iceberg',
WAREHOUSE = '<uc-catalog-name>'
)
REST_AUTHENTICATION = (
TYPE = BEARER
BEARER_TOKEN = '<token>'
)
ENABLED = TRUE;
Zastąp następujące zmienne:
-
<catalog-integration-name>: nazwa, która ma zostać przypisana do katalogu zarejestrowanego w usłudze Snowflake. -
<uc-schema-name>: nazwa schematu w Unity Catalog, do którego chcesz uzyskać dostęp. -
<uc-catalog-name>: nazwa katalogu w Unity Catalog, do którego musisz uzyskać dostęp. -
<workspace-url>: adres URL obszaru roboczego usługi Azure Databricks. -
<token>: token PAT dla głównego podmiotu konfigurującego integrację.
Przykład użycia curl w API REST
Możesz również użyć wywołania interfejsu API REST, takiego jak w tym przykładzie curl, aby załadować tabelę:
curl -X GET -H "Authorization: Bearer $OAUTH_TOKEN" -H "Accept: application/json" \
https://<workspace-instance>/api/2.1/unity-catalog/iceberg/v1/catalogs/<uc_catalog_name>/namespaces/<uc_schema_name>/tables/<uc_table_name>
Następnie powinna zostać wyświetlona odpowiedź podobna do następującej:
{
"metadata-location": "abfss://my-container@my-storage-account.dfs.core.windows.net/path/to/iceberg/table/metadata/file",
"metadata": <iceberg-table-metadata-json>,
"config": {
"expires-at-ms": "<epoch-ts-in-millis>",
"adls.sas-token.<storage-account-name>.dfs.core.windows.net": "<temporary-sas-token>"
}
}
Uwaga / Notatka
Pole expires-at-ms w odpowiedzi wskazuje czas wygaśnięcia poświadczeń i ma domyślny czas wygaśnięcia jednej godziny. Aby uzyskać lepszą wydajność, klient powinien buforować poświadczenia aż do momentu wygaśnięcia, zanim zażąda nowych.