Funkcje języka Transact-SQL obsługiwane w języku Azure Synapse SQL

Azure Synapse SQL to usługa analitycy danych big data, która umożliwia wykonywanie zapytań i analizowanie danych przy użyciu języka T-SQL. Na potrzeby analizy danych można użyć standardowego dialektu zgodnego ze standardem ANSI języka SQL używanego w programach SQL Server i Azure SQL Database.

Język Transact-SQL jest używany w bezserwerowej puli SQL, a dedykowany model może odwoływać się do różnych obiektów i ma pewne różnice w zestawie obsługiwanych funkcji. Na tej stronie można znaleźć ogólne różnice języka Transact-SQL między modelami zużycia usługi Synapse SQL.

Obiekty bazy danych

Modele użycia w usłudze Synapse SQL umożliwiają korzystanie z różnych obiektów bazy danych. Porównanie obsługiwanych typów obiektów przedstawiono w poniższej tabeli:

Objekt Dedykowane Praca bezserwerowa
Tabele Tak Nie, tabele w bazie danych nie są obsługiwane. Bezserwerowa pula SQL może wysyłać zapytania tylko do tabel zewnętrznych, które odwołują się do danych przechowywanych w usłudze Azure Data Lake Storage lub Dataverse.
Widoki Tak. Widoki mogą używać elementów języka zapytań dostępnych w dedykowanym modelu. Tak, można tworzyć widoki w tabelach zewnętrznych, zapytania z funkcją OPENROWSET i innymi widokami. Widoki mogą używać elementów języka zapytań dostępnych w modelu bezserwerowym.
Schematów Tak Tak, schematy są obsługiwane. Użyj schematów, aby odizolować różne dzierżawy i umieścić ich tabele na schematy.
Tabele tymczasowe Tak Tabele tymczasowe mogą być używane tylko do przechowywania niektórych informacji z widoków systemowych, literałów lub innych tabel tymczasowych. Aktualizacja/USUWANIE w tabeli tymczasowej jest również obsługiwana. Tabele tymczasowe można łączyć z widokami systemowymi. Nie można wybrać danych z tabeli zewnętrznej, aby wstawić je do tabeli tymczasowej lub dołączyć tabelę tymczasową z tabelą zewnętrzną — te operacje nie powiedzą się, ponieważ dane zewnętrzne i tabele tymczasowe nie mogą być mieszane w tym samym zapytaniu.
Procedury zdefiniowane przez użytkownika Tak Tak, procedury składowane można umieszczać w dowolnych bazach danych użytkowników (a nie master w bazie danych). Procedury mogą po prostu odczytywać dane zewnętrzne i używać elementów języka zapytań dostępnych w puli bezserwerowej.
Funkcje zdefiniowane przez użytkownika Tak Tak, obsługiwane są tylko wbudowane funkcje z wartością tabeli. Funkcje zdefiniowane przez użytkownika skalarne nie są obsługiwane.
Wyzwalacze Nie. Nie, bezserwerowe pule SQL nie zezwalają na zmianę danych, więc wyzwalacze nie mogą reagować na zmiany danych.
Tabele zewnętrzne Tak. Zobacz obsługiwane formaty danych. Tak, tabele zewnętrzne są dostępne i mogą służyć do odczytywania danych z usługi Azure Data Lake Storage lub Dataverse. Zobacz obsługiwane formaty danych.
zapytania Buforowanie Tak, wiele formularzy (buforowanie oparte na dyskach SSD, buforowanie w pamięci, buforowanie zestawów wyników). Ponadto zmaterializowany widok jest obsługiwany. Nie, buforowane są tylko statystyki plików.
Buforowanie zestawu wyników Tak Nie, wyniki zapytania nie są buforowane. Buforowane są tylko statystyki plików.
Zmaterializowane widoki Tak Nie, zmaterializowane widoki nie są obsługiwane w bezserwerowych pulach SQL.
Zmienne tabeli Nie, użyj tabel tymczasowych Nie, zmienne tabeli nie są obsługiwane.
Dystrybucja tabel Tak Nie, dystrybucje tabel nie są obsługiwane.
Indeksy tabel Tak Nie, indeksy nie są obsługiwane.
Partycjonowanie tabel Tak. Tabele zewnętrzne nie obsługują partycjonowania. Pliki można partycjonować przy użyciu struktury folderów Hive-partition i tworzyć tabele partycjonowane na platformie Spark. Partycjonowanie platformy Spark zostanie zsynchronizowane z pulą bezserwerową. Jeśli nie używasz platformy Spark, możesz partycjonować pliki w strukturze folderów i tworzyć widoki partycjonowane w strukturze partycji folderów, ale tabele zewnętrzne nie mogą być tworzone w folderach podzielonych na partycje.
Statystyki Tak Tak, statystyki są tworzone w plikach zewnętrznych.
Zarządzanie obciążeniami, klasy zasobów i kontrola współbieżności Tak, zobacz Zarządzanie obciążeniami, klasy zasobów i kontrola współbieżności. Nie, nie można zarządzać zasobami przypisanymi do zapytań. Bezserwerowa pula SQL automatycznie zarządza zasobami.
Kontrola kosztów Tak, przy użyciu akcji skalowania w górę i w dół. Tak, można ograniczyć dzienne, tygodniowe lub miesięczne użycie puli bezserwerowej przy użyciu witryny Azure Portal lub procedury T-SQL.

Język zapytań

Języki zapytań używane w usłudze Synapse SQL mogą mieć różne obsługiwane funkcje w zależności od modelu zużycia. W poniższej tabeli przedstawiono najważniejsze różnice języka zapytań w dialektach Języka Transact-SQL:

Oświadczenie Dedykowane Praca bezserwerowa
Instrukcja SELECT Tak. SELECTInstrukcja jest obsługiwana, ale niektóre klauzule zapytania Języka Transact-SQL, takie jak FOR XML/FOR JSON, MATCH, OFFSET/FETCH nie są obsługiwane. Tak, instrukcja jest obsługiwana, ale niektóre klauzule zapytań Języka Transact-SQL, SELECT takie jak FOR XML, MATCH, PREDICT, GROUPNG SETS i wskazówki dotyczące zapytania nie są obsługiwane.
INSTRUKCJA INSERT Tak L.p. Przekazywanie nowych danych do usługi Data Lake przy użyciu platformy Spark lub innych narzędzi. Usługa Azure Cosmos DB z magazynem analitycznym służy do obsługi obciążeń transakcyjnych. Za pomocą instrukcji CETAS można utworzyć tabelę zewnętrzną i wstawić dane.
UPDATE, instrukcja Tak Nie, zaktualizuj dane Parquet/CSV przy użyciu platformy Spark, a zmiany będą automatycznie dostępne w bezserwerowej puli. Usługa Azure Cosmos DB z magazynem analitycznym służy do obsługi obciążeń transakcyjnych.
DELETE, instrukcja Tak Nie, usuń dane Parquet/CSV przy użyciu platformy Spark, a zmiany będą automatycznie dostępne w bezserwerowej puli. Usługa Azure Cosmos DB z magazynem analitycznym służy do obsługi obciążeń transakcyjnych.
INSTRUKCJA MERGE Tak (wersja zapoznawcza) Nie, scal dane Parquet/CSV przy użyciu platformy Spark i zmiany będą automatycznie dostępne w bezserwerowej puli.
CTAS, instrukcja Tak Nie, instrukcja CREATE TABLE AS SELECT nie jest obsługiwana w bezserwerowej puli SQL.
Instrukcja CETAS Tak, możesz wykonać początkowe ładowanie do tabeli zewnętrznej przy użyciu instrukcji CETAS. Tak, możesz wykonać początkowe ładowanie do tabeli zewnętrznej przy użyciu instrukcji CETAS. Funkcja CETAS obsługuje formaty danych wyjściowych Parquet i CSV.
Transakcje Tak Tak, transakcje mają zastosowanie tylko w obiektach metadanych.
Etykiety Tak Nie, etykiety nie są obsługiwane w bezserwerowych pulach SQL.
Ładowanie danych Tak. Preferowane narzędzie to instrukcja COPY , ale system obsługuje ładowanie zbiorcze (BCP) i CETAS na potrzeby ładowania danych. Nie, nie można załadować danych do bezserwerowej puli SQL, ponieważ dane są przechowywane w magazynie zewnętrznym. Dane można początkowo załadować do tabeli zewnętrznej przy użyciu instrukcji CETAS.
Eksport danych Tak. Korzystanie z instrukcji CETAS. Tak. Dane można eksportować z magazynu zewnętrznego (Azure Data Lake, Dataverse, Azure Cosmos DB) do usługi Azure Data Lake przy użyciu instrukcji CETAS.
Typy Tak, wszystkie typy języka Transact-SQL z wyjątkiem kursora, hierarchyidu, ntextu, tekstu i obrazu, rowversion, typy przestrzenne, sql_variant i xml Tak, obsługiwane są wszystkie typy języka Transact-SQL, z wyjątkiem kursora, hierarchyidu, ntextu, tekstu i obrazu, rowversion, typy przestrzenne, sql_variant, xml i typ tabeli. Zobacz, jak mapować typy kolumn Parquet na typy SQL tutaj.
Zapytania obejmujące wiele baz danych Nie. Tak, zapytania obejmujące wiele baz danych i odwołania do 3-częściowej nazwy są obsługiwane, w tym instrukcji USE . Zapytania mogą odwoływać się do bezserwerowych baz danych SQL lub baz danych Lake w tym samym obszarze roboczym. Zapytania między obszarami roboczymi nie są obsługiwane.
Wbudowane/systemowe funkcje (analiza) Tak, wszystkie funkcje analityczne języka Transact-SQL, konwersji, daty i godziny, logiczne, matematyczne, z wyjątkiem FUNKCJI SELECT i PARSE Tak, obsługiwane są wszystkie funkcje analityczne języka Transact-SQL, konwersji, daty i godziny, logiczne i matematyczne.
Wbudowane/systemowe funkcje (ciąg) Tak. Wszystkie funkcje transact-SQL String, JSON i Collation, z wyjątkiem STRING_ESCAPE i TRANSLATE Tak. Obsługiwane są wszystkie funkcje transact-SQL String, JSON i Collation.
Wbudowane/systemowe funkcje (kryptograficzne) Niektóre HASHBYTES jest jedyną obsługiwaną funkcją kryptograficzną w bezserwerowych pulach SQL.
Wbudowane/systemowe funkcje wartości tabeli Tak, funkcje zestawu wierszy Języka Transact-SQL, z wyjątkiem OPENXML, OPENDATASOURCE, OPENQUERY i OPENROWSET Tak, wszystkie funkcje zestawu wierszy języka Transact-SQL są obsługiwane, z wyjątkiem OPENXML, OPENDATASOURCE i OPENQUERY.
Wbudowane/systemowe agregacje Wbudowane agregacje języka Transact-SQL, z wyjątkiem CHECKSUM_AGG i GROUPING_ID Tak, obsługiwane są wszystkie wbudowane agregacje języka Transact-SQL.
Operatory Tak, wszystkie operatory języka Transact-SQL z wyjątkiem !> i !< Tak, obsługiwane są wszystkie operatory języka Transact-SQL.
Sterowanie przepływem Tak. Wszystkie instrukcje sterowania transact-SQL z wyjątkiem CONTINUE, GOTO, RETURN, USE i WAITFOR Tak. Obsługiwane są wszystkie instrukcje transact-SQL Control-of-flow. Zapytanie SELECT w WHILE (...) warunku nie jest obsługiwane.
Instrukcje DDL (CREATE, ALTER, DROP) Tak. Wszystkie instrukcje języka Transact-SQL DDL dotyczące obsługiwanych typów obiektów Tak, obsługiwane są wszystkie instrukcje języka Transact-SQL DDL dotyczące obsługiwanych typów obiektów.

Zabezpieczenia

Pule sql usługi Synapse umożliwiają korzystanie z wbudowanych funkcji zabezpieczeń w celu zabezpieczenia danych i kontroli dostępu. W poniższej tabeli porównaliśmy różnice wysokiego poziomu między modelami użycia usługi Synapse SQL.

Funkcja Dedykowane Praca bezserwerowa
Dane logowania Nie dotyczy (tylko zawarte użytkownicy są obsługiwani w bazach danych) Tak, obsługiwane są identyfikatory Entra firmy Microsoft i identyfikatory logowania SQL na poziomie serwera.
Użytkownicy Nie dotyczy (tylko zawarte użytkownicy są obsługiwani w bazach danych) Tak, użytkownicy bazy danych są obsługiwani.
Użytkownicy zawarti Tak. Uwaga: tylko jeden użytkownik usługi Microsoft Entra może być nieograniczonym administratorem Nie, zawarte użytkownicy nie są obsługiwani.
Uwierzytelnianie nazwy użytkownika/hasła SQL Tak Tak, użytkownicy mogą uzyskiwać dostęp do bezserwerowej puli SQL przy użyciu swoich nazw użytkowników i haseł.
Uwierzytelnianie Microsoft Entra Tak, użytkownicy firmy Microsoft Entra Tak, identyfikatory logowania firmy Microsoft Entra i użytkownicy mogą uzyskiwać dostęp do bezserwerowych pul SQL przy użyciu tożsamości firmy Microsoft Entra.
Magazyn — uwierzytelnianie przekazywane przez firmę Microsoft Tak Tak, uwierzytelnianie przekazywane przez firmę Microsoft ma zastosowanie do logowań firmy Microsoft Entra. Tożsamość użytkownika Microsoft Entra jest przekazywana do magazynu, jeśli nie określono poświadczeń. Uwierzytelnianie przekazywane przez firmę Microsoft nie jest dostępne dla użytkowników sql.
Uwierzytelnianie tokenu sygnatury dostępu współdzielonego magazynu Nie. Tak, przy użyciu POŚWIADCZEŃ ZAKRESU BAZY DANYCH z tokenemsygnatury dostępu współdzielonego w zewnętrznym źródle danych lub poświadczeń na poziomie wystąpienia z sygnaturą dostępu współdzielonego.
Uwierzytelnianie klucza dostępu do magazynu Tak, przy użyciu POŚWIADCZEŃ O ZAKRESIE BAZY DANYCH w ZEWNĘTRZNYM ŹRÓDLE DANYCH Nie, użyj tokenu SAS zamiast klucza dostępu do magazynu.
Uwierzytelnianie tożsamości zarządzanej magazynu Tak, przy użyciu poświadczeń tożsamości usługi zarządzanej Tak, zapytanie może uzyskać dostęp do magazynu przy użyciu poświadczeń tożsamości zarządzanej obszaru roboczego.
Tożsamość aplikacji magazynu/uwierzytelnianie jednostki usługi (SPN) Tak Tak, można utworzyć poświadczenia z identyfikatorem aplikacji jednostki usługi, który będzie używany do uwierzytelniania w magazynie.
Role serwera Nie. Tak, administrator systemu, publiczny i inne role serwera są obsługiwane.
POŚWIADCZENIA NA POZIOMIE SERWERA Nie. Tak, poświadczenia na poziomie serwera są używane przez OPENROWSET funkcję, która nie używa jawnego źródła danych.
Uprawnienia — poziom serwera Nie. Tak, na przykład CONNECT ANY DATABASE i SELECT ALL USER SECURABLES umożliwia użytkownikowi odczytywanie danych z dowolnych baz danych.
Role bazy danych Tak Tak, możesz użyć db_ownerról i db_datareaderdb_ddladmin .
POŚWIADCZENIA O ZAKRESIE BAZY DANYCH Tak, używane w zewnętrznych źródłach danych. Tak, poświadczenia o zakresie bazy danych mogą być używane w zewnętrznych źródłach danych do definiowania metody uwierzytelniania magazynu.
Uprawnienia — poziom bazy danych Tak Tak, możesz przyznać, odmówić lub odwołać uprawnienia do obiektów bazy danych.
Uprawnienia — poziom schematu Tak, w tym możliwość udzielenia, odmowy i odwołania uprawnień do użytkowników/identyfikatorów logowania w schemacie Tak, możesz określić uprawnienia na poziomie schematu, w tym uprawnienia GRANT, DENY i REVOKE do użytkowników/identyfikatorów logowania w schemacie.
Uprawnienia — poziom obiektu Tak, w tym możliwość udzielenia, odmowy i odwołania uprawnień do użytkowników Tak, możesz przyznać, odmówić i odwołać uprawnienia do użytkowników/identyfikatorów logowania w obsługiwanych obiektach systemowych.
Uprawnienia — zabezpieczenia na poziomie kolumny Tak Zabezpieczenia na poziomie kolumny są obsługiwane w bezserwerowych pulach SQL dla widoków, a nie w przypadku tabel zewnętrznych. W przypadku tabel zewnętrznych można utworzyć widok logiczny na wierzchu tabeli zewnętrznej i niż zastosować zabezpieczenia na poziomie kolumny.
Zabezpieczenia na poziomie wiersza Tak Nie, nie ma wbudowanej obsługi zabezpieczeń na poziomie wiersza. Użyj widoków niestandardowych jako obejścia.
Maskowanie danych Tak Nie, wbudowane maskowanie danych nie jest obsługiwane w bezserwerowych pulach SQL. Użyj widoków JĘZYKA SQL otoki, które jawnie maskuje niektóre kolumny jako obejście.
Wbudowane/systemowe funkcje zabezpieczeń i tożsamości Niektóre funkcje i operatory zabezpieczeń języka Transact-SQL: CURRENT_USER, , SUSER_NAMESUSER_SNAMEIS_MEMBERSESSION_USEREXECUTE ASIS_ROLEMEMBERSYSTEM_USERUSERUSER_NAMEHAS_DBACCESSOPEN/CLOSE MASTER KEY Obsługiwane są niektóre funkcje i operatory zabezpieczeń języka Transact-SQL: CURRENT_USER, , IS_SRVROLEMEMBERUSER_NAMESUSER_SNAMESYSTEM_USERSUSER_NAMEUSEREXECUTE ASHAS_DBACCESSIS_MEMBERREVERTHAS_PERMS_BY_NAMEIS_ROLEMEMBERSESSION_USERSESSION_CONTEXTi . Funkcji zabezpieczeń nie można używać do wykonywania zapytań dotyczących danych zewnętrznych (przechowywanie wyniku zmiennej, która może być używana w zapytaniu).
Transparent Data Encryption (TDE) Tak Nie, funkcja Transparent Data Encryption nie jest obsługiwana.
Odnajdywanie i klasyfikacja danych Tak Nie, odnajdywanie i klasyfikacja danych nie jest obsługiwane.
Ocena luk w zabezpieczeniach Tak Nie, ocena luk w zabezpieczeniach jest niedostępna.
Advanced Threat Protection Tak Nie, usługa Advanced Threat Protection nie jest obsługiwana.
Inspekcja Tak Tak, inspekcja jest obsługiwana w bezserwerowych pulach SQL.
Reguły zapory Tak Tak, reguły zapory można ustawić w bezserwerowym punkcie końcowym SQL.
Prywatny punkt końcowy Tak Tak, prywatny punkt końcowy można ustawić w bezserwerowej puli SQL.

Dedykowana pula SQL i bezserwerowa pula SQL używają standardowego języka Transact-SQL do wykonywania zapytań dotyczących danych. Aby uzyskać szczegółowe różnice, zapoznaj się z dokumentacją języka Transact-SQL.

Funkcje platformy

Funkcja Dedykowane Praca bezserwerowa
Skalowanie Tak Bezserwerowa pula SQL jest automatycznie skalowana w zależności od obciążenia.
Wstrzymywanie/wznawianie Tak Bezserwerowa pula SQL jest automatycznie dezaktywowana, gdy nie jest używana i aktywowana w razie potrzeby. Akcja użytkownika nie jest wymagana.
Kopie zapasowe bazy danych Tak L.p. Dane są przechowywane w systemach zewnętrznych (ADLS, Cosmos DB), dlatego upewnij się, że wykonujesz kopie zapasowe danych w źródle. Upewnij się, że w kontroli źródła są używane metadane SQL (tabela, widok, definicje procedur i uprawnienia użytkownika). Definicje tabel w bazie danych Lake są przechowywane w metadanych platformy Spark, dlatego upewnij się, że definicje tabel platformy Spark są również przechowywane w kontroli źródła.
Przywracanie bazy danych Tak L.p. Dane są przechowywane w systemach zewnętrznych (ADLS, Cosmos DB), więc musisz odzyskać systemy źródłowe w celu przeniesienia danych. Upewnij się, że metadane SQL (tabela, widok, definicje procedur i uprawnienia użytkownika) są w kontroli źródła, aby można było ponownie utworzyć obiekty SQL. Definicje tabel w bazie danych Lake są przechowywane w metadanych platformy Spark, dlatego upewnij się, że definicje tabel platformy Spark są również przechowywane w kontroli źródła.

Narzędzia

Korzystając z różnych narzędzi, możesz nawiązać połączenie z usługą Synapse SQL w celu wykonywania zapytań dotyczących danych.

Narzędzie Dedykowane Praca bezserwerowa
Synapse Studio Tak, skrypty SQL Tak, skrypty SQL mogą być używane w programie Synapse Studio. Użyj programu SSMS lub ADS zamiast programu Synapse Studio, jeśli zwracasz dużą ilość danych w wyniku.
Power BI Tak Tak, możesz użyć usługi Power BI do tworzenia raportów w bezserwerowej puli SQL. Tryb importu jest zalecany do raportowania.
Azure Analysis Service Tak Tak, możesz załadować dane w usłudze Azure Analysis Service przy użyciu bezserwerowej puli SQL.
Azure Data Studio (ADS) Tak Tak, możesz użyć narzędzia Azure Data Studio (wersja 1.18.0 lub nowsza), aby wykonać zapytanie o bezserwerową pulę SQL. Obsługiwane są skrypty SQL i notesy SQL.
SQL Server Management Studio (SSMS) Tak Tak, możesz użyć programu SQL Server Management Studio (w wersji 18.5 lub nowszej), aby wykonać zapytanie o bezserwerową pulę SQL. Program SSMS pokazuje tylko obiekty, które są dostępne w bezserwerowych pulach SQL.

Uwaga

Program SSMS umożliwia łączenie się z bezserwerową pulą SQL i wykonywaniem zapytań. Jest on częściowo obsługiwany począwszy od wersji 18.5. Można go użyć do nawiązywania połączenia i wykonywania tylko zapytań.

Większość aplikacji używa standardowego języka Transact-SQL, może wysyłać zapytania zarówno do modeli dedykowanych, jak i bezserwerowych użycia usługi Synapse SQL.

Dostęp do danych

Analizowane dane mogą być przechowywane w różnych typach magazynu. W poniższej tabeli wymieniono wszystkie dostępne opcje magazynu:

Typ magazynu Dedykowane Praca bezserwerowa
Magazyn wewnętrzny Tak Nie, dane są umieszczane w magazynie analitycznym usługi Azure Data Lake lub Azure Cosmos DB.
Usługa Azure Data Lake w wersji 2 Tak Tak, można użyć tabel zewnętrznych i OPENROWSET funkcji do odczytywania danych z usługi ADLS. Dowiedz się tutaj, jak skonfigurować kontrolę dostępu.
Azure Blob Storage Tak Tak, możesz użyć tabel zewnętrznych i OPENROWSET funkcji do odczytywania danych z usługi Azure Blob Storage. Dowiedz się tutaj, jak skonfigurować kontrolę dostępu.
Azure SQL/SQL Server (zdalne) Nie. Nie, bezserwerowa pula SQL nie może odwoływać się do bazy danych Azure SQL Database. Możesz odwoływać się do bezserwerowych pul SQL z usługi Azure SQL przy użyciu elastycznych zapytań lub serwerów połączonych.
Dataverse Nie. Dane usługi Azure Cosmos DB można załadować do dedykowanej puli przy użyciu usługi Azure Synapse Link w bezserwerowej puli SQL (za pośrednictwem usługi ADLS) lub platformy Spark. Tak, tabele usługi Dataverse można odczytać przy użyciu linku usługi Azure Synapse dla usługi Dataverse z usługą Azure Data Lake.
Magazyn transakcyjny usługi Azure Cosmos DB Nie. Nie, nie można uzyskać dostępu do kontenerów usługi Azure Cosmos DB w celu zaktualizowania danych ani odczytu danych z magazynu transakcyjnego usługi Azure Cosmos DB. Użyj pul platformy Spark, aby zaktualizować magazyn transakcyjny usługi Azure Cosmos DB .
Magazyn analityczny usługi Azure Cosmos DB Nie. Dane usługi Azure Cosmos DB można załadować do dedykowanej puli przy użyciu usługi Azure Synapse Link w bezserwerowej puli SQL (za pośrednictwem usługi ADLS), usługi ADF, platformy Spark lub innego narzędzia do ładowania. Tak, możesz wykonywać zapytania dotyczące magazynu analitycznego usługi Azure Cosmos DB przy użyciu usługi Azure Synapse Link.
Tabele platformy Apache Spark (w obszarze roboczym) Nie. Tak, pula bezserwerowa może odczytywać tabele PARQUET i CSV przy użyciu synchronizacji metadanych.
Tabele platformy Apache Spark (zdalne) Nie. Nie, pula bezserwerowa może uzyskiwać dostęp tylko do tabel PARQUET i CSV utworzonych w pulach platformy Apache Spark w tym samym obszarze roboczym usługi Synapse. Można jednak ręcznie utworzyć tabelę zewnętrzną odwołującą się do zewnętrznej lokalizacji tabeli platformy Spark.
Tabele usługi Databricks (zdalne) Nie. Nie, pula bezserwerowa może uzyskiwać dostęp tylko do tabel PARQUET i CSV utworzonych w pulach platformy Apache Spark w tym samym obszarze roboczym usługi Synapse. Można jednak ręcznie utworzyć tabelę zewnętrzną odwołującą się do lokalizacji tabeli usługi Databricks.

Formaty danych

Analizowane dane mogą być przechowywane w różnych formatach magazynu. W poniższej tabeli wymieniono wszystkie dostępne formaty danych, które można przeanalizować:

Format danych Dedykowane Praca bezserwerowa
Rozdzielany Tak Tak, można wykonywać zapytania dotyczące plików rozdzielanych.
CSV Tak (ograniczniki wieloznaniowe nie są obsługiwane) Tak, możesz wykonywać zapytania dotyczące plików CSV. Aby uzyskać lepszą wydajność, użyj PARSER_VERSION 2.0, która zapewnia szybsze analizowanie. Jeśli dołączasz wiersze do plików CSV, upewnij się, że wysyłasz zapytania do plików jako dołączane.
Parkiet Tak Tak, można wykonywać zapytania dotyczące plików Parquet, w tym plików z zagnieżdżonych typów.
Gałąź ORC Tak Nie, bezserwerowe pule SQL nie mogą odczytać formatu HIVe ORC.
Hive RC Tak Nie, bezserwerowe pule SQL nie mogą odczytać formatu Hive RC.
JSON Tak Tak, możesz wykonywać zapytania dotyczące plików JSON przy użyciu rozdzielanego formatu tekstu i funkcji T-SQL JSON .
Avro Nie. Nie, bezserwerowe pule SQL nie mogą odczytać formatu Avro.
Delta Lake Nie. Tak, można wykonywać zapytania dotyczące plików usługi Delta Lake, w tym plików z zagnieżdżonych typów.
Common Data Model (CDM) Nie. Nie, bezserwerowa pula SQL nie może odczytywać danych przechowywanych przy użyciu usługi Common Data Model.

Następne kroki

Dodatkowe informacje na temat najlepszych rozwiązań dotyczących dedykowanej puli SQL i bezserwerowej puli SQL można znaleźć w następujących artykułach: