Udostępnij przez


Odczytaj dane udostępnione za pomocą Delta Sharing, otwartego udostępniania z użyciem tokenów dostępu (dla odbiorców).

Na tej stronie opisano sposób odczytywania danych udostępnionych ci przy użyciu protokołu otwartego udostępniania Delta Sharing z tokenami uwierzytelniającymi. Zawiera instrukcje dotyczące odczytywania udostępnionych danych przy użyciu następujących narzędzi:

  • Databricks
  • Apache Spark
  • Pandas
  • Power BI
  • Tableau
  • Klienci góry lodowej

W tym otwartym modelu udostępniania użyjesz pliku poświadczeń udostępnionego członkowi zespołu przez dostawcę danych, aby uzyskać bezpieczny dostęp do odczytu do udostępnionych danych. Dostęp trwa tak długo, jak dane uwierzytelniające są ważne, a dostawca kontynuuje udostępnianie danych. Dostawcy zarządzają wygasaniem i rotacją poświadczeń. Aktualizacje danych są dostępne niemal w czasie rzeczywistym. Możesz odczytywać i tworzyć kopie udostępnionych danych, ale nie można modyfikować danych źródłowych.

Notatka

Jeśli dane zostały Ci udostępnione przy użyciu Databricks-to-Databricks Delta Sharing, nie potrzebujesz pliku poświadczeń, aby uzyskać dostęp do tych danych, a ta strona nie ma zastosowania do Ciebie. Zamiast tego zobacz Odczyt danych udostępnionych przy użyciu Databricks-to-Databricks Delta Sharing (dla odbiorców).

W poniższych sekcjach opisano, jak używać klientów usług Azure Databricks, Apache Spark, pandasPower BI i Iceberg, aby uzyskiwać dostęp do udostępnionych danych i odczytywać je przy użyciu pliku poświadczeń. Aby uzyskać pełną listę konektorów Delta Sharing oraz informacje o ich używaniu, zobacz dokumentację open source Delta Sharing. Jeśli napotkasz problemy z dostępem do danych udostępnionych, skontaktuj się z dostawcą danych.

Zanim zaczniesz

Członek twojego zespołu musi pobrać plik uwierzytelniający udostępniony przez dostawcę danych. Zobacz Uzyskaj dostęp w modelu otwartego udostępniania.

Powinni użyć bezpiecznego kanału, aby udostępnić Ci ten plik lub lokalizację pliku.

Azure Databricks: Czytaj udostępnione dane za pomocą otwartych złączy współdzielenia

W tej sekcji opisano sposób importowania dostawcy i wykonywania zapytań dotyczących udostępnionych danych w Eksploratorze wykazu lub w notesie języka Python:

  • Jeśli obszar roboczy usługi Azure Databricks jest włączony do obsługi Unity Catalog, użyj interfejsu użytkownika do importowania dostawców w Eksploratorze wykazu. Możesz wykonać następujące czynności bez konieczności przechowywania lub określania pliku poświadczeń:

    • Utwórz katalogi z udostępnień jednym kliknięciem.
    • Użyj mechanizmów kontroli dostępu katalogu Unity, aby umożliwić dostęp do udostępnionych tabel.
    • Zadawaj zapytania dotyczące udostępnionych danych przy użyciu standardowej składni Unity Catalog.
  • Jeśli obszar roboczy usługi Azure Databricks nie jest włączony dla Unity Catalog, użyj instrukcji do notesów Python jako przykładu.

Eksplorator wykazu

Wymagane uprawnienia: administrator Katalogu lub użytkownik, który ma uprawnienia CREATE PROVIDER i USE PROVIDER dla magazynu metadanych Unity Catalog.

  1. W obszarze roboczym usługi Azure Databricks kliknij ikonę Dane.Wykaz do otwierania Eksploratora wykazu.

  2. W górnej części okienka Wykaz kliknij ikonę koła zębatego i wybierz Delta Sharing.

    Alternatywnie, na stronie Szybki dostęp kliknij przycisk Udostępnianie Delta>.

  3. Na karcie Udostępnione mi kliknij pozycję Importuj dane.

  4. Wprowadź nazwę dostawcy.

    Nazwa nie może zawierać spacji.

  5. Przekaż plik poświadczeń udostępniony przez dostawcę.

    Wielu dostawców ma własne sieci Delta Sharing, z których możesz otrzymywać udziały. Aby uzyskać więcej informacji, zobacz konfiguracje specyficzne dla dostawcy.

  6. (Optional) Wprowadź komentarz.

    Importowanie pliku poświadczeń dostawcy bezpośrednio z dostawcy

  7. Kliknij Import.

  8. Utwórz wykazy na podstawie udostępnionych danych.

    Na karcie Udziałów kliknij pozycję Utwórz katalog w wierszu udziałów.

    Aby uzyskać informacje na temat tworzenia wykazu na podstawie udziału przy użyciu języka SQL lub interfejsu wiersza polecenia usługi Databricks, zobacz Tworzenie wykazu na podstawie udziału.

  9. Udziel dostępu do katalogów.

    Zobacz Jak udostępnić dane mojemu zespołowi? i Zarządzaj uprawnieniami dla schematów, tabel i woluminów w katalogu Delta Sharing.

  10. Odczytaj udostępnione obiekty danych tak, jak każdy obiekt danych zarejestrowany w Unity Catalog.

    Aby uzyskać szczegółowe informacje i przykłady, zobacz dostęp do danych w udostępnionej tabeli lub woluminie.

Python

Ta sekcja opisuje, jak używać otwartego łącznika udostępniania, aby uzyskać dostęp do udostępnionych danych za pomocą notebooka w obszarze roboczym Azure Databricks. Ty lub inny członek zespołu przechowasz plik poświadczeń w usłudze Azure Databricks, a następnie użyjesz go do uwierzytelnienia na koncie dostawcy danych usługi Azure Databricks i odczytaj dane udostępnione Tobie przez dostawcę danych.

Notatka

W tych instrukcjach przyjęto założenie, że obszar roboczy Azure Databricks nie obsługuje Unity Catalog. Jeśli używasz Unity Catalog, nie musisz wskazywać pliku poświadczeń podczas odczytywania z udostępnienia. Możesz odczytywać z udostępnionych tabel tak, jak z dowolnej tabeli zarejestrowanej w Unity Catalog. Usługa Databricks zaleca użycie interfejsu użytkownika dostawcy importu w Eksploratorze wykazu zamiast instrukcji podanych tutaj.

Najpierw zapisz plik poświadczeń jako plik obszaru roboczego usługi Azure Databricks, aby użytkownicy w zespole mogli uzyskiwać dostęp do udostępnionych danych.

  1. Aby zaimportować plik poświadczeń w obszarze roboczym usługi Azure Databricks, zobacz Importowanie pliku.

  2. Udziel innym użytkownikom uprawnień dostępu do pliku, klikając ikonę menu Kebab. Obok pliku wybierz pozycję Udostępnij (uprawnienia). Wprowadź tożsamości Azure Databricks, które powinny mieć dostęp do pliku.

    Aby uzyskać więcej informacji na temat uprawnień do plików, zobacz Listy ACL plików.

Teraz, gdy plik poświadczeń jest przechowywany, użyj notebooka, aby wyświetlić listę i odczytywać udostępnione tabele.

  1. W swoim środowisku pracy Azure Databricks kliknij Nowy > Notatnik.

    Aby uzyskać więcej informacji na temat notesów usługi Azure Databricks, zobacz Notesy usługi Databricks.

  2. Aby użyć języka Python lub pandas do uzyskania dostępu do udostępnionych danych, zainstaluj delta-sharing Python connector. W edytorze notatnika wklej następujące polecenie:

    %sh pip install delta-sharing
    
  3. Uruchom komórkę.

    Biblioteka delta-sharing języka Python jest zainstalowana w klastrze, jeśli nie została jeszcze zainstalowana.

  4. Za pomocą Python, wypisz tabele w udziale.

    W nowej komórce wklej następujące polecenie. Zastąp ścieżkę obszaru roboczego ścieżką do pliku poświadczeń.

    Po uruchomieniu kodu język Python odczytuje plik poświadczeń.

    import delta_sharing
    
    client = delta_sharing.SharingClient(f"/Workspace/path/to/config.share")
    
    client.list_all_tables()
    
  5. Uruchom komórkę.

    Wynikiem jest tablica tabel, wraz z metadanymi dla każdej tabeli. W poniższym wyniku widać dwie tabele:

    Out[10]: [Table(name='example_table', share='example_share_0', schema='default'), Table(name='other_example_table', share='example_share_0', schema='default')]
    

    Jeśli dane wyjściowe są puste lub nie zawierają oczekiwanych tabel, skontaktuj się z dostawcą danych.

  6. Zapytać wspólną tabelę.

    • Używanie języka Scala:

      W nowej komórce wklej następujące polecenie. Po uruchomieniu kodu plik poświadczeń jest odczytywany z pliku obszaru roboczego.

      Zamień zmienne w następujący sposób:

      • <profile-path>: ścieżka robocza pliku poświadczeń. Na przykład, /Workspace/Users/user.name@email.com/config.share.
      • <share-name>: wartość share= dla tabeli.
      • <schema-name>: wartość schema= dla tabeli.
      • <table-name>: wartość name= dla tabeli.
      %scala
          spark.read.format("deltaSharing")
          .load("<profile-path>#<share-name>.<schema-name>.<table-name>").limit(10);
      

      Uruchom komórkę. Za każdym razem, gdy ładujesz współdzieloną tabelę, widzisz aktualne dane ze źródła.

    • Korzystanie z języka SQL:

      Aby wykonać zapytanie do danych przy użyciu SQL, tworzysz lokalną tabelę w przestrzeni roboczej na podstawie tabeli współdzielonej, a następnie wykonujesz zapytanie do tej lokalnej tabeli. Dane współdzielone nie są przechowywane ani buforowane w tabeli lokalnej. Za każdym razem, gdy wyszukujesz w lokalnej tabeli, widzisz aktualny stan współdzielonych danych.

      W nowej komórce wklej następujące polecenie.

      Zamień zmienne w następujący sposób:

      • <local-table-name>: nazwa lokalnej tabeli.
      • <profile-path>: lokalizacja pliku z poświadczeniami.
      • <share-name>: wartość share= dla tabeli.
      • <schema-name>: wartość schema= dla tabeli.
      • <table-name>: wartość name= dla tabeli.
      %sql
      DROP TABLE IF EXISTS table_name;
      
      CREATE TABLE <local-table-name> USING deltaSharing LOCATION "<profile-path>#<share-name>.<schema-name>.<table-name>";
      
      SELECT * FROM <local-table-name> LIMIT 10;
      

      Gdy uruchomisz polecenie, dane współdzielone są bezpośrednio zapytane. Aby przetestować, zapytanie jest kierowane do tabeli, a zwracane są pierwsze 10 wyników.

    Jeśli dane wyjściowe są puste lub nie zawierają oczekiwanych danych, skontaktuj się z dostawcą danych.

Apache Spark: Odczytaj współużytkowane dane

Aby uzyskać dostęp do udostępnionych danych za pomocą Spark w wersji 3.x lub wyższej, wykonaj następujące kroki.

Instrukcje te zakładają, że masz dostęp do pliku z danymi uwierzytelniającymi, który został udostępniony przez dostawcę danych. Zobacz Uzyskaj dostęp w modelu otwartego udostępniania.

Ważne

Upewnij się, że plik poświadczeń jest dostępny dla platformy Apache Spark przy użyciu ścieżki bezwzględnej. Ścieżka może odwoływać się do obiektu w chmurze lub obszaru Unity Catalogu.

Notatka

Jeśli używasz platformy Spark w obszarze roboczym usługi Azure Databricks, który jest włączony dla Unity Catalog, i użyłeś interfejsu użytkownika do importu dostawcy i udostępniania, instrukcje w tej sekcji nie dotyczą ciebie. Można uzyskać dostęp do tabel udostępnionych tak samo jak do każdej innej tabeli zarejestrowanej w katalogu Unity. Nie trzeba instalować łącznika delta-sharing Python ani podać ścieżkę do pliku poświadczeń. Zobacz Azure Databricks: Read shared data using open sharing connectors.

Zainstaluj konektory Delta Sharing dla Python i Spark

Aby uzyskać dostęp do metadanych związanych z udostępnionymi danymi, takich jak lista tabel udostępnionych Tobie, wykonaj następujące czynności. Ten przykład używa Pythona.

  1. Zainstaluj konektor delta-sharing dla Pythona. Aby uzyskać informacje na temat ograniczeń łącznika języka Python, zobacz Ograniczenia łącznika języka Python Delta Sharing.

    pip install delta-sharing
    
  2. Zainstaluj łącznik platformy Apache Spark.

Wymień zbiorcze tabele za pomocą Spark

Wymień tabele w udziale. W poniższym przykładzie zamień <profile-path> na lokalizację pliku uwierzytelniającego.

import delta_sharing

client = delta_sharing.SharingClient(f"<profile-path>/config.share")

client.list_all_tables()

Wynikiem jest tablica tabel, wraz z metadanymi dla każdej tabeli. W poniższym wyniku widać dwie tabele:

Out[10]: [Table(name='example_table', share='example_share_0', schema='default'), Table(name='other_example_table', share='example_share_0', schema='default')]

Jeśli dane wyjściowe są puste lub nie zawierają oczekiwanych tabel, skontaktuj się z dostawcą danych.

Uzyskaj dostęp do współdzielonych danych za pomocą Spark

Uruchom następujące, zastępując te zmienne:

  • <profile-path>: lokalizacja pliku z poświadczeniami.
  • <share-name>: wartość share= dla tabeli.
  • <schema-name>: wartość schema= dla tabeli.
  • <table-name>: wartość name= dla tabeli.
  • <version-as-of>: opcjonalny. Wersja tabeli do załadowania danych. Działa tylko wtedy, gdy dostawca danych udostępnia historię tabeli. Wymaga delta-sharing-spark 0.5.0 lub wyższą wersję.
  • <timestamp-as-of>: opcjonalny. Załaduj dane w wersji sprzed lub o podanej sygnaturze czasowej. Działa tylko wtedy, gdy dostawca danych udostępnia historię tabeli. Wymaga delta-sharing-spark wersji 0.6.0 lub nowszej.

Python

delta_sharing.load_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>", version=<version-as-of>)

spark.read.format("deltaSharing")\
.option("versionAsOf", <version-as-of>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")\
.limit(10)

delta_sharing.load_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>", timestamp=<timestamp-as-of>)

spark.read.format("deltaSharing")\
.option("timestampAsOf", <timestamp-as-of>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")\
.limit(10)

Skala

spark.read.format("deltaSharing")
.option("versionAsOf", <version-as-of>)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
.limit(10)

spark.read.format("deltaSharing")
.option("timestampAsOf", <version-as-of>)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
.limit(10)

Uzyskaj dostęp do udostępnionego strumienia danych o zmianach za pomocą Spark

Jeśli historia tabeli została Ci udostępniona i w tabeli źródłowej jest włączony strumień zmian danych (CDF), uzyskaj dostęp do strumienia zmian danych, uruchamiając następujące polecenie, zastępując te zmienne. Wymaga delta-sharing-spark 0.5.0 lub wyższą wersję.

Należy podać jeden parametr początkowy.

  • <profile-path>: lokalizacja pliku z poświadczeniami.
  • <share-name>: wartość share= dla tabeli.
  • <schema-name>: wartość schema= dla tabeli.
  • <table-name>: wartość name= dla tabeli.
  • <starting-version>: opcjonalny. Początkowa wersja zapytania, włącznie. Określ jako Long.
  • <ending-version>: opcjonalny. Końcowa wersja zapytania, włącznie. Jeśli końcowa wersja nie jest podana, API używa najnowszej wersji tabeli.
  • <starting-timestamp>: opcjonalny. Początkowy znacznik czasu zapytania, który jest przekształcany na wersję utworzoną w czasie większym lub równym temu znacznikowi czasu. Określ jako ciąg w formacie yyyy-mm-dd hh:mm:ss[.fffffffff].
  • <ending-timestamp>: opcjonalny. Znacznik końcowy zapytania, który jest przekształcany na wersję utworzoną wcześniej lub równą temu znacznikowi czasowemu. Określ to jako ciąg w formacie yyyy-mm-dd hh:mm:ss[.fffffffff]

Python

delta_sharing.load_table_changes_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>",
  starting_version=<starting-version>,
  ending_version=<ending-version>)

delta_sharing.load_table_changes_as_spark(f"<profile-path>#<share-name>.<schema-name>.<table-name>",
  starting_timestamp=<starting-timestamp>,
  ending_timestamp=<ending-timestamp>)

spark.read.format("deltaSharing").option("readChangeFeed", "true")\
.option("startingVersion", <starting-version>)\
.option("endingVersion", <ending-version>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")

spark.read.format("deltaSharing").option("readChangeFeed", "true")\
.option("startingTimestamp", <starting-timestamp>)\
.option("endingTimestamp", <ending-timestamp>)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")

Skala

spark.read.format("deltaSharing").option("readChangeFeed", "true")
.option("startingVersion", <starting-version>)
.option("endingVersion", <ending-version>)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")

spark.read.format("deltaSharing").option("readChangeFeed", "true")
.option("startingTimestamp", <starting-timestamp>)
.option("endingTimestamp", <ending-timestamp>)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")

Jeśli dane wyjściowe są puste lub nie zawierają oczekiwanych danych, skontaktuj się z dostawcą danych.

Uzyskaj dostęp do współdzielonej tabeli za pomocą Spark Structured Streaming

Jeśli historia tabeli została z tobą udostępniona, możesz strumieniowo odczytywać udostępnione dane. Wymaga delta-sharing-spark wersji 0.6.0 lub nowszej.

Obsługiwane opcje:

  • ignoreDeletes: Ignoruj transakcje, które usuwają dane.
  • ignoreChanges: Przetwórz ponownie aktualizacje, jeśli pliki zostały przepisane w tabeli źródłowej z powodu operacji zmiany danych, takiej jak UPDATE, MERGE INTO, DELETE (w ramach partycji) lub OVERWRITE. Niezmienione wiersze mogą nadal być emitowane. W związku z tym odbiorcy podrzędni powinni mieć możliwość obsługi duplikatów. Usunięcia nie są propagowane dalej. ignoreChanges zawiera ignoreDeletes. W związku z tym, jeśli używasz ignoreChanges, strumień nie jest zakłócany przez usunięcia lub aktualizacje tabeli źródłowej.
  • startingVersion: Wersja współdzielonej tabeli, od której należy zacząć. Wszystkie zmiany tabeli począwszy od tej wersji (włącznie) są odczytywane przez źródło przesyłania strumieniowego.
  • Znacznik czasu, od którego zaczynamy. Wszystkie zmiany tabeli zatwierdzone w lub po określonym znaczniku czasu (włącznie) są odczytywane przez źródło przesyłania strumieniowego. Przykład: "2023-01-01 00:00:00.0".
  • maxFilesPerTrigger: Liczba nowych plików, które należy rozważyć w każdej mikroserii.
  • maxBytesPerTrigger: Ilość danych przetwarzanych w każdej mikro-partii. Ta opcja ustawia „miękki maks”, co oznacza, że partia przetwarza mniej więcej tę ilość danych i może przetworzyć więcej niż limit, aby przesunąć zapytanie strumieniowe do przodu w przypadkach, gdy najmniejsza jednostka wejściowa jest większa niż ten limit.
  • readChangeFeed: Strumień odczytuje kanał danych zmiany wspólnej tabeli.

Nieobsługiwane opcje:

  • Trigger.availableNow

Przykładowe zapytania strukturalnego przesyłania strumieniowego

Skala
spark.readStream.format("deltaSharing")
.option("startingVersion", 0)
.option("ignoreChanges", true)
.option("maxFilesPerTrigger", 10)
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")
Python
spark.readStream.format("deltaSharing")\
.option("startingVersion", 0)\
.option("ignoreDeletes", true)\
.option("maxBytesPerTrigger", 10000)\
.load("<profile-path>#<share-name>.<schema-name>.<table-name>")

Zobacz także Structured Streaming concepts.

Odczyt tabel z włączonymi wektorami usuwania lub mapowaniem kolumn

Ważne

Ta funkcja jest w Public Preview.

Wektory usuwania są funkcją optymalizacji przechowywania, którą Twój dostawca może włączyć w współdzielonych tabelach Delta. Zobacz Czym są wektory usuwania?.

Azure Databricks obsługuje również mapowanie kolumn dla tabel Delta. Zobacz Zmienianie nazw i usuwanie kolumn z mapowaniem kolumn Delta Lake.

Jeśli dostawca udostępnił tabelę z włączonymi wektorami usuwania lub mapowaniem kolumn, możesz odczytać tabelę za pomocą obliczeń działających w wersji delta-sharing-spark 3.1 lub wyższej. Jeśli używasz klastrów Databricks, możesz wykonywać odczyty wsadowe za pomocą klastra działającego na Databricks Runtime 14.1 lub nowszym. Zapytania typu CDF i przesyłania strumieniowego wymagają Databricks Runtime 14.2 lub nowszego.

Możesz wykonywać zapytania zbiorcze bez zmian, ponieważ mogą one automatycznie rozwiązywać responseFormat na podstawie funkcji tabeli udostępnionej tabeli.

Aby odczytać kanał danych zmian (CDF) lub wykonać zapytania strumieniowe dotyczące współdzielonych tabel z włączonymi wektorami usunięć lub mapowaniem kolumn, musisz ustawić dodatkową opcję responseFormat=delta.

Poniższe przykłady pokazują zapytania wsadowe, CDF i strumieniowe.

import org.apache.spark.sql.SparkSession

val spark = SparkSession
        .builder()
        .appName("...")
        .master("...")
        .config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension")
        .config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog")
        .getOrCreate()

val tablePath = "<profile-file-path>#<share-name>.<schema-name>.<table-name>"

// Batch query
spark.read.format("deltaSharing").load(tablePath)

// CDF query
spark.read.format("deltaSharing")
  .option("readChangeFeed", "true")
  .option("responseFormat", "delta")
  .option("startingVersion", 1)
  .load(tablePath)

// Streaming query
spark.readStream.format("deltaSharing").option("responseFormat", "delta").load(tablePath)

Pandas: Odczytywać udostępnione dane

Wykonaj następujące kroki, aby uzyskać dostęp do udostępnionych danych w wersji pandas 0.25.3 lub nowszej.

Instrukcje te zakładają, że masz dostęp do pliku z danymi uwierzytelniającymi, który został udostępniony przez dostawcę danych. Zobacz Uzyskaj dostęp w modelu otwartego udostępniania.

Notatka

Jeśli używasz pandas w obszarze roboczym usługi Azure Databricks, który ma włączony Unity Catalog, i użyto UI dostawcy importu do zaimportowania dostawcy i udostępnienia, instrukcje w tej sekcji nie dotyczą Ciebie. Można uzyskać dostęp do tabel udostępnionych tak samo jak do każdej innej tabeli zarejestrowanej w katalogu Unity. Nie trzeba instalować łącznika delta-sharing Python ani podać ścieżkę do pliku poświadczeń. Zobacz Azure Databricks: Read shared data using open sharing connectors.

Zainstaluj łącznik Delta Sharing dla Pythona

Aby uzyskać dostęp do metadanych związanych z udostępnionymi danymi, takich jak lista tabel udostępnionych Tobie, musisz zainstalować łącznik delta-sharing dla Pythona. Aby uzyskać informacje na temat ograniczeń łącznika języka Python, zobacz Ograniczenia łącznika języka Python Delta Sharing.

pip install delta-sharing

Wyświetlanie listy udostępnionych tabel przy użyciu pandas

Aby wyświetlić listę tabel w udziale, uruchom następujące polecenie, zastępując <profile-path>/config.share lokalizacją pliku uwierzytelniającego.

import delta_sharing

client = delta_sharing.SharingClient(f"<profile-path>/config.share")

client.list_all_tables()

Jeśli dane wyjściowe są puste lub nie zawierają oczekiwanych tabel, skontaktuj się z dostawcą danych.

Uzyskiwanie dostępu do danych udostępnionych przy użyciu pandas

Aby uzyskać dostęp do udostępnionych danych w pandas języku Python, uruchom następujące polecenie, zastępując zmienne w następujący sposób:

  • <profile-path>: lokalizacja pliku z poświadczeniami.
  • <share-name>: wartość share= dla tabeli.
  • <schema-name>: wartość schema= dla tabeli.
  • <table-name>: wartość name= dla tabeli.
import delta_sharing
delta_sharing.load_as_pandas(f"<profile-path>#<share-name>.<schema-name>.<table-name>")

Uzyskiwanie dostępu do udostępnionego źródła danych zmian przy użyciu polecenia pandas

Aby uzyskać dostęp do zestawienia danych zmian dla udostępnionej tabeli w pandas języku Python, uruchom następujące polecenie, zastępując zmienne w następujący sposób. Kanał danych dotyczący zmian może być niedostępny, w zależności od tego, czy dostawca danych udostępnił kanał danych dotyczący zmian dla tabeli.

  • <starting-version>: opcjonalny. Początkowa wersja zapytania, włącznie.
  • <ending-version>: opcjonalny. Końcowa wersja zapytania, włącznie.
  • <starting-timestamp>: opcjonalny. Znacznik czasu rozpoczęcia zapytania. To jest przekształcone na wersję stworzoną większą lub równą temu znacznikowi czasu.
  • <ending-timestamp>: opcjonalny. Końcowy znacznik czasu zapytania. Jest to wersja konwertowana na wersję utworzoną wcześniej lub równą temu znacznikowi czasu.
import delta_sharing
delta_sharing.load_table_changes_as_pandas(
  f"<profile-path>#<share-name>.<schema-name>.<table-name>",
  starting_version=<starting-version>,
  ending_version=<ending-version>)

delta_sharing.load_table_changes_as_pandas(
  f"<profile-path>#<share-name>.<schema-name>.<table-name>",
  starting_timestamp=<starting-timestamp>,
  ending_timestamp=<ending-timestamp>)

Jeśli dane wyjściowe są puste lub nie zawierają oczekiwanych danych, skontaktuj się z dostawcą danych.

Power BI: Odczytaj udostępnione dane

Konektor Power BI Delta Sharing pozwala odkrywać, analizować i wizualizować zestawy danych udostępnione za pomocą otwartego protokołu Delta Sharing.

Wymagania

Połącz się z Databricks

Aby połączyć się z Azure Databricks za pomocą konektora Delta Sharing, wykonaj następujące kroki:

  1. Otwórz plik z poświadczeniami współdzielonymi za pomocą edytora tekstu, aby uzyskać adres URL punktu końcowego i token.
  2. Otwórz Power BI Desktop.
  3. W menu Get Data wyszukaj Delta Sharing.
  4. Wybierz złącze i kliknij Połącz.
  5. Wprowadź URL punktu końcowego, który skopiowałeś z pliku z poświadczeniami, do pola URL serwera Delta Sharing.
  6. Opcjonalnie, na karcie Opcje zaawansowane, ustaw Limit wierszy jako maksymalną liczbę wierszy, które możesz pobrać. To jest domyślnie ustawione na 1 milion wierszy.
  7. Kliknij przycisk OK.
  8. Aby przeprowadzić autoryzację, skopiuj token, który otrzymałeś z pliku z danymi uwierzytelniającymi, do sekcji Token Bearer.
  9. Kliknij Połącz.

Ograniczenia łącznika Delta Sharing w Power BI

Konektor Power BI Delta Sharing ma następujące ograniczenia:

  • Dane ładowane przez konektor muszą mieścić się w pamięci twojej maszyny. Aby zarządzać tym wymaganiem, łącznik ogranicza liczbę importowanych wierszy do limitu wierszy ustawionego na karcie Opcje zaawansowane w Power BI Desktop.

Tableau: Odczytaj dane współdzielone

Złącze Tableau Delta Sharing pozwala na odkrywanie, analizowanie i wizualizację zestawów danych, które są z Tobą udostępniane poprzez otwarty protokół Delta Sharing.

Wymagania

Połącz się z Azure Databricks

Aby połączyć się z Azure Databricks za pomocą konektora Delta Sharing, wykonaj następujące kroki:

  1. Przejdź do Tableau Exchange, postępuj zgodnie z instrukcjami, aby pobrać Delta Sharing Connector i umieść go w odpowiednim folderze na pulpicie.
  2. Otwórz Tableau Desktop.
  3. Na stronie Złącza wyszukaj „Delta Sharing by Databricks”.
  4. ** Wybierz Prześlij plik Share, i wybierz plik uwierzytelniający udostępniony przez dostawcę.
  5. Kliknij pozycję Pobierz dane.
  6. W Eksploratorze danych wybierz tabelę.
  7. Opcjonalnie dodaj filtry SQL lub ograniczenia wierszy.
  8. Kliknij Get Table Data.

Ograniczenia

Złącze Tableau Delta Sharing ma następujące ograniczenia:

  • Dane ładowane przez konektor muszą mieścić się w pamięci twojej maszyny. Aby zarządzać tym wymaganiem, łącznik ogranicza liczbę importowanych wierszy do limitu wierszy, który ustawiłeś w Tableau.
  • Wszystkie kolumny są zwracane jako typ String.
  • Filtr SQL działa tylko wtedy, gdy serwer Delta Sharing obsługuje predicateHint.
  • Wektory usuwania nie są obsługiwane.
  • Mapowanie kolumn nie jest obsługiwane.

Klienci Iceberg: odczytywanie współdzielonych tabel Delta

Ważne

Ta funkcja jest w Public Preview.

Użyj zewnętrznych klientów Iceberg, takich jak Snowflake, Trino, Flink i Spark, aby odczytywać udostępnione zasoby danych z dostępem bez kopii przy użyciu interfejsu API katalogu REST Apache Iceberg.

Jeśli używasz usługi Snowflake, możesz użyć pliku poświadczeń do wygenerowania polecenia SQL, które umożliwia odczytywanie udostępnionych tabel delty.

Uzyskiwanie poświadczeń połączenia

Zanim uzyskasz dostęp do udostępnionych zasobów danych za pomocą zewnętrznych klientów Iceberg, zbierz następujące poświadczenia:

  • Punkt końcowy katalogu REST Iceberg
  • Prawidłowy token elementu nośnego
  • Nazwa udziału
  • (Opcjonalnie) Przestrzeń nazw lub nazwa schematu
  • (Opcjonalnie) Nazwa tabeli

Punkt końcowy REST i token elementu nośnego znajdują się w pliku poświadczeń dostarczonym przez dostawcę danych. Nazwy udziału, przestrzeni nazw i nazwy tabeli można odnaleźć programowo przy użyciu interfejsów API udostępniania różnicowego.

W poniższych przykładach pokazano, jak uzyskać dodatkowe poświadczenia. Wprowadź punkt końcowy, punkt końcowy Iceberg i token typu Bearer z pliku poświadczeń, w razie potrzeby.

// List shares
curl -X GET "<endpoint>/shares" \
   -H "Authorization: Bearer <bearerToken>"

// List namespaces
curl -X GET "<icebergEndpoint>/v1/shares/<share>/namespaces" \
   -H "Authorization: Bearer <bearerToken>"

// List tables
curl -X GET "<icebergEndpoint>/v1/shares/<share>/namespaces/<namespace>/tables" \
   -H "Authorization: Bearer <bearerToken>"

Notatka

Ta metoda zawsze pobiera najbardziej aktualną listę zasobów. Wymaga to jednak dostępu do Internetu i może być trudniejsze do zintegrowania w środowiskach bez kodu.

Konfiguracja katalogu Iceberg

Po uzyskaniu niezbędnych poświadczeń połączenia skonfiguruj klienta tak, aby używał punktów końcowych katalogu REST Iceberg do tworzenia tabel i wykonywania względem nich zapytań.

  1. Dla każdego udziału utwórz integrację katalogową.

    USE ROLE ACCOUNTADMIN;
    
    CREATE OR REPLACE CATALOG INTEGRATION <CATALOG_PLACEHOLDER>
    CATALOG_SOURCE = ICEBERG_REST
    TABLE_FORMAT = ICEBERG
    REST_CONFIG = (
       CATALOG_URI = '<icebergEndpoint>',
       WAREHOUSE = '<share_name>',
       ACCESS_DELEGATION_MODE = VENDED_CREDENTIALS
    )
    REST_AUTHENTICATION = (
       TYPE = BEARER,
       BEARER_TOKEN = '<bearerToken>'
    )
    ENABLED = TRUE;
    
  2. Opcjonalnie dodaj, REFRESH_INTERVAL_SECONDS aby zachować aktualność metadanych. Ustaw wartość na podstawie częstotliwości aktualizacji katalogu.

    REFRESH_INTERVAL_SECONDS = 30
    
  3. Po skonfigurowaniu wykazu utwórz bazę danych z katalogu. Spowoduje to automatyczne utworzenie wszystkich schematów i tabel w tym wykazie.

    CREATE DATABASE <DATABASE_PLACEHOLDER>
    LINKED_CATALOG = (
       CATALOG = <CATALOG_PLACEHOLDER>
    );
    
  4. Aby potwierdzić, że udostępnianie zakończyło się pomyślnie, wykonaj zapytanie z tabeli w bazie danych. Powinny zostać wyświetlone dane udostępnione z usługi Azure Databricks.

Jeśli wynik jest pusty lub wystąpi błąd, wykonaj następujące typowe kroki rozwiązywania problemów:

  • Dokładnie sprawdź uprawnienia, stan generowania migawki i poświadczenia REST.
  • Skontaktuj się z dostawcą danych.
  • Zapoznaj się z dokumentacją specyficzną dla klienta Iceberg.

Przykład: Odczytywanie udostępnionych tabel delty w usłudze Snowflake przy użyciu polecenia SQL

Aby odczytać udostępnione zasoby danych w usłudze Snowflake, przekaż pobrany plik poświadczeń i wygeneruj niezbędne polecenie SQL:

  1. W linku aktywacji funkcji Delta Sharing kliknij ikonę Snowflake.

  2. Na stronie integracji rozwiązania Snowflake przekaż plik poświadczeń otrzymany od dostawcy danych.

    Przekazywanie pliku poświadczeń w aplikacji Snowflake

  3. Po załadowaniu poświadczeń wybierz udział, do którego chcesz uzyskać dostęp w Snowflake.

  4. Kliknij pozycję Generuj sql po wybraniu żądanych zasobów.

    Generowanie polecenia SQL dla rozwiązania Snowflake

  5. Skopiuj i wklej wygenerowany język SQL do arkusza snowflake. Zastąp CATALOG_PLACEHOLDER ciąg nazwą katalogu, którego chcesz użyć, i DATABASE_PLACEHOLDER nazwą bazy danych, której chcesz użyć.

Ograniczenia płatka śniegu

Nawiązywanie połączenia z katalogiem REST Góry lodowej w aplikacji Snowflake ma następujące ograniczenia:

  • Plik metadanych nie jest automatycznie aktualizowany przy użyciu najnowszej migawki. Należy polegać na automatycznym odświeżaniu lub ręcznym odświeżaniu.
  • R2 nie jest obsługiwany.
  • Obowiązują wszystkie ograniczenia klienta Iceberg.

Ograniczenia klienta Iceberg

Podczas wykonywania zapytań dotyczących danych Delta Sharing z klientów Iceberg obowiązują następujące ograniczenia:

  • W przypadku wyświetlania listy tabel w przestrzeni nazw, jeśli przestrzeń nazw zawiera więcej niż 100 widoków udostępnionych, odpowiedź jest ograniczona do pierwszych 100 widoków.

Ograniczenia łącznika usługi Delta Sharing w języku Python

Te ograniczenia dotyczą łącznika Python Delta Sharing:

  • Złącze Python dla Delta Sharing w wersji 1.1.0 lub nowszej obsługuje zapytania migawek w tabelach z mapowaniem kolumn, ale zapytania CDF w tabelach z mapowaniem kolumn nie są obsługiwane.
  • Łącznik Delta Sharing dla języka Python kończy się niepowodzeniem przy zapytaniach CDF z use_delta_format=True, jeśli schemat został zmieniony w trakcie zakresu wersji, na który odnosi się zapytanie.

Złóż wniosek o nowe poświadczenie

Jeśli Twój URL aktywacji poświadczeń lub pobrane poświadczenia zostaną zgubione, uszkodzone lub naruszone, lub jeśli Twoje poświadczenia wygasną, a Twój dostawca nie prześle Ci nowych, skontaktuj się z dostawcą, aby poprosić o nowe poświadczenia.