PLACES_COUNT_V2 関数

PLACES_COUNT_V2 関数は、指定されたフィルタに基づいて、複数の入力地域における場所の数とサンプル場所 ID を含む BigQuery テーブルを返します。この関数は、地域の入力テーブル パラメータを受け入れて効率的なバッチ処理を行うように設計されています。入力テーブルで地域を指定することで、1 つのクエリで多くの対象地域を分析できます。

構文

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

パラメータ

  • PROJECT_NAME: Google Cloud Platform プロジェクトの名前です。
  • LINKED_DATASET_NAME: Places Insights 関数を含む BigQuery データセットの名前(例: places_insights___us)。
  • input_geographies: 分析する地域を含む BigQuery テーブル。このテーブルには、次の列が必要です。
    • geo_idSTRING): 各地域の固有の識別子。
    • geoGEOGRAPHY): エリアを表す BigQuery GEOGRAPHY オブジェクト。これは、ポイント、ポリゴン、その他の地理情報タイプにできます。
  • filtersJSON): 場所をフィルタリングするための Key-Value ペアを含む JSON オブジェクト。フィルタ パラメータをご覧ください。

出力テーブル スキーマ

PLACES_COUNT_V2 関数は、次の列を含むテーブルを返します。

列名 データ型 説明
geo_id STRING input_geographies テーブルの入力地理情報の一意の識別子。
input_geography GEOGRAPHY input_geographies テーブルの元の GEOGRAPHY オブジェクト。
place_count INTEGER フィルタに一致する場所の合計数。
sample_place_ids ARRAY<STRING> 条件に一致するプレイス ID の配列(最大 250 個)。

仕組み

この関数は input_geographies テーブルの各行を処理します。各 geo オブジェクトについて、地理的範囲内(または geo がポイントで、半径が filters で指定されている場合は geography_radius 内)にある場所の数をカウントします。カウントには、filters JSON オブジェクトで定義されたすべての条件に一致する場所のみが含まれます。

例: ニューヨーク市の 3 つの郡にあるレストランの数を計算する

この例では、ニューヨーク市の 3 つの郡で営業しているレストランの数を表すテーブルを生成します。

この例では、米国国勢調査局のデータの BigQuery 一般公開データセットを使用して、ニューヨーク市の 3 つの郡(クイーンズ、キングス、ニューヨーク)の境界を取得します。各郡の境界は county_geom 列に含まれています。

まず、各郡の geo_id と簡略化された GEOGRAPHY を保持する一時テーブル new_york_counties を作成します。

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

レスポンス テーブルには、郡ごとに 1 つの行が表示され、営業中のレストランの geo_idinput_geographyplace_countsample_place_ids が表示されます。

ニューヨーク州の郡における Places Count 関数の結果。

PLACES_COUNT_V2 を使用するメリット

PLACES_COUNT_V2 には、PLACES_COUNTPLACES_COUNT_PER_GEO の両方と比較して、次のような大きなメリットがあります。

  • バッチ処理: テーブルで複数の地理情報入力を指定することで、1 つのクエリで数千のカスタム地理情報を効率的に分析します。
  • パフォーマンス: BigQuery の最適化された地理空間結合を利用して、大規模なデータセットで大幅な速度向上を実現します。
  • スケーラビリティ: 単一の JSON パラメータ サイズの制限なしに、多数の入力地理情報を処理するように設計されています。
  • ゼロのカウントを含む: PLACES_COUNT_V2 は、入力テーブルで指定されたすべての geo_id の行を返します。特定の地域で条件に一致する場所がない場合、place_count は 0 になります。これにより、各入力エリアの結果が返されるため、場所が欠落している箇所を確認できます。