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

場所のカウント関数は、BigQuery で実行される事前定義済みの SQL クエリです。場所のカウント関数は、Places Insights データセットにクエリを実行して正確なカウントと場所 ID を取得する場合におすすめの方法です。データセットに 直接クエリを実行することもできますが、2 つのクエリ方法ではプライバシーのしきい値と検索エリアの処理方法が異なります。

  • 場所のカウント関数 は、0 を含む任意のカウントを返すことができますが、 最小検索エリアは 40.0 メートル × 40.0 メートル(1,600 平方 メートル)に制限されます。また、関数は場所 ID を返します。この ID を使用して個々の場所に関する情報を 検索できます。オプションの日付フィルタを使用して、過去の月次スナップショット全体の過去の POI 分析をサポートします。

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

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

最適な場所のカウント関数を選択する

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 は、次のものに使用できます。

プレイス カウント関数を使用してクエリを実行する

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

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

次に例を示します。

PROJECT_NAME.places_insights___us.PLACES_COUNT_V2

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

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

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

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

デフォルトでは、場所のカウント関数は利用可能な最新のデータ スナップショットにクエリを実行します。 特定の過去の月に存在した場所のデータを分析するには、オプションの 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 を使用してレストランの数とブランドのロケーションをクエリする

次の例では、カスタム入力地理情報テーブル my_search_areasPLACES_COUNT_V2 関数を使用して、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 など)にクエリを実行します。ブランド データセットの詳細については、ブランド データを使用してクエリを作成するをご覧ください。

たとえば、「スターバックス」のブランド 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 の結果の可視化の詳細については、クエリ結果を可視化する をご覧ください

関数の制限事項と要件

プレイスのカウント関数には、次の制限事項と要件があります。

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