Łącznik spark dla usługi Microsoft Fabric Synapse Data Warehouse
Łącznik Spark dla usługi Synapse Data Warehouse umożliwia deweloperom platformy Spark i analitykom danych uzyskiwanie dostępu do danych z magazynu i punktu końcowego analizy SQL w usłudze Lakehouse oraz pracę z danymi. Łącznik oferuje następujące możliwości:
- Możesz pracować z danymi z magazynu lub punktu końcowego analizy SQL w tym samym obszarze roboczym lub w wielu obszarach roboczych.
- Punkt końcowy analizy SQL usługi Lakehouse jest automatycznie wykrywany na podstawie kontekstu obszaru roboczego.
- Łącznik ma uproszczony interfejs API platformy Spark, abstrahuje podstawową złożoność i działa przy użyciu tylko jednego wiersza kodu.
- Podczas uzyskiwania dostępu do tabeli lub widoku łącznik podtrzymuje modele zabezpieczeń zdefiniowane na poziomie aparatu SQL. Te modele obejmują zabezpieczenia na poziomie obiektu (OLS), zabezpieczenia na poziomie wiersza (RLS) i zabezpieczenia na poziomie kolumny (CLS).
- Łącznik jest wstępnie zainstalowany w środowisku uruchomieniowym sieci szkieletowej, co eliminuje konieczność oddzielnej instalacji.
Uwaga
Łącznik jest obecnie w wersji zapoznawczej. Aby uzyskać więcej informacji, zobacz bieżące ograniczenia w dalszej części tego artykułu.
Uwierzytelnianie
Uwierzytelnianie entra firmy Microsoft to zintegrowane podejście do uwierzytelniania. Użytkownicy logują się do obszaru roboczego usługi Microsoft Fabric, a ich poświadczenia są automatycznie przekazywane do aparatu SQL na potrzeby uwierzytelniania i autoryzacji. Poświadczenia są automatycznie mapowane, a użytkownicy nie muszą udostępniać określonych opcji konfiguracji.
Uprawnienia
Aby nawiązać połączenie z aparatem SQL, użytkownicy muszą mieć co najmniej uprawnienie odczyt (podobne do uprawnień CONNECT w programie SQL Server) w magazynie lub punkcie końcowym analizy SQL (poziom elementu). Użytkownicy potrzebują również szczegółowych uprawnień na poziomie obiektu, aby odczytywać dane z określonych tabel lub widoków. Aby dowiedzieć się więcej, zobacz Zabezpieczenia magazynowania danych w usłudze Microsoft Fabric.
Szablony kodu i przykłady
Używanie sygnatury metody
Następujące polecenie przedstawia sygnaturę synapsesql
metody dla żądania odczytu. Trzyczęściowy tableName
argument jest wymagany do uzyskiwania dostępu do tabel lub widoków z magazynu i punktu końcowego analizy SQL typu lakehouse. Zaktualizuj argument przy użyciu następujących nazw w zależności od scenariusza:
- Część 1. Nazwa magazynu lub jeziora.
- Część 2. Nazwa schematu.
- Część 3. Nazwa tabeli lub widoku.
synapsesql(tableName:String="<Part 1.Part 2.Part 3>") => org.apache.spark.sql.DataFrame
Odczytywanie danych w tym samym obszarze roboczym
Ważne
Uruchom te instrukcje importowania na początku notesu lub przed rozpoczęciem korzystania z łącznika:
import com.microsoft.spark.fabric.tds.implicits.read.FabricSparkTDSImplicits._
import org.apache.spark.sql.functions._
Poniższy kod to przykład odczytu danych z tabeli lub widoku w ramce danych platformy Spark:
val df = spark.read.synapsesql("<warehouse/lakehouse name>.<schema name>.<table or view name>")
Poniższy kod to przykład odczytu danych z tabeli lub widoku w ramce danych platformy Spark z limitem liczby wierszy 10:
val df = spark.read.synapsesql("<warehouse/lakehouse name>.<schema name>.<table or view name>").limit(10)
Poniższy kod to przykład odczytu danych z tabeli lub widoku w ramce danych platformy Spark po zastosowaniu filtru:
val df = spark.read.synapsesql("<warehouse/lakehouse name>.<schema name>.<table or view name>").filter("column name == 'value'")
Poniższy kod to przykład odczytu danych z tabeli lub widoku w ramce danych platformy Spark tylko dla wybranych kolumn:
val df = spark.read.synapsesql("<warehouse/lakehouse name>.<schema name>.<table or view name>").select("column A", "Column B")
Odczytywanie danych między obszarami roboczymi
Aby uzyskać dostęp do danych z magazynu lub magazynu lakehouse w różnych obszarach roboczych i odczytywać je, możesz określić identyfikator obszaru roboczego, w którym istnieje magazyn lub magazyn lakehouse. Ten wiersz zawiera przykład odczytywania danych z tabeli lub widoku w ramce danych Spark z magazynu lub lakehouse z określonego identyfikatora obszaru roboczego:
import com.microsoft.spark.fabric.Constants
val df = spark.read.option(Constants.WorkspaceId, "<workspace id>").synapsesql("<warehouse/lakehouse name>.<schema name>.<table or view name>")
Uwaga
Po uruchomieniu notesu łącznik domyślnie wyszukuje określony magazyn lub magazyn typu lakehouse w obszarze roboczym usługi Lakehouse dołączonym do notesu. Aby odwołać się do magazynu lub magazynu lakehouse z innego obszaru roboczego, określ identyfikator obszaru roboczego.
Używanie zmaterializowanych danych w komórkach i językach
Interfejs API ramki danych platformy createOrReplaceTempView
Spark umożliwia dostęp do danych pobranych w jednej komórce lub w języku Scala (po zarejestrowaniu go jako widoku tymczasowego) przez inną komórkę w usłudze Spark SQL lub PySpark. Te wiersze kodu stanowią przykład odczytywania danych z tabeli lub widoku w ramce danych Platformy Spark w języku Scala i używania tych danych w usługach Spark SQL i PySpark:
%%spark
spark.read.synapsesql("<warehouse/lakehouse name>.<schema name>.<table or view name>").createOrReplaceTempView("<Temporary View Name>")
Teraz zmień preferencję języka w notesie lub na poziomie komórki na Spark SQL i pobierz dane z zarejestrowanego widoku tymczasowego:
%%sql
SELECT * FROM <Temporary View Name> LIMIT 100
Następnie zmień preferencję języka w notesie lub na poziomie komórki na PySpark (Python) i pobierz dane z zarejestrowanego widoku tymczasowego:
%%pyspark
df = spark.read.table("<Temporary View Name>")
Tworzenie tabeli lakehouse na podstawie danych z magazynu
Te wiersze kodu stanowią przykład odczytu danych z tabeli lub widoku w ramce danych platformy Spark w języku Scala i używają ich do tworzenia tabeli typu lakehouse:
val df = spark.read.synapsesql("<warehouse/lakehouse name>.<schema name>.<table or view name>")
df.write.format("delta").saveAsTable("<Lakehouse table name>")
Rozwiązywanie problemów
Po zakończeniu fragment odpowiedzi odczytu jest wyświetlany w danych wyjściowych komórki. Błąd w bieżącej komórce anuluje również kolejne wykonania komórek notesu. Szczegółowe informacje o błędzie są dostępne w dziennikach aplikacji platformy Spark.
Bieżące ograniczenia
Obecnie łącznik:
- Obsługuje pobieranie danych z magazynów sieci szkieletowej i punktów końcowych analizy SQL elementów typu lakehouse.
- Obsługuje tylko język Scala.
- Nie obsługuje zapytań niestandardowych ani przekazywania zapytań.
- Nie implementuje optymalizacji wypychanej.
- Zachowuje sygnaturę użycia, taką jak ta dostarczana z platformą Apache Spark dla usługi Azure Synapse Analytics w celu zapewnienia spójności. Jednak nie jest to zgodne z poprzednimi wersjami, aby nawiązać połączenie i pracować z dedykowaną pulą SQL w usłudze Azure Synapse Analytics.
Powiązana zawartość
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla