Funkcje programu SQL Server w systemie Linux

Ukończone

Aby uzasadnić migrację programu SQL Server do posiadaczy budżetu, warto wiedzieć, jakie funkcje programu SQL Server mogą zapewnić przewagę konkurencyjną dla systemów.

Załóżmy, że po zapoznaniu się z tym, czym jest program SQL Server w systemie Linux, chcesz upewnić się, że bieżące dostępne funkcje spełniają wymagania firmy Wide World Importers dotyczące istniejącego i przyszłego przetwarzania danych.

Tutaj dowiesz się więcej o głównych funkcjach programu SQL Server w systemie Linux.

Wydajność

Program SQL Server w systemie Linux obsługuje konkurencyjne potrzeby szybkiej przepływności transakcyjnej i dynamicznej analizy, oferując rozwiązanie hybrydowego przetwarzania analitycznego transakcyjnego (HTAP). Protokół HTAP używa niektórych podstawowych technologii wydajności programu SQL Server:

Przetwarzanie transakcji online w pamięci (OLTP)

Połączenie tabel zoptymalizowanych pod kątem pamięci i skompilowanych procedur składowanych, Wide World Importers może zobaczyć znaczne wzrosty wydajności w tabelach transakcyjnych; na przykład zapisywanie i odczytywanie stanu sesji dla witryny internetowej handlu elektronicznego.

Indeks magazynu kolumn

Program SQL Server obsługuje zarówno dane wierszy, jak i skompresowane dane kolumnowe. Tabele transakcyjne mogą również mieć indeks magazynu kolumn, który jest używany zamiast magazynu wierszy podczas pisania zapytań analitycznych. Użycie indeksów magazynu kolumn umożliwiłoby bieżącemu pakietowi analitycznemu zachowanie wydajności transakcyjnej, a jednocześnie uruchamianie zapytań raportowania w czasie rzeczywistym dotyczących danych operacyjnych.

Magazyn zapytań

Zespół DBA wykonuje miesięczne zadanie dostrajania wydajności, aby upewnić się, że są używane poprawne plany zapytań. Monitorują wydajność zapytań i przywracają plany zapytań, w których zmiany w planach wykonywania miały wpływ na wydajność. Zespół zgłasza również 10 najdłużej działających zapytań do potencjalnych klientów programistycznych i sprawdza wszelkie blokady zasobów. Magazyn zapytań obsługuje wszystkie te zadania i można je włączyć za pomocą języka Transact-SQL:

ALTER DATABASE <database name>
SET QUERY_STORE (OPERATION_MODE = READ_WRITE);

Automatyczne dostrajanie i inteligentne przetwarzanie zapytań

Automatyczna korekta wyboru planu można włączyć po włączeniu magazynu zapytań. Po włączeniu automatycznego dostrajania program SQL Server monitoruje wydajność zapytań. Jeśli nowy plan zapytania działa gorzej niż poprzednia wersja, może zastąpić nowy plan lepszą wydajnością poprzedniej wersji. Opcja jest dostępna na poziomie bazy danych z instrukcją ALTER :

ALTER DATABASE <database name>
SET AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = ON );

Inteligentne przetwarzanie zapytań (IQP) to zestaw funkcji, z których wiele jest nowych w programie SQL Server 2019, które automatycznie zwiększają i optymalizują wydajność obciążenia. Funkcje IQP obejmują:

  • Sprzężenia adaptacyjne: program SQL Server dynamicznie wybiera typ sprzężenia w czasie wykonywania na podstawie rzeczywistej liczby wierszy wejściowych.
  • Przybliżona liczba unikatowych danych: program SQL Server zapewnia przybliżoną liczbę unikatowych wyników dla scenariuszy danych big data w celu uruchamiania takich zapytań z wysoką wydajnością i niskim obciążeniem pamięci.
  • Opinia dotycząca udzielania pamięci: jeśli zapytanie zawiera operacje rozlające się na dysk, program SQL Server może dodać więcej pamięci do kolejnych operacji. Podobnie, jeśli zapytanie traci ponad połowę przydzielonej pamięci, program SQL Server może zmniejszyć ilość pamięci przypisanej do niej.
  • Kompilacja odroczona zmiennej tabeli: program SQL Server używa rzeczywistej kardynalności zmiennej tabeli w pierwszej kompilacji zamiast stałego odgadnięcia.

Protokół IQP nie wymaga ponownego zapisania kodu ani zmiany schematu bazy danych w celu skorzystania z najlepszej wydajności. Wystarczy uaktualnić bazę danych do poziomu zgodności 150 lub nowszego:

ALTER DATABASE <database name> SET COMPATIBILITY_LEVEL = 150;

Zabezpieczenia

Program SQL Server w systemie Linux obsługuje zaawansowane funkcje zabezpieczeń, takie jak Always Encrypted, zabezpieczenia na poziomie wiersza i dynamiczne maskowanie danych w celu ochrony danych na dysku, w pamięci lub podczas przesyłania. Te funkcje są obsługiwane we wszystkich wersjach, w tym w wersji Standard Edition:

  • Funkcja Transparent Data Encryption (TDE) szyfruje dane magazynowane, gdy są przechowywane w plikach bazy danych. Dane są chronione przed złośliwymi użytkownikami zarówno w bazie danych, jak i w kopiach zapasowych.

  • Funkcja Always Encrypted zapewnia, że tylko użytkownicy, którzy są właścicielami danych, mogą je wyświetlać i przetwarzać. Użytkownicy, którzy zarządzają danymi, takimi jak administratorzy baz danych, nie mogą go wyświetlać. Jeśli używasz funkcji Always Encrypted:

    • Zaszyfrowane dane można wykonywać bez uprzedniego odszyfrowywania.
    • Dane są chronione w spoczynku, gdy są przenoszone do pamięci serwera i gdy są przenoszone z serwera do zaufanej aplikacji klienckiej.
    • Szyfrowanie i odszyfrowywanie odbywa się w sterowniku klienta, dzięki czemu proces jest niewidoczny dla aplikacji klienckich.
    • Dostęp do danych mogą uzyskiwać tylko zaufane aplikacje i właściciele danych. Deweloperzy aplikacji i administratorzy baz danych nie mają dostępu do klucza szyfrowania kolumn (CEK).
  • Inspekcja śledzi zdarzenia występujące w a aparatze bazy danych i osoby wykonujące te zdarzenia. Zdarzenia inspekcji mogą być przechowywane w dziennikach zdarzeń lub plikach inspekcji i można ich użyć do zbadania problemów, takich jak ataki i naruszenia danych.

  • Zabezpieczenia na poziomie wiersza kontrolują dostęp do określonych wierszy w tabeli na podstawie tego, kto wykonuje zapytanie. Możesz kontrolować, kto może uzyskiwać dostęp do danych, na przykład według członkostwa w grupie lub kontekstu wykonywania.

  • Dynamiczne maskowanie danych maskuje część danych. Dostępne są cztery różne rodzaje masek: maskowanie wszystkich danych w kolumnie, maskowanie adresów e-mail, maskowanie losowych numerów dla danych liczbowych i maskowanie ciągów niestandardowych. Można na przykład użyć niestandardowego maskowania ciągów, aby zamaskować wszystkie, ale ostatnie cztery cyfry w numerze ubezpieczenia społecznego.

  • Odnajdywanie i klasyfikacja danych identyfikuje, etykiety i raporty dotyczące poufnych danych w bazach danych, takich jak dane osobowe. Jest to narzędzie w programie SQL Server Management Studio (SSMS), które ułatwia przestrzeganie przepisów dotyczących prywatności danych i wzmacnianie zabezpieczeń baz danych zawierających najbardziej cenne dane. Odnajdywanie i klasyfikacja danych to usługa, która jest częścią pakietu Advanced Data Security (ADS).

  • Ocena luk w zabezpieczeniach identyfikuje luki w zabezpieczeniach w bazach danych. Po zdaniu informacji o słabych stronach, które mogą powodować konfiguracje serwera i projekty baz danych, można je wyeliminować i zapobiec typowym atakom. Ocena luk w zabezpieczeniach to inna usługa ADS.

Program SQL Server Agent

Program SQL Server Agent uruchamia zadania konserwacji i zaplanowane, zautomatyzowane zadania. Program SQL Server Agent obsługuje następujące trzy obciążenia:

  • Zadania języka Transact-SQL
  • Poczta bazy danych
  • Wysyłanie dziennika

Domyślnie program SQL Server Agent jest wyłączony, ale jest zainstalowany i można go włączyć za pomocą narzędzia wiersza mssql-conf polecenia.

sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
sudo systemctl restart mssql-server

Wysoka dostępność

Program SQL Server ma wiele sposobów określania poziomu odporności na uszkodzenia, który jest akceptowalny. Program SQL Server w systemie Linux obsługuje zawsze włączone grupy dostępności i zawsze włączone wystąpienia klastra trybu failover. Obie te opcje wymagają pakietu mssql-server-ha zainstalowanego na każdym serwerze. System Linux obsługuje klastrowanie za pośrednictwem programu Pacemaker, który jest odpowiednikiem klastra trybu failover systemu Windows Server (WSCF), choć nie jest tak ściśle zintegrowany z systemem operacyjnym hosta.

Jeśli w przypadku przestojów jest większa elastyczność, wysyłanie dzienników za pośrednictwem agenta SQL może zapewnić ciepłe rezerwy, których można użyć do odzyskania po utracie serwera.

Innym rozwiązaniem dla programu SQL Server w systemie Linux jest możliwość uruchamiania w kontenerach zorganizowanych za pomocą narzędzi takich jak Kubernetes. Narzędzia orkiestracji zapewniają, że zawsze istnieje węzeł z uruchomionym programem SQL Server. Jeśli ten węzeł ulegnie awarii, kolejne wystąpienie zostanie automatycznie uruchomione. Gdy wymagana jest bardziej niezawodna dostępność, zawsze włączona grupa dostępności może być uruchamiana w kontenerach.

Inne istotne funkcje

PolyBase

Wiele organizacji ma dane w różnych systemach. Może to być spowodowane tym, że różne zespoły miały różne wymagania w przypadku wybrania systemu, ponieważ scaliłeś się z inną firmą lub z innego powodu historycznego. Tradycyjnie trudno było zintegrować dane z tych granic systemu, aby odpowiedzieć na pytania użytkowników.

Załóżmy, że masz dane w programie SQL Server, które rejestrują sprzedaż w katalogu produktów, ale dane, które rejestrują, ile kosztuje, aby produkty były w bazie danych SAP HANA. Chcesz utworzyć raport, który analizuje marże zysku. Będziesz potrzebować informacji z obu baz danych. W przeszłości można:

  • Użyj pakietu Extract, Transform, Load (ETL), aby przeprowadzić migrację danych z jednego systemu bazy danych do drugiego.
  • Wykonaj zapytanie względem obu baz danych, a następnie napisz kod niestandardowy, aby dołączyć i zintegrować wyniki z jednym raportem.

Oba te podejścia są złożone i mogą wymagać znacznego czasu programowania.

Za pomocą technologii PolyBase można utworzyć tabelę zewnętrzną w programie SQL Server. Tabela zewnętrzna to połączenie z systemem zewnętrznym i hostowanym tam zestawem danych. Po utworzeniu klienci mogą przesyłać zapytania do tabeli zewnętrznej w dokładnie taki sam sposób, jak w przypadku tabel wewnętrznych. JOIN zapytania mogą integrować dane z tabel zewnętrznych z tabelami wewnętrznymi. Jak widać, technologia PolyBase może usunąć granice nakładane na dane przez różne systemy i ułatwić wykonywanie analiz potrzebnych na danych biznesowych, niezależnie od jego lokalizacji.

Uwaga

W systemach operacyjnych Linux technologia PolyBase jest obsługiwana w programie SQL Server 2019 lub nowszym. Aby go używać, należy zainstalować pakiet mssql-server-polybase , oprócz programu SQL Server 2019.

Machine Learning Services

W uczeniu maszynowym duże zestawy danych są używane do modelowania zachowania niektórych złożonych systemów. Po opracowaniu modelu, który dokładnie przewiduje obserwowane zachowanie systemu, jest używany do przewidywania, jak ten system może zachowywać się w przyszłości. Opracowano zaawansowane biblioteki kodu, często typu open source, które mogą przygotować zestaw danych, dodać do niego funkcje, wytrenować model, ocenić dokładność wytrenowanego modelu i wdrożyć te modele dla innych klientów w celu wywołania. Te biblioteki są napisane w językach R i Python.

Program SQL Server Machine Edukacja Services umożliwia uruchamianie tych skryptów języka R i Python względem danych w bazach danych programu SQL Server. Możesz dodać popularne struktury uczenia maszynowego i nauki o danych, w tym PyTorch, TensorFlow, SciKit-Learn i inne.

Uwaga

W systemach operacyjnych Linux program SQL Server Machine Edukacja jest obsługiwany w programie SQL Server 2019 lub nowszym. Aby go używać, należy dodać dodatkowe pakiety. Jeśli na przykład chcesz użyć języka Python dla całego kodu uczenia maszynowego, zainstaluj pakiet mssql-mlservices-mlm-py-9.4.7 . Równoważny pakiet języka R to instalacja mssql-mlservices-mlm-r-9.4.7.

Obsługa programu Graph

Program SQL Server ma natywną obsługę przechowywania i wykonywania zapytań dotyczących danych opartych na grafach. Program SQL Server przechowuje dane jako serię jednostek (węzłów) i relacje (krawędzie) między nimi.

Wyszukiwanie pełnotekstowe umożliwia użytkownikom uruchamianie zapytań dotyczących danych tekstowych, które przestrzegają reguł języka. Na przykład podczas wyszukiwania wyrazu "run" funkcja wyszukiwania pełnotekstowego zwraca wyniki zawierające formularze wyrazu "run", takie jak "ran" i "running".

Ta funkcja nie jest instalowana domyślnie. W systemie Linux można ją włączyć, instalując mssql-server-fts pakiet.

Obciążenia ETL

Pakiety usług SQL Server Integration Services (SSIS) mogą być uruchamiane w programie SQL Server w systemie Linux. Nie są one ograniczone do uruchamiania tylko w programie SQL Server w systemie Linux. Te pakiety mogą również łączyć się z programem Microsoft SQL Server działającym lokalnie lub w chmurze lub z programem SQL Server działającym w kontenerze.

Należy pisać i obsługiwać pakiety usług SSIS na maszynie z systemem Windows z uruchomionymi narzędziami SQL Server Data Tools.

Sprawdź swoją wiedzę

1.

Jakie funkcje zapewnia program SQL Server w systemie Linux w celu zapewnienia ciągłości działania?

2.

Jeśli dane są szyfrowane przy użyciu funkcji Always Encrypted, kiedy dane zostaną odszyfrowane?