Zapytanie BigQuery z klauzulą WHERE na podstawie znacznika czasu i ID nadal wyzwala pełne skanowanie tabeli. Jak zminimalizować liczbę skanowanych bajtów przy minimalnych zmianach w SQL?
Wybierz odpowiedź
Dotknij opcji, aby sprawdzić swoją odpowiedź.
Poprawna odpowiedź: Odtwórz tabelę z kolumną partycjonującą i kolumną klastrującą..
Dlaczego to jest odpowiedź
Pełne skanowanie tabeli w BigQuery, mimo klauzuli WHERE, wskazuje na brak optymalizacji struktury danych. Utworzenie tabeli z kolumną partycjonującą (np. na podstawie znacznika czasu) i kolumną klastrującą (np. na podstawie ID) jest najskuteczniejszym rozwiązaniem. Partycjonowanie dzieli tabelę na mniejsze segmenty, a klastrowanie porządkuje dane w tych segmentach. Dzięki temu BigQuery może skanować tylko te partycje i klastry, które są istotne dla zapytania, znacząco redukując liczbę skanowanych bajtów i koszty. Tworzenie osobnej tabeli dla każdego ID jest niepraktyczne i trudne w zarządzaniu. Użycie LIMIT zmniejsza liczbę zwracanych wierszy, ale nie wpływa na liczbę skanowanych bajtów. Flaga --maximumbytesbilled zapobiega przekroczeniu budżetu, ale nie optymalizuje samego zapytania.
Zdaj egzamin — bez niekończącego się szukania odpowiedzi
Uzyskaj wszystkie zweryfikowane pytania i wyjaśnienia do tego egzaminu w jednym miejscu i zaoszczędź godziny przygotowań. Ponad 1000 certyfikacji · Ponad 20 języków · Zacznij za darmo.
Zdaj egzamin szybciej → Karta nie jest wymagana