Rozwiązywanie typowych problemów z udostępnianiem w usłudze OpenSharing

W poniższych sekcjach opisano typowe błędy, które mogą wystąpić podczas próby uzyskania dostępu do danych w udziale.

Błędy przekroczenia limitu zasobów

Problem: Zapytanie w tabeli udostępnionej zwraca błąd RESOURCE_LIMIT_EXCEEDED.

  • "RESOURCE_LIMIT_EXCEEDED","message":"The table metadata size exceeded limits"
  • "RESOURCE_LIMIT_EXCEEDED","message":"The number of files in the table to return exceeded limits, consider contact your provider to optimize the table"

Możliwe przyczyny: istnieją limity liczby plików w metadanych dozwolonych dla udostępnionej tabeli:

  • Aktywne pliki: udostępniona tabela obsługuje maksymalnie 400 000 aktywnych plików (akcje AddFile). Jeśli liczba aktywnych plików przekroczy ten limit, zapytania zwracają błąd "liczba plików przekroczonych".
  • Akcje usuwania plików: udostępniona tabela obsługuje maksymalnie 100 000 akcji RemoveFile w dzienniku delty. Jeśli liczba akcji RemoveFile przekracza ten limit, zapytania zwracają błąd "przekroczono rozmiar metadanych".

Możesz zażądać zwiększenia limitu dla limitu aktywnych plików. Zobacz Limity zasobów.

Zalecana poprawka: Skontaktuj się z dostawcą danych i poproś go o zoptymalizowanie udostępnionej tabeli, uruchamiając OPTIMIZE oraz VACUUM w celu skompaktowania małych plików i usunięcia nieaktualnych wpisów RemoveFile z dziennika Delta. Aby uzyskać dodatkowe wskazówki, zobacz błąd RESOURCE_LIMIT_EXCEEDED podczas wykonywania zapytań dotyczących tabeli Delta Sharing w bazie wiedzy usługi Databricks.

Problem z plikiem danych opróżnionych

Problem: Zostanie wyświetlony komunikat o błędzie, który zgłasza wyjątek "404 Określony [path|key] nie istnieje".

Przykładowe błędy platformy Spark:

java.lang.Throwable: HTTP request failed with status: HTTP/1.1 404 The specified path does not exist.

lub

HTTP request failed with status: HTTP/1.1 404 Not Found <?xml version="1.0" encoding="UTF-8"?>
<Error><Code>NoSuchKey</Code><Message>The specified key does not exist.</Message>

Możliwa przyczyna: zazwyczaj ten błąd występuje, ponieważ plik danych odpowiadający wstępnie podpisanemu adresowi URL jest opróżniany w tabeli udostępnionej, a plik danych należy do wersji tabeli historycznej.

Obejście: Wykonaj zapytanie na temat najnowszej migawki.

Błąd niezgodności schematu w Open Source Spark

Problem: Podczas korzystania z platformy Spark typu open source (OSS) podczas odczytywania tabel openSharing jest wyświetlany błąd niezgodności schematu.

Przykład błędu:

py4j.protocol.Py4JJavaError: An error occurred while calling o85.count.: org.apache.spark.SparkException: The schema or partition columns of your Delta table has changed since your DataFrame was created. Please redefine your DataFrame

Możliwa przyczyna: kolumny schematu lub partycji tabeli delty uległy zmianie po utworzeniu ramki danych.

Zalecana poprawka: ustaw flagę spark.delta.sharing.client.useStructuralSchemaMatch konfiguracji platformy Spark na true.

Note

Konfiguracja spark.delta.sharing.client.useStructuralSchemaMatch jest dostępna tylko w delta-sharing-client wersji 1.2.3 lub nowszej, co wymaga platformy Apache Spark 4.0.0 lub nowszej.

spark.conf.set("spark.delta.sharing.client.useStructuralSchemaMatch", "true")

Problem z konfiguracją sieci pamięci masowej

Problem: Widzisz komunikat o błędzie, który wyrzuca SSLCertVerificationError.

Przykład błędu platformy Spark:

ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1006)

Możliwa przyczyna: zazwyczaj ten błąd występuje, ponieważ występuje ograniczenie sieci dotyczące lokalizacji magazynu udostępnionej tabeli lub woluminu.

Zalecana poprawka: w interfejsie dostawcy magazynu zezwól na dostęp do lokalizacji magazynu, zezwalając na adres IP klienta w ustawieniach zapory konta magazynu.

Problem z dostępem do współużytkowanego zasobu materializacji

Problem: Zapytanie dotyczące widoku współdzielonego, zmaterializowanego widoku lub tabeli strumieniowej zwraca błąd DS_MATERIALIZATION_QUERY_FAILED.

"DS_MATERIALIZATION_QUERY_FAILED": "The shared asset could not be materialized due to the asset not being accessible in the materialization workspace. Please ask data provider to contact :re[DB] support to override the materialization workspace."

Możliwe przyczyny: dostawca nie ma dostępu do odczytu i zapisu do zasobu, który próbuje udostępnić.

Zalecana poprawka: skontaktuj się z dostawcą danych, aby upewnić się, że mają dostęp do odczytu i zapisu do udostępnionego zasobu danych.

Błąd dostępu do sieci podczas materializacji danych

Problem: Zapytanie dotyczące udostępnionego zasobu danych zwraca błąd dotyczący uzyskiwania dostępu do magazynu w chmurze dostawcy danych.

There was an issue accessing the data provider's cloud storage. Shared view materialization uses the Serverless compute of data provider's region to perform the materialization. Please contact the data provider to allowlist Serverless compute IPs of their corresponding region to access the view's dependent tables storage location.

Możliwe przyczyny: Lokalizacja przechowywania zmaterializowanych danych ma ograniczenia sieciowe (takie jak zapora ogniowa lub łącze prywatne), które uniemożliwiają bezserwerowym zasobom obliczeniowym Azure Databricks dostęp do tych danych. Podczas udostępniania widoków, zmaterializowanych widoków lub tabel przesyłania strumieniowego dane są tymczasowo zmaterializowane po stronie dostawcy. Lokalizacja magazynu materializacji to nadrzędny schemat zasobu lub lokalizacja magazynu katalogu.

Zalecana poprawka: dostawca danych musi zezwolić na wyświetlanie bezserwerowych adresów IP obliczeniowych odpowiedniego regionu w celu uzyskania dostępu do lokalizacji przechowywania tabel zależnych widoku. Aby skonfigurować zaporę sieciową, zobacz artykuł Konfigurowanie granicy zabezpieczeń sieciowych (NSP) platformy Azure dla zasobów platformy Azure.

Błąd zasobu danych "nie istnieje"

Jeśli klikniesz udostępniony plik i wystąpi błąd "obiekt 'nie istnieje'", właściciel udziału po stronie dostawcy może nie mieć wystarczających uprawnień do zarządzania zasobem. Skontaktuj się z dostawcą danych i poproś go o sprawdzenie, czy właściciel udziału ma wymagane uprawnienia do wszystkich udostępnionych zasobów. Aby uzyskać więcej informacji na temat uprawnień wymaganych dla właściciela udziału w celu udostępnienia zasobu danych, zobacz Wymagania i Udziel adresatowi dostępu do udziału.