プレイス インサイトを使ってみる

Places Count 関数は、BigQuery で実行される事前定義された SQL クエリです。Places Insights データセットをクエリして正確な件数とプレイス ID を取得する際におすすめの方法です。データセットに直接クエリを実行することもできますが、2 つのクエリ方法ではプライバシーのしきい値と検索領域が処理されます。

  • Places Count 関数は、0 を含む任意の数を返すことができますが、40.0 m × 40.0 m(1,600 m2)の最小検索エリアを適用します。また、個々の場所に関する情報を検索するために使用できるプレイス ID も返します。さらに、オプションの日付フィルタを使用して、過去の月次スナップショットにわたる過去の POI 分析をサポートします。

  • 場所データセット クエリは、5 以上のカウントのみを返すことができます(差分プライバシーを維持するため、0 ~ 4 の低いカウントは省略されます)。ただし、検索エリアのサイズに制限はありません。

複雑な空間分析を行う必要がない限り、PLACES_COUNT_PER_H3 などの Places Count 関数から始めることをおすすめします。標準化されたグリッドセル全体で空間密度の分析情報を即座に提供し、グラウンド トゥルース検査用のプレイス ID を返します。地理空間特徴量エンジニアリングと ML モデル専用に構築されています。

最適な Places Count 関数を選択する

Places Insights は、いくつかの空間関数をサポートしています。クエリ実行、並列処理、バッチ スケーラビリティを最適化するには、次の関数を使用することをおすすめします。

  • PLACES_COUNT_PER_H3: H3 セルあたりの場所数の BigQuery テーブルを返します。この関数は、地域密度分析とコロプレス ヒートマップにおすすめです。
  • PLACES_COUNT_V2: 場所の数とサンプルのプレイス ID を含むテーブルを返します。この関数は、入力地理を含むテーブル パラメータを受け入れます。テーブル全体を直接渡すことで、BigQuery 実行エンジンはワークロードを分散し、空間交差を並列で処理できるため、大規模な分析で非常に効率的なバッチ処理が可能になります。
  • PLACES_COUNT_PER_TYPE_V2: 場所のタイプ別に分類された、場所の数とサンプル プレイス ID のテーブルを返します。PLACES_COUNT_V2 と同様に、入力地理をテーブル パラメータとして渡すと、BigQuery は大規模なデータセットにわたって空間交差をネイティブに並列化できます。
  • PLACES_COUNT_CHANGE: 指定された 2 か月間の場所の数と、追加および削除されたプレイス ID のテーブルを返します。PLACES_COUNT_V2 と同様に、入力地理をテーブル パラメータとして渡すと、BigQuery は大規模なデータセットにわたって空間交差をネイティブに並列化できます。

これらの関数は、場所の数に加えて、レスポンスの要素ごとに最大 250 個のプレイス ID も返します。

プレイス ID は、次のサービスで使用できます。

Places Count 関数を使用してクエリを実行する

関数を呼び出すには、[project name (optional)].[table name].[function name] の形式を使用します。

Places Insights の設定時にリンクされたデータセット名を変更した場合は、デフォルトのテーブル名ではなく、カスタム名を使用します。必要に応じて、プロジェクト名を含めることもできます。指定されていない場合、クエリはデフォルトでアクティブなプロジェクトになります。

次に例を示します。

PROJECT_NAME.places_insights___us.PLACES_COUNT_V2

JSON_OBJECT を使用して、関数に引数を渡します。

大文字と小文字を区別するパラメータを使用してクエリ結果をフィルタする

Places Count 関数は、検索を絞り込むための多くのフィルタをサポートしています。これらのパラメータ(price_level や types など)では大文字と小文字が区別され、パラメータ名と完全に一致する必要があります。オプションの詳細なリストについては、フィルタ パラメータのリファレンスをご覧ください。

snapshot_date を使用して過去のスナップショットをクエリする

デフォルトでは、Places Count 関数は、利用可能な最新のデータ スナップショットをクエリします。過去の特定の月に存在していた場所データを分析するには、オプションの snapshot_date パラメータを JSON_OBJECT に追加します。

  • 形式: YYYY-MM(例: '2026-07')。
  • デフォルト: 省略すると、関数は最新のスナップショットを自動的にクエリします。

次の例では、2026 年 7 月のスナップショットに記録されている、検索エリア周辺のレストランの数をクエリします。

SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_V2`(
  TABLE `PROJECT_NAME.YOUR_DATASET.my_search_areas`,
  JSON_OBJECT(
      'geography_radius', 1000, -- Radius in meters
      'business_status', ['OPERATIONAL'],
      'types', ["restaurant"],
      'snapshot_date', '2026-07' -- Optional historical snapshot month
  )
);

次の例では、PLACES_COUNT_V2 関数を使用して、ユーザーの評価、価格帯、営業状況、レストランが犬を許可しているかどうかに基づいて検索を制限するフィルタを適用します。

まず、入力地理テーブルを使用するか、選択した地理を含むテーブルを準備します。

-- Create a table for the input geographies
CREATE TABLE `PROJECT_NAME.YOUR_DATASET.my_search_areas` AS (
  SELECT
    '1' AS geo_id, -- Unique identifier
    ST_GEOGPOINT(-73.9857, 40.7484) AS geo -- Empire State Building
  UNION ALL
  SELECT
    '2' AS geo_id, -- Unique identifier
    ST_GEOGPOINT(-73.9851, 40.7580) AS geo -- Times Square
);

次に、テーブルとフィルタを含む JSON オブジェクトを指定して PLACES_COUNT_V2 を呼び出します。検索半径は JSON フィルタに含まれ、my_search_areas テーブルの各ポイントに適用されます。

SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_V2`(
  TABLE `PROJECT_NAME.YOUR_DATASET.my_search_areas`,
  JSON_OBJECT(
      'geography_radius', 1000, -- Radius in meters around each point in 'geo'
      'business_status', ['OPERATIONAL'],
      'types', ["restaurant"],
      'min_rating', 1.3,
      'price_level', ['PRICE_LEVEL_INEXPENSIVE', 'PRICE_LEVEL_MODERATE'],
      'allows_dogs', TRUE
      )
);

例: PLACES_COUNT_V2 を使用してレストランの数とブランドの場所をクエリする

次の例では、PLACES_COUNT_V2 関数とカスタム入力地理テーブル my_search_areas を使用して、2026 年 7 月にニューヨーク市のエンパイア ステート ビルディングとタイムズ スクエアから 1,000 メートル以内にある営業中のレストランの数を返します。

SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_V2`(
  TABLE `PROJECT_NAME.YOUR_DATASET.my_search_areas`,
  JSON_OBJECT(
      'geography_radius', 1000, -- Radius in meters
      'business_status', ['OPERATIONAL'],
      'types', ["restaurant"],
      'snapshot_date', '2026-07'
      )
);

レスポンスは、geo_id、地域、カウント、プレイス ID のサンプルを含む BigQuery テーブルです。

ニューヨーク市での Places Count 関数の結果。

次の例では、PLACES_COUNT_V2 関数を使用して特定のブランド ID でフィルタします。この例では、ブランド ID "1413758728321880760" を使用してスターバックスの店舗をフィルタします。

フィルタするブランドのブランド ID を確認するには、データセットの brands テーブル(places_insights___us.brands など)をクエリします。ブランド データセットの詳細については、ブランドデータを使用してクエリを作成するをご覧ください。

たとえば、「Starbucks」のブランド ID を確認するには、次のようにします。

SELECT id, name
FROM `PROJECT_NAME.places_insights___us.brands`
WHERE name = "Starbucks"

ブランド ID を取得したら、次のクエリに示すように、brand_ids フィルタで使用できます。

SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_V2`(
  TABLE `PROJECT_NAME.YOUR_DATASET.my_search_areas`,
  JSON_OBJECT(
      'geography_radius', 1000, -- Radius in meters
      'business_status', ['OPERATIONAL'],
      'brand_ids', ["1413758728321880760"]
      )
);

Google Cloud ツールを使用してクエリ出力を可視化する

分析ツールとビジネス インテリジェンス ツールを使用すると、BigQuery データから分析情報を得ることができます。BigQuery は、Google とサードパーティのデータ可視化ツールをサポートしています。これらのツールを使用して、Places Insights データに対する関数の結果を分析できます。

関数の結果を可視化する例については、PLACES_COUNT_PER_H3 リファレンス内の結果を可視化するをご覧ください。Places Insights の結果を可視化する方法については、クエリ結果を可視化するをご覧ください。

関数の制限事項と要件

Places Count 関数には、次の制限事項と要件があります。

  • この関数は COUNT 分析情報のみをサポートしています。
  • 40.0 m × 40.0 m(1,600 m2)以上の検索エリアが必要です。
  • パラメータ入力サイズの上限: 関数にパラメータとして渡される JSON オブジェクトは 1 MB に制限されています。この上限の影響は、関数のバージョンによって異なります。
    • V2 関数(PLACES_COUNT_V2、PLACES_COUNT_PER_TYPE_V2、PLACES_COUNT_CHANGE)の場合、この上限はフィルタ JSON オブジェクトにのみ適用されます。地理はテーブル パラメータを使用して個別に指定されるため、これらの関数は JSON サイズの上限に達することなく、はるかに多くの入力地理にスケーリングできます。
    • PLACES_COUNT_PER_H3、PLACES_COUNT、PLACES_COUNT_PER_TYPE、PLACES_COUNT_PER_GEO の場合、この上限は、すべての地域定義を含む JSON オブジェクト全体に適用されます。これにより、1 回の呼び出しで処理できる地域の数が制限される場合があります。
  • プレイス ID または住所コンポーネントによるフィルタリングはサポートされていません。
  • Places Count 関数にアクセスできるのは、登録した都市と国のみです。データセットへのアクセスについては、Places Insights を設定するをご覧ください。
  • フィルタ パラメータ(geography や types など)では大文字と小文字を区別し、パラメータ名と完全に一致する必要があります。一致しない場合、クエリは失敗します。