Fonction PLACES_COUNT_V2

La fonction PLACES_COUNT_V2 renvoie une table BigQuery contenant le nombre de lieux et des exemples d'ID de lieux pour plusieurs zones géographiques d'entrée en fonction des filtres spécifiés. Cette fonction est conçue pour un traitement par lot efficace. Elle accepte un paramètre de table d'entrée de zones géographiques, ce qui vous permet d'analyser de nombreuses zones d'intérêt dans une seule requête en fournissant les zones géographiques via une table d'entrée.

Syntaxe

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

Paramètres

  • PROJECT_NAME : le nom de votre projet Google Cloud
  • LINKED_DATASET_NAME : nom de l'ensemble de données BigQuery contenant les fonctions Places Insights (par exemple, places_insights___us).
  • input_geographies : table BigQuery contenant les zones géographiques à analyser. Ce tableau doit inclure les colonnes suivantes :
    • geo_id (STRING) : identifiant unique de chaque zone géographique.
    • geo (GEOGRAPHY) : objet BigQuery GEOGRAPHY représentant la zone. Il peut s'agir d'un point, d'un polygone ou d'un autre type de zone géographique.
  • filters (JSON) : objet JSON contenant des paires clé/valeur pour filtrer les lieux. Consultez Paramètres de filtre.

Schéma de la table de sortie

La fonction PLACES_COUNT_V2 renvoie une table avec les colonnes suivantes :

Nom de la colonne Type de données Description
geo_id STRING Identifiant unique de la zone géographique d'entrée, issu de la table input_geographies.
input_geography GEOGRAPHY Objet GEOGRAPHY d'origine de la table input_geographies.
place_count INTEGER Nombre total de lieux correspondant aux filtres.
sample_place_ids ARRAY<STRING> Tableau contenant jusqu'à 250 ID de lieux correspondant aux critères.

Fonctionnement

La fonction traite chaque ligne du tableau input_geographies. Pour chaque objet geo, il compte le nombre de lieux qui se trouvent dans la zone géographique (ou dans le geography_radius si le geo est un point et que le rayon est spécifié dans filters). Le nombre n'inclut que les lieux qui correspondent à toutes les conditions définies dans l'objet JSON filters.

Exemple : Calculer le nombre de restaurants dans trois comtés de la ville de New York

Cet exemple génère un tableau du nombre de restaurants ouverts dans trois comtés de la ville de New York.

Cet exemple utilise l'ensemble de données public BigQuery United States Census Bureau Data pour obtenir les limites de trois comtés de la ville de New York : "Queens", "Kings" et "New York". Les limites de chaque comté sont indiquées dans la colonne county_geom.

Nous créons d'abord une table temporaire new_york_counties pour contenir geo_id et GEOGRAPHY simplifié pour chaque comté.

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

Le tableau de réponse comportera trois lignes, une pour chaque comté, indiquant le geo_id, le input_geography, le place_count et le sample_place_ids des restaurants opérationnels.

Résultats de la fonction &quot;Nombre de lieux&quot; dans les comtés de New York.

Avantages de l'utilisation de PLACES_COUNT_V2

PLACES_COUNT_V2 offre des avantages considérables par rapport à PLACES_COUNT et PLACES_COUNT_PER_GEO :

  • Traitement par lot : analysez efficacement des milliers de zones géographiques personnalisées dans une seule requête en fournissant plusieurs entrées géographiques dans un tableau.
  • Performances : utilise les jointures géospatiales optimisées de BigQuery, qui offrent des avantages considérables en termes de vitesse pour les grands ensembles de données.
  • Scalabilité : conçu pour gérer un grand nombre de zones géographiques d'entrée sans les limites de la taille d'un seul paramètre JSON.
  • Comptes zéro inclus : PLACES_COUNT_V2 renvoie une ligne pour chaque geo_id fourni dans la table d'entrée. Si aucun lieu ne correspond aux critères d'une zone géographique donnée, la valeur place_count sera de 0. Vous êtes ainsi sûr d'obtenir un résultat pour chaque zone de saisie et de voir où les lieux sont absents.