| Termin | Definicja |
|---|---|
| SQL Server PolyBase Engine | PolyBase Engine umożliwia wykonywanie zapytań łączących dane relacyjne z zewnętrznymi źródłami, np. Hadoop. Rola PolyBase Engine w SQL ServerSQL Server PolyBase Engine jest komponentem SQL Server odpowiedzialnym za obsługę zapytań do danych znajdujących się poza lokalną bazą relacyjną. Dzięki niemu zapytanie napisane w języku Transact-SQL może odczytywać dane z określonych zewnętrznych źródeł i łączyć je z tabelami przechowywanymi w SQL Server. Użytkownik korzysta z obiektów takich jak zewnętrzne źródło danych, format pliku oraz tabela zewnętrzna, natomiast silnik PolyBase tłumaczy operacje na sposób zrozumiały dla podłączonego dostawcy danych. W SQL Server 2016 PolyBase wprowadzono między innymi do pracy z Hadoop i usługą Azure Blob Storage. W kolejnych wersjach dodano obsługę połączeń z innymi instancjami SQL Server, Oracle, Teradata, MongoDB, ogólnymi sterownikami ODBC oraz magazynami obiektowymi zgodnymi z S3. Zakres zależy od wersji SQL Server i konkretnego konektora. Istotne jest także rozróżnienie między dawną obsługą Hadoop a współczesnymi instalacjami: SQL Server 2022 i nowsze wersje nie obsługują zewnętrznych źródeł Hadoop. Obiekty T-SQL opisujące dane zewnętrzneKonfiguracja PolyBase rozpoczyna się od utworzenia obiektu Następnie można utworzyć tabelę zewnętrzną poleceniem Przebieg zapytania i ograniczenia wydajnościoweZapytanie do tabeli zewnętrznej jest najpierw analizowane przez SQL Server. Część dotycząca zewnętrznych danych trafia do PolyBase Engine, który tworzy plan odczytu i przekazuje zadania do usług odpowiedzialnych za przemieszczanie danych. Wyniki są zwracane do instancji SQL Server, gdzie mogą zostać połączone z lokalnymi tabelami, przefiltrowane albo poddane dalszym operacjom T-SQL. W niektórych scenariuszach predykaty mogą zostać przesłane do źródła zewnętrznego, co ogranicza ilość danych przesyłanych do SQL Server. Nie każda operacja i nie każdy konektor obsługuje jednak takie przesunięcie obliczeń. PolyBase nie gwarantuje stałego czasu odpowiedzi. Wydajność zależy od ilości danych, liczby plików, formatu, organizacji katalogów, przepustowości sieci, możliwości źródła oraz złożoności filtrów i złączeń. Odczyt dużych plików kolumnowych, takich jak Parquet, może zachowywać się inaczej niż odczyt wielu małych plików CSV. Tabela zewnętrzna nie jest automatycznie kopią danych ani indeksem lokalnym. Jeżeli źródło jest niedostępne, poświadczenie wygasło, definicja kolumn nie odpowiada rzeczywistym plikom albo brakuje wymaganego konektora, zapytanie może zakończyć się błędem mimo poprawnej składni T-SQL. Diagnostyka instalacji i połączenia PolyBaseDiagnostykę należy rozpocząć od ustalenia wersji SQL Server, systemu operacyjnego i faktycznie dostępnego konektora. W SQL Server 2019 funkcję PolyBase trzeba w razie potrzeby włączyć w konfiguracji instancji za pomocą opcji Podczas analizy błędu warto oddzielić problem SQL Server od problemu sieciowego i problemu po stronie źródła. Sprawdza się adres lokalizacji, dostępność portów, certyfikaty lub sposób uwierzytelniania, zgodność typów danych oraz strukturę plików. Przy migracji do SQL Server 2022 trzeba zweryfikować stare definicje używające typu |