Fonction PLACES_COUNT_PER_TYPE_V2

La fonction PLACES_COUNT_PER_TYPE_V2 renvoie une table BigQuery contenant le nombre de lieux et des exemples d'ID de lieux, répartis par type de lieu, pour plusieurs zones géographiques d'entrée. Cette fonction est conçue pour un traitement par lot efficace en acceptant un paramètre de table d'entrée de zones géographiques. Vous fournissez les zones géographiques dans un tableau d'entrée et spécifiez les types de lieux sous forme de tableau.

Syntaxe

SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_PER_TYPE_V2`(
  TABLE input_geographies,
  target_types,
  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.
  • target_types (ARRAY<STRING>) : tableau de chaînes de type de lieu pour lesquelles vous souhaitez obtenir des nombres. Les lieux seront comptabilisés s'ils correspondent à l'un des types listés dans leur tableau types, et pas seulement à primary_type.
  • filters (JSON) : objet JSON contenant des paires clé/valeur pour filtrer davantage les lieux. Consultez Paramètres de filtre.

Schéma de la table de sortie

La fonction PLACES_COUNT_PER_TYPE_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_type STRING Type de lieu représenté par cette ligne à partir du tableau target_types.
place_count INTEGER Nombre de lieux correspondant à place_type et à d'autres filtres dans ou à proximité de la zone géographique.
sample_place_ids ARRAY<STRING> Tableau contenant jusqu'à 250 ID de lieux correspondant aux critères de ce type et de cette zone géographique.

La sortie contiendra une ligne pour chaque combinaison de geo_id et place_type spécifiée dans le tableau target_types, même si le nombre est nul.

Fonctionnement

La fonction traite chaque zone géographique fournie dans le tableau input_geographies. Pour chaque zone géographique, il comptabilise les lieux qui correspondent à l'un des types listés dans le tableau target_types et qui remplissent également toutes les conditions de l'objet JSON filters. Les résultats sont agrégés et répartis par geo_id et par type dans target_types.

Exemple : Compter différents types de restaurants dans les comtés de New York

Cet exemple génère un tableau de dénombrement pour les types "restaurant", "café" et "bar" dans trois comtés de la ville de New York.

SELECT geo_id, input_geography, place_type, place_count
FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_TYPE_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")
  ),
  ['restaurant', 'cafe', 'bar'],  -- target_types
  JSON_OBJECT(
      'business_status', ['OPERATIONAL']
  )
);

Le résultat sera une table de neuf lignes (trois comtés * trois types). Chaque ligne indiquera le nombre d'établissements de type "restaurant", "café" ou "bar" dans chaque comté. Vous pouvez également inclure des exemples d'ID de lieu si vous les ajoutez à votre instruction SELECT.

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

Avantages de l'utilisation de PLACES_COUNT_PER_TYPE_V2

PLACES_COUNT_PER_TYPE_V2 offre plusieurs avantages clés, en particulier par rapport à l'ancienne fonction PLACES_COUNT_PER_TYPE :

  • Traitement par lot des zones géographiques : contrairement à PLACES_COUNT_PER_TYPE qui traite une zone géographique à la fois, PLACES_COUNT_PER_TYPE_V2 accepte un TABLE de zones géographiques d'entrée. Cela vous permet d'analyser et d'obtenir des décomptes spécifiques à un type dans de nombreuses zones géographiques (points, polygones) en une seule requête, au lieu d'effectuer plusieurs appels de fonction.
  • Performances et évolutivité améliorées : en acceptant une entrée de table, PLACES_COUNT_PER_TYPE_V2 peut tirer parti des jointures géospatiales optimisées de BigQuery et des capacités de traitement parallèle pour toutes les zones géographiques fournies simultanément. Cela permet d'améliorer considérablement les performances et l'évolutivité lorsque vous traitez un grand nombre de zones géographiques.
  • Inclure les valeurs nulles : renvoie les lignes avec des valeurs nulles pour les types non trouvés dans une zone spécifique du lot, ce qui garantit un ensemble de résultats complet pour toutes les combinaisons type/zone géographique.