arrow_back

Naprawianie częstych błędów SQL w BigQuery

Sprawdź swoją wiedzę i podziel się nią ze społecznością.
done
Zyskaj dostęp do ponad 700 praktycznych modułów oraz odznak umiejętności i szkoleń

Naprawianie częstych błędów SQL w BigQuery

Moduł 50 godz. universal_currency_alt Bezpłatnie show_chart Wprowadzające
info Ten moduł może zawierać narzędzia AI, które ułatwią Ci naukę.
Sprawdź swoją wiedzę i podziel się nią ze społecznością.
done
Zyskaj dostęp do ponad 700 praktycznych modułów oraz odznak umiejętności i szkoleń

GSP408

Moduły Google Cloud do samodzielnego ukończenia

Opis

BigQuery to ekonomiczna, w pełni zarządzana analityczna baza danych Google typu NoOps. Z BigQuery możesz przeszukiwać wiele terabajtów danych bez konieczności zarządzania infrastrukturą czy wyznaczania administratora bazy danych. Usługa BigQuery opiera się na języku SQL i jest dostępna w modelu płatności według wykorzystania. Pracując w BigQuery, możesz skoncentrować się na analizowaniu danych i wyciąganiu z nich znaczących wniosków.

Do BigQuery został wczytany najnowszy zbiór danych e-commerce zawierający miliony rekordów Google Analytics ze sklepu Google Merchandise Store. Będziesz pracować na kopii tego zbioru danych, przeglądając dostępne pola i wiersze w poszukiwaniu cennych informacji.

Moduł ten krok po kroku przeprowadzi Cię przez logikę zapytań związanych z rozwiązywaniem problemów. Zadania zostały opracowane w formie scenariuszy przedstawiających sytuacje z życia. Wyobraź sobie, że nowy analityk danych w Twoim zespole przekazał Ci podane niżej zapytania w celu uzyskania pewnych informacji na temat zbioru danych e-commerce. Opierając się na pytaniach pomocniczych i sugestiach korekt, popraw zapytania, aby uzyskać sensowne rezultaty.

Czego się nauczysz

Z tego modułu nauczysz się, jak:

  • przypinać projekty do drzewa zasobów BigQuery,
  • używać walidatora zapytań oraz edytora zapytań BigQuery do identyfikowania i naprawiania błędów składniowych i logicznych w kodzie SQL.

Konfiguracja i wymagania

Zanim klikniesz przycisk Rozpocznij moduł

Zapoznaj się z tymi instrukcjami. Moduły mają limit czasowy i nie można ich zatrzymać. Gdy klikniesz Rozpocznij moduł, na liczniku wyświetli się informacja o tym, na jak długo udostępniamy Ci zasoby Google Cloud.

W tym praktycznym module możesz spróbować swoich sił w wykonywaniu opisywanych działań w prawdziwym środowisku chmury, a nie w jego symulacji lub wersji demonstracyjnej. Otrzymasz nowe, tymczasowe dane logowania, dzięki którym zalogujesz się i uzyskasz dostęp do Google Cloud na czas trwania modułu.

Do ukończenia modułu potrzebne będą:

  • dostęp do standardowej przeglądarki internetowej (zalecamy korzystanie z przeglądarki Chrome).
Uwaga: uruchom ten moduł w oknie incognito lub przeglądania prywatnego. Dzięki temu unikniesz konfliktu między swoim kontem osobistym a kontem do nauki, co mogłoby spowodować naliczanie oddatkowych opłat na koncie osobistym.
  • Odpowiednia ilość czasu na ukończenie modułu – pamiętaj, że gdy rozpoczniesz, nie możesz go wstrzymać.
Uwaga: jeśli masz już osobiste konto lub projekt w Google Cloud, nie używaj go w tym module, aby uniknąć naliczania opłat na koncie.

Rozpoczynanie modułu i logowanie się w konsoli Google Cloud

  1. Kliknij przycisk Rozpocznij moduł. Jeśli moduł jest odpłatny, otworzy się wyskakujące okienko, w którym możesz wybrać formę płatności. Po lewej stronie znajduje się panel Szczegóły modułu z następującymi elementami:

    • przyciskiem Otwórz konsolę Google Cloud;
    • czasem, który Ci pozostał;
    • tymczasowymi danymi logowania, których musisz użyć w tym module;
    • innymi informacjami potrzebnymi do ukończenia modułu.
  2. Kliknij Otwórz konsolę Google Cloud (lub kliknij prawym przyciskiem myszy i wybierz Otwórz link w oknie incognito, jeśli korzystasz z przeglądarki Chrome).

    Moduł uruchomi zasoby, po czym otworzy nową kartę ze stroną logowania.

    Wskazówka: otwórz karty obok siebie w osobnych oknach.

    Uwaga: jeśli pojawi się okno Wybierz konto, kliknij Użyj innego konta.
  3. W razie potrzeby skopiuj nazwę użytkownika znajdującą się poniżej i wklej ją w oknie logowania.

    {{{user_0.username | "Username"}}}

    Nazwę użytkownika znajdziesz też w panelu Szczegóły modułu.

  4. Kliknij Dalej.

  5. Skopiuj podane niżej hasło i wklej je w oknie powitania.

    {{{user_0.password | "Password"}}}

    Hasło znajdziesz też w panelu Szczegóły modułu.

  6. Kliknij Dalej.

    Ważne: musisz użyć danych logowania podanych w module. Nie używaj danych logowania na swoje konto Google Cloud. Uwaga: korzystanie z własnego konta Google Cloud w tym module może wiązać się z dodatkowymi opłatami.
  7. Na kolejnych stronach wykonaj następujące czynności:

    • Zaakceptuj Warunki korzystania z usługi.
    • Nie dodawaj opcji odzyskiwania ani uwierzytelniania dwuskładnikowego (ponieważ konto ma charakter tymczasowy).
    • Nie rejestruj się w bezpłatnych wersjach próbnych.

Poczekaj, aż na karcie otworzy się konsola Google Cloud.

Uwaga: aby wyświetlić menu z listą produktów i usług Google Cloud, w lewym górnym rogu kliknij Menu nawigacyjne. Ikona menu nawigacyjnego

Zadanie 1. Przypinanie projektu do drzewa zasobów BigQuery

  1. Kliknij menu nawigacyjne Ikona menu nawigacyjnego > BigQuery.

Otworzy się okno „Witamy w usłudze BigQuery w Cloud Console”.

Uwaga: zawiera ono link do krótkiego wprowadzenia i informacji o aktualizacjach interfejsu.
  1. Kliknij Gotowe.

  2. Publiczne zbiory danych BigQuery nie są domyślnie wyświetlane. Aby otworzyć projekt zawierający publiczne zbiory danych, skopiuj data-to-insights.

  3. Kliknij + Dodaj > Oznacz projekt według nazwy gwiazdką i wklej nazwę projektu data-to-insights.

  4. Kliknij Oznacz gwiazdką.

Projekt data-to-insights będzie widoczny w sekcji Eksplorator.

Walidator zapytań oraz edytor zapytań BigQuery

W każdej aktywności zawartej w tym module przedstawione są zapytania z częstymi błędami, które wymagają naprawienia. Treść zadań podpowiada, na co należy zwrócić uwagę i jak poprawić składnię, aby uzyskać satysfakcjonujące wyniki.

Aby sprawdzić skuteczność rozwiązania, skopiuj zapytanie i wklej je do edytora zapytań BigQuery. Jeśli zapytanie zawiera błędy, w wierszu z błędem oraz na dole walidatora zapytań pojawi się czerwony wykrzyknik.

Edytor zapytań BigQuery

Jeśli uruchomisz zapytanie z błędami, nie zakończy się ono powodzeniem, a błąd zostanie wyszczególniony w informacjach o zadaniu.

Pole z informacjami o nieudanym zapytaniu

Jeśli w zapytaniu nie ma błędów, w walidatorze zapytań pojawi się zielony znacznik. Gdy zobaczysz zielony znacznik wyboru, kliknij Uruchom, aby uruchomić zapytanie i wyświetlić wyniki.

Zielony znacznik wyboru w walidatorze zapytań

Uwaga: więcej informacji na temat składni znajdziesz w artykule o składni zapytań standardowej wersji SQL (w języku angielskim).

Zadanie 2. Ustalanie całkowitej liczby klientów, którzy ukończyli proces płatności

W tej sekcji Twoim celem jest ułożenie zapytania zwracającego liczbę unikalnych użytkowników, którzy pomyślnie ukończyli proces płatności na Twojej stronie. Dane zgromadzone są w tabeli rev_transactions dostarczonej przez zespół analityków danych. Analitycy zaproponowali też przykładowe zapytania, które mają pomóc Ci rozpocząć analizę, jednak nie masz pewności, czy są one napisane poprawnie.

Korygowanie zapytań zawierających błędy walidatora zapytań, błędy związane z aliasem lub błędy związane z użyciem przecinków

  • Spójrz na widoczne niżej zapytanie i odpowiedz na pytania:
#standardSQL SELECT FROM `data-to-inghts.ecommerce.rev_transactions` LIMIT 1000

  • Może lepsza będzie ta wersja zapytania?
#standardSQL SELECT * FROM [data-to-insights:ecommerce.rev_transactions] LIMIT 1000

  • A co sądzisz o tym zapytaniu opartym na standardowej wersji SQL?
#standardSQL SELECT FROM `data-to-insights.ecommerce.rev_transactions`

  • A teraz? W tym zapytaniu zastosowano kolumnę:
#standardSQL SELECT fullVisitorId FROM `data-to-insights.ecommerce.rev_transactions`

  • A teraz? W tym zapytaniu zawarty jest tytuł strony:
#standardSQL SELECT fullVisitorId hits_page_pageTitle FROM `data-to-insights.ecommerce.rev_transactions` LIMIT 1000

  • A teraz? Dodany został brakujący przecinek.
#standardSQL SELECT fullVisitorId , hits_page_pageTitle FROM `data-to-insights.ecommerce.rev_transactions` LIMIT 1000

Czego się dowiedzieliśmy: zapytanie zwraca wyniki, ale czy masz pewność, że użytkownicy nie zostali policzeni podwójnie? Nawet gdy wyświetlony zostanie tylko 1 wiersz wyników, można poznać odpowiedź na pytanie, ilu unikalnych użytkowników ukończyło proces płatności. W następnej sekcji dowiesz się, jak zagregować uzyskane wyniki.

Korygowanie zapytań zawierających błędy logiczne, dodawanie instrukcji GROUP BY oraz filtrów

  • Opracuj widoczne niżej zapytanie tak, aby odpowiadało na pytanie, ilu unikalnych użytkowników ukończyło proces płatności.
#standardSQL SELECT fullVisitorId , hits_page_pageTitle FROM `data-to-insights.ecommerce.rev_transactions` LIMIT 1000
  • A może tak? Dodano funkcję agregacji COUNT():
#standardSQL SELECT COUNT(fullVisitorId) AS visitor_count , hits_page_pageTitle FROM `data-to-insights.ecommerce.rev_transactions`

  • W kolejnym zapytaniu dodano instrukcje GROUP BY oraz DISTINCT:
#standardSQL SELECT COUNT(DISTINCT fullVisitorId) AS visitor_count , hits_page_pageTitle FROM `data-to-insights.ecommerce.rev_transactions` GROUP BY hits_page_pageTitle

Wyniki Wyniki

Świetnie! Wyniki są prawidłowe, ale wyglądają nieco dziwnie.

  • Dodaj filtr, aby wyniki obejmowały tylko tych użytkowników, którzy dotarli do strony z potwierdzeniem płatności („Checkout Confirmation”):
#standardSQL SELECT COUNT(DISTINCT fullVisitorId) AS visitor_count , hits_page_pageTitle FROM `data-to-insights.ecommerce.rev_transactions` WHERE hits_page_pageTitle = "Checkout Confirmation" GROUP BY hits_page_pageTitle

Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło. Ustalenie całkowitej liczby klientów, którzy ukończyli proces płatności

Zadanie 3. Tworzenie listy miast, z których wykonano największą liczbę transakcji w Twoim sklepie internetowym

Korygowanie kolejności wyników, dodawanie pól obliczeniowych i filtrowanie po usunięciu błędów agregacji

  1. Dokończ częściowo utworzone zapytanie:
SELECT geoNetwork_city, totals_transactions, COUNT( DISTINCT fullVisitorId) AS distinct_visitors FROM `data-to-insights.ecommerce.rev_transactions` GROUP BY

Możliwe rozwiązanie:

#standardSQL SELECT geoNetwork_city, SUM(totals_transactions) AS totals_transactions, COUNT( DISTINCT fullVisitorId) AS distinct_visitors FROM `data-to-insights.ecommerce.rev_transactions` GROUP BY geoNetwork_city
  1. Skoryguj poprzednie zapytanie tak, aby na szczycie listy znajdowały się miasta z największą liczbą transakcji.

Możliwe rozwiązanie:

#standardSQL SELECT geoNetwork_city, SUM(totals_transactions) AS totals_transactions, COUNT( DISTINCT fullVisitorId) AS distinct_visitors FROM `data-to-insights.ecommerce.rev_transactions` GROUP BY geoNetwork_city ORDER BY distinct_visitors DESC
  1. Skoryguj zapytanie, tworząc nowe pole obliczeniowe, w którym dla każdego miasta będzie wyświetlała się średnia liczba produktów w zamówieniu.

Możliwe rozwiązanie:

#standardSQL SELECT geoNetwork_city, SUM(totals_transactions) AS total_products_ordered, COUNT( DISTINCT fullVisitorId) AS distinct_visitors, SUM(totals_transactions) / COUNT( DISTINCT fullVisitorId) AS avg_products_ordered FROM `data-to-insights.ecommerce.rev_transactions` GROUP BY geoNetwork_city ORDER BY avg_products_ordered DESC

Wyniki

Wyniki

Przefiltruj zbiorcze wyniki, tak aby wyświetlały się tylko te miasta, dla których średnia liczba produktów w jednym zamówieniu (avg_products_ordered) jest większa niż 20.

  • Co jest nie tak w widocznym niżej zapytaniu?
#standardSQL SELECT geoNetwork_city, SUM(totals_transactions) AS total_products_ordered, COUNT( DISTINCT fullVisitorId) AS distinct_visitors, SUM(totals_transactions) / COUNT( DISTINCT fullVisitorId) AS avg_products_ordered FROM `data-to-insights.ecommerce.rev_transactions` WHERE avg_products_ordered > 20 GROUP BY geoNetwork_city ORDER BY avg_products_ordered DESC

Możliwe rozwiązanie:

#standardSQL SELECT geoNetwork_city, SUM(totals_transactions) AS total_products_ordered, COUNT( DISTINCT fullVisitorId) AS distinct_visitors, SUM(totals_transactions) / COUNT( DISTINCT fullVisitorId) AS avg_products_ordered FROM `data-to-insights.ecommerce.rev_transactions` GROUP BY geoNetwork_city HAVING avg_products_ordered > 20 ORDER BY avg_products_ordered DESC

Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło. Utworzenie listy miast, z których wykonano największą liczbę transakcji w Twoim sklepie internetowym

Zadanie 4. Ustalanie całkowitej liczby produktów w każdej kategorii

Odnajdywanie najlepiej sprzedających się produktów dzięki zastosowaniu filtra z wartościami NULL

  1. Co jest nie tak w widocznym niżej zapytaniu? Jak możesz je naprawić?
#standardSQL SELECT hits_product_v2ProductName, hits_product_v2ProductCategory FROM `data-to-insights.ecommerce.rev_transactions` GROUP BY 1,2

  1. Co jest nie tak w widocznym niżej zapytaniu?
#standardSQL SELECT COUNT(hits_product_v2ProductName) as number_of_products, hits_product_v2ProductCategory FROM `data-to-insights.ecommerce.rev_transactions` WHERE hits_product_v2ProductName IS NOT NULL GROUP BY hits_product_v2ProductCategory ORDER BY number_of_products DESC

  1. Skoryguj poprzednie zapytanie tak, aby w każdej kategorii liczone były tylko odrębne produkty.

Możliwe rozwiązanie:

#standardSQL SELECT COUNT(DISTINCT hits_product_v2ProductName) as number_of_products, hits_product_v2ProductCategory FROM `data-to-insights.ecommerce.rev_transactions` WHERE hits_product_v2ProductName IS NOT NULL GROUP BY hits_product_v2ProductCategory ORDER BY number_of_products DESC LIMIT 5

Uwaga:
  • (not set) może oznaczać, że produkt nie ma przypisanej kategorii;
  • „${productitem.product.origCatName}” to kod frontendu do renderowania kategorii, który może oznaczać, że skrypt śledzenia Google Analytics uruchamia się przed zakończeniem renderowania strony.
  • Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło. Ustalenie całkowitej liczby produktów w każdej kategorii

    Gratulacje!

    Udało Ci się naprawić błędy zapytań w standardowej wersji SQL w BigQuery. Nieprawidłową składnię zapytań możesz sprawdzić w walidatorze zapytań. Pamiętaj jednak, by wyniki zapytania traktować z pewną dozą nieufności, nawet jeśli zostanie ono wykonane poprawnie.

    Kolejne kroki / Więcej informacji

    Szkolenia i certyfikaty Google Cloud

    …pomogą Ci wykorzystać wszystkie możliwości technologii Google Cloud. Nasze zajęcia obejmują umiejętności techniczne oraz sprawdzone metody, które ułatwią Ci szybką naukę i umożliwią jej kontynuację. Oferujemy szkolenia na poziomach od podstawowego po zaawansowany prowadzone w trybach wirtualnym, na żądanie i na żywo, dzięki czemu możesz dopasować program szkoleń do swojego napiętego harmonogramu. Certyfikaty umożliwią udokumentowanie i potwierdzenie Twoich umiejętności oraz doświadczenia w zakresie technologii Google Cloud.

    Ostatnia aktualizacja instrukcji: 19 stycznia 2024 r.

    Ostatni test modułu: 28 sierpnia 2023 r.

    Copyright 2024 Google LLC. Wszelkie prawa zastrzeżone. Google i logo Google są znakami towarowymi Google LLC. Wszelkie inne nazwy firm i produktów mogą być znakami towarowymi odpowiednich podmiotów, z którymi są powiązane.

    Ta treść jest obecnie niedostępna

    Kiedy dostępność się zmieni, wyślemy Ci e-maila z powiadomieniem

    Świetnie

    Kiedy dostępność się zmieni, skontaktujemy się z Tobą e-mailem