Funkcja PLACES_COUNT_V2

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:
    • geo_id (STRING): unikalny identyfikator każdego regionu.
    • geo (GEOGRAPHY): obiekt GEOGRAPHY BigQuery reprezentujący obszar. Może to być punkt, wielokąt lub inny typ geograficzny.
  • 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ścipublicznym 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_countsample_place_ids działających restauracji.

Wyniki funkcji Places Count w przypadku hrabstw w stanie Nowy Jork.

Zalety korzystania z PLACES_COUNT_V2

PLACES_COUNT_V2 ma znaczące zalety w porównaniu z PLACES_COUNTPLACES_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_V2 zwraca wiersz dla każdego geo_id podanego w tabeli wejściowej. Jeśli w danym regionie nie ma miejsc spełniających kryteria, wartość place_count wyniesie 0. Dzięki temu w każdym obszarze wpisywania otrzymasz wynik, więc będziesz wiedzieć, gdzie brakuje miejsc.