Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dzięki przyspieszeniu zapytań aplikacje i frameworki analityczne mogą optymalizować przetwarzanie danych. Pobierają tylko dane potrzebne do wykonania danej operacji. Takie podejście zmniejsza czas i moc obliczeniową potrzebną do uzyskania informacji o przechowywanych danych.
Przegląd
Przyspieszenie zapytań akceptuje predykaty filtrujące i prognozy kolumnowe. Dzięki tym predykatom i projekcjom aplikacje mogą filtrować wiersze i kolumny podczas odczytu danych z dysku. Tylko dane spełniające warunki predykatu są przesyłane przez sieć do aplikacji. Takie podejście zmniejsza opóźnienia sieci i koszty obliczeniowe.
Użyj SQL do określenia predykatów filtrów wierszowych i projekcji kolumnowych w żądaniu przyspieszenia zapytania. Należy pamiętać o następujących ograniczeniach:
- Żądanie przetwarza tylko jeden plik.
- Przyspieszenie zapytań nie obsługuje zaawansowanych funkcji relacyjnych SQL, takich jak łączenia i grupowanie przez agregaty.
- Przyspieszanie zapytań obsługuje dane w formacie CSV i JSON jako dane wejściowe dla każdego żądania.
Funkcja przyspieszania zapytań nie jest ograniczona tylko do kont magazynu Data Lake Storage (konta magazynu, które mają włączoną hierarchiczną przestrzeń nazw). Przyspieszanie zapytań jest zgodne z obiektami blob na kontach magazynu, które nie mają włączonej hierarchicznej przestrzeni nazw. Ta kompatybilność oznacza, że możesz osiągnąć takie samo zmniejszenie opóźnień sieciowych i kosztów obliczeniowych, przetwarzając dane, które już masz zapisane jako bloby w kontach pamięci.
Aby zapoznać się z przykładem używania przyspieszania zapytań w aplikacji klienckiej, zobacz Filtrowanie danych przy użyciu przyspieszania zapytań usługi Azure Data Lake Storage.
Przepływ danych
Na poniższym diagramie pokazano, jak typowa aplikacja używa przyspieszania zapytań do przetwarzania danych.
Aplikacja kliencka żąda danych pliku, określając predykaty i projekcje kolumn.
Przyspieszanie zapytań analizuje określone zapytanie SQL i dystrybuuje pracę w celu analizowania i filtrowania danych.
Procesory odczytują dane z dysku, analizują je w odpowiednim formacie, a następnie filtrują dane, stosując określone predykaty i prognozy kolumnowe.
Przyspieszenie zapytań łączy odłamki odpowiedzi, aby przesyłać je z powrotem do aplikacji klienckiej.
Aplikacja kliencka odbiera i analizuje przesyłaną strumieniowo odpowiedź. Aplikacja nie musi filtrować żadnych innych danych i może bezpośrednio zastosować żądane obliczenia lub przekształcenie.
Lepsza wydajność przy niższych kosztach
Przyspieszenie zapytań optymalizuje wydajność, zmniejszając ilość danych, które aplikacja przesyła i przetwarza.
Aby obliczyć zagregowaną wartość, aplikacje często pobierają wszystkie dane z pliku, a następnie przetwarzają i filtrują dane lokalnie. Analiza wzorców wejścia i wyjścia (I/O) dla obciążeń analitycznych ujawnia, że aplikacje zazwyczaj wymagają tylko 20% odczytanych danych do wykonania danego obliczenia. Ta statystyka jest prawdziwa nawet po zastosowaniu technik, takich jak oczyszczanie partycji. Oznacza to, że aplikacje niepotrzebnie przesyłają, analizują i filtrują 80% danych. Ten wzorzec, zaprojektowany do usuwania niepotrzebnych danych, wiąże się ze znaczącym kosztem obliczeniowym.
Mimo że Azure oferuje sieć o wysokiej wydajności, zarówno pod względem przepustowości, jak i opóźnień, niepotrzebne przesyłanie danych przez tę sieć nadal kosztuje wydajność aplikacji. Filtrując niepożądane dane podczas żądania przechowywania, przyspieszanie zapytań eliminuje ten koszt.
Dodatkowo, obciążenie CPU potrzebne do parsowania i filtrowania niepotrzebnych danych wymaga od aplikacji zapewnienia większej liczby i większych maszyn wirtualnych do wykonywania swojej pracy. Przenosząc to obciążenie obliczeniowe do przyspieszania zapytań, aplikacje mogą uzyskać znaczne oszczędności kosztów.
Aplikacje, które mogą korzystać z przyspieszenia zapytań
Przyspieszenie zapytań jest zaprojektowane dla rozproszonych ram analitycznych i aplikacji do przetwarzania danych:
Frameworki analityki rozproszonej , takie jak Apache Spark i Apache Hive, zawierają warstwę abstrakcji pamięci masowej w ramach ramy. Te silniki również zawierają optymalizatory zapytań, które mogą uwzględniać wiedzę na temat możliwości podstawowej usługi we/wy w celu określenia optymalnego planu dla zapytań użytkowników. Te frameworki integrują przyspieszenie zapytań. W związku z tym użytkownicy tych struktur widzą lepsze opóźnienie zapytań i niższy całkowity koszt posiadania bez konieczności wprowadzania żadnych zmian w zapytaniach.
Aplikacje do przetwarzania danych zazwyczaj wykonują duże transformacje danych, które nie prowadzą bezpośrednio do analizy, dlatego nie zawsze korzystają z ustalonych ram analityki rozproszonej. Aplikacje te często mają bardziej bezpośredni związek z bazową usługą przechowywania danych, więc mogą bezpośrednio korzystać z funkcji takich jak przyspieszenie zapytań.
Aby zapoznać się z przykładem sposobu integrowania przyspieszania zapytań przez aplikację, zobacz Filtrowanie danych przy użyciu przyspieszania zapytań usługi Azure Data Lake Storage.
Ceny
Ze względu na zwiększone obciążenie obliczeniowe w usłudze Azure Data Lake Storage, model cenowy przyspieszania zapytań różni się od standardowego modelu transakcji Azure Data Lake Storage. Przyspieszanie zapytań nalicza opłatę za objętość zeskanowanych danych, a także opłatę za objętość danych zwróconych do osoby wywołującej. Aby uzyskać więcej informacji, zobacz Cennik usługi Azure Data Lake Storage.
Pomimo zmiany modelu rozliczeń model cenowy akceleracji zapytań został zaprojektowany tak, aby obniżyć całkowity koszt posiadania dla danego obciążenia dzięki zmniejszeniu znacznie wyższych kosztów maszyn wirtualnych.