Funkcja PLACES_COUNT_V2 zwraca tabelę BigQuery zawierającą liczbę miejsc i przykładowe identyfikatory miejsc dla wielu lokalizacji wejściowych na podstawie określonych filtrów.
Ta funkcja jest przeznaczona do wydajnego przetwarzania wsadowego, ponieważ akceptuje parametr tabeli wejściowej z obszarami geograficznymi. Umożliwia to analizowanie wielu obszarów zainteresowania w jednym zapytaniu przez podanie obszarów geograficznych w tabeli wejściowej.
Składnia
SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_V2`( TABLE input_geographies, filters )
Parametry
PROJECT_NAME: nazwa Twojego projektu Google Cloud.LINKED_DATASET_NAME: nazwa zbioru danych BigQuery zawierającego funkcje Statystyk miejsc (np.places_insights___us).input_geographies: tabela BigQuery zawierająca obszary geograficzne do analizy. Ta tabela musi zawierać te kolumny:filters(JSON): obiekt JSON zawierający pary klucz-wartość do filtrowania miejsc. Zobacz Parametry filtra.
Schemat tabeli wyjściowej
Funkcja PLACES_COUNT_V2 zwraca tabelę z tymi kolumnami:
| Nazwa kolumny | Typ danych | Opis |
|---|---|---|
geo_id |
STRING | Unikalny identyfikator geograficzny danych wejściowych z tabeli input_geographies. |
input_geography |
GEOGRAPHY | Oryginalny obiekt GEOGRAPHY z tabeli input_geographies. |
place_count |
INTEGER | Łączna liczba miejsc pasujących do filtrów. |
sample_place_ids |
ARRAY<STRING> | Tablica zawierająca maksymalnie 250 identyfikatorów miejsc, które spełniają kryteria. |
Jak to działa
Funkcja przetwarza każdy wiersz w tabeli input_geographies. W przypadku każdego obiektu geo zlicza liczbę miejsc znajdujących się w danym obszarze geograficznym (lub w obszarze geography_radius, jeśli geo jest punktem, a promień jest określony w obiekcie filters). Liczba obejmuje tylko te miejsca, które spełniają wszystkie warunki określone w obiekcie JSON filters.
Przykład: obliczanie liczby restauracji w 3 okręgach Nowego Jorku
Ten przykład generuje tabelę z liczbą działających restauracji w 3 okręgach Nowego Jorku.
W tym przykładzie używamy danych z amerykańskiego Biura Spisu Ludności w publicznym zbiorze danych BigQuery, aby uzyskać granice 3 okręgów w Nowym Jorku: „Queens”, „Kings” i „New York”. Granice każdego hrabstwa znajdują się w kolumnie county_geom.
Najpierw tworzymy tabelę tymczasową new_york_counties, w której przechowujemy geo_id i uproszczone GEOGRAPHY dla każdego hrabstwa.
SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_V2`( ( SELECT county_name AS geo_id, ST_SIMPLIFY(county_geom, 100) AS geo FROM `bigquery-public-data.geo_us_boundaries.counties` WHERE state_fips_code = "36" -- New York State AND county_name IN ("Queens", "Kings", "New York") ), JSON_OBJECT( 'types', ["restaurant"], 'business_status', ['OPERATIONAL'] ) );
Tabela odpowiedzi będzie zawierać 3 wiersze, po jednym dla każdego hrabstwa, z informacjami o geo_id, input_geography, place_count i sample_place_ids działających restauracji.

Zalety korzystania z PLACES_COUNT_V2
PLACES_COUNT_V2 ma znaczące zalety w porównaniu z PLACES_COUNT i PLACES_COUNT_PER_GEO:
- Przetwarzanie wsadowe: efektywnie analizuj tysiące niestandardowych regionów geograficznych w ramach jednego zapytania, podając wiele danych wejściowych dotyczących regionów geograficznych w tabeli.
- Wydajność: wykorzystuje zoptymalizowane złączenia geoprzestrzenne BigQuery, które zapewniają znaczną przewagę pod względem szybkości w przypadku dużych zbiorów danych.
- Skalowalność: usługa została zaprojektowana tak, aby obsługiwać dużą liczbę danych geograficznych bez ograniczeń związanych z rozmiarem pojedynczego parametru JSON.
- Uwzględniono zera:
PLACES_COUNT_V2zwraca wiersz dla każdegogeo_idpodanego w tabeli wejściowej. Jeśli w danym regionie nie ma miejsc spełniających kryteria, wartośćplace_countwyniesie 0. Dzięki temu w każdym obszarze wpisywania otrzymasz wynik, więc będziesz wiedzieć, gdzie brakuje miejsc.