Função PLACES_COUNT_V2

A função PLACES_COUNT_V2 retorna uma tabela do BigQuery com contagens de lugares e IDs de lugar de amostra para várias regiões geográficas de entrada com base em filtros especificados. Essa função foi projetada para o processamento em lote eficiente. Ela aceita um parâmetro de tabela de entrada de regiões geográficas, permitindo analisar muitas áreas de interesse em uma única consulta ao fornecer as regiões em uma tabela de entrada.

Sintaxe

SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_V2`(
  TABLE input_geographies,
  filters
)

Parâmetros

  • PROJECT_NAME: o nome do seu projeto do Google Cloud;
  • LINKED_DATASET_NAME: o nome do conjunto de dados do BigQuery que contém as funções do Insights de Lugares (por exemplo, places_insights___us).
  • input_geographies: uma tabela do BigQuery com as regiões geográficas a serem analisadas. Essa tabela precisa incluir as seguintes colunas:
    • geo_id (STRING): um identificador exclusivo para cada região geográfica.
    • geo (GEOGRAPHY): o objeto GEOGRAPHY do BigQuery que representa a área. Pode ser um ponto, um polígono ou outro tipo de geografia.
  • filters (JSON): um objeto JSON que contém pares de chave-valor para filtrar os lugares. Consulte Parâmetros de filtro.

Esquema da tabela de saída

A função PLACES_COUNT_V2 retorna uma tabela com as seguintes colunas:

Nome da coluna Tipo de dados Descrição
geo_id STRING O identificador exclusivo da geografia de entrada, da tabela input_geographies.
input_geography GEOGRAPHY O objeto GEOGRAPHY original da tabela input_geographies.
place_count INTEGER O número total de lugares que correspondem aos filtros.
sample_place_ids ARRAY<STRING> Uma matriz de até 250 IDs de lugar que correspondem aos critérios.

Como funciona

A função processa cada linha na tabela input_geographies. Para cada objeto geo, ele conta o número de lugares que estão dentro da geografia (ou dentro do geography_radius se o geo for um ponto e o raio for especificado no filters). A contagem inclui apenas os lugares que correspondem a todas as condições definidas no objeto JSON filters.

Exemplo: calcular o número de restaurantes em três condados da cidade de Nova York

Este exemplo gera uma tabela com o número de restaurantes operacionais em três condados da cidade de Nova York.

Este exemplo usa o conjunto de dados públicos do BigQuery United States Census Bureau Data para extrair os limites de três condados na cidade de Nova York: "Queens", "Kings" e "New York". Os limites de cada município estão na coluna county_geom.

Primeiro, criamos uma tabela temporária new_york_counties para armazenar o geo_id e o GEOGRAPHY simplificado de cada município.

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']
  )
);

A tabela de resposta terá três linhas, uma para cada município, mostrando o geo_id, input_geography, place_count e sample_place_ids de restaurantes em operação.

Resultados da função &quot;Contagem de lugares&quot; nos condados de Nova York.

Benefícios de usar PLACES_COUNT_V2

O PLACES_COUNT_V2 oferece vantagens significativas em relação ao PLACES_COUNT e ao PLACES_COUNT_PER_GEO:

  • Processamento em lote:analise milhares de regiões geográficas personalizadas de forma eficiente em uma única consulta fornecendo várias entradas de região em uma tabela.
  • Performance:usa junções geoespaciais otimizadas do BigQuery, oferecendo vantagens significativas de velocidade para conjuntos de dados grandes.
  • Escalonabilidade:projetado para processar um grande número de regiões de entrada sem as limitações de tamanho de um único parâmetro JSON.
  • Contagens de zero incluídas:PLACES_COUNT_V2 retorna uma linha para cada geo_id fornecido na tabela de entrada. Se nenhum lugar corresponder aos critérios de uma determinada região geográfica, o place_count será 0. Isso garante que você tenha um resultado para cada área de entrada, assim é possível saber onde os lugares estão ausentes.