开始使用地点数据分析

地点计数函数是在 BigQuery 中运行的预定义 SQL 查询,是查询地点数据分析数据集以检索确切计数和地点 ID 的推荐方式。虽然您也可以直接 查询数据集,但这两种查询方法 处理隐私阈值和搜索区域的方式不同:

  • 地点计数函数 可以返回任何计数(包括 0),但强制执行 40.0 米 x 40.0 米(1600 平方米)的最小搜索区域(40.0 米 x 40.0 米 / 1,600 平方米)。函数还会返回地点 ID,可用于查找有关各个地点的信息。

  • 地点数据集查询 只能返回 5 及以上的计数(省略 0-4 的低计数以保留差分隐私),但对搜索区域的大小没有限制。

除非您需要执行复杂的空间分析,否则我们建议您先使用 地点计数函数,例如 PLACES_COUNT_PER_H3。 它可提供标准化网格单元的即时空间密度洞见,返回地点 ID 以进行实况检查,并且专为地理空间特征工程和机器学习模型而构建。

选择最佳地点计数函数

地点数据分析支持多种空间函数。为了优化查询执行、并行处理和批量可伸缩性,我们建议使用以下函数:

  • PLACES_COUNT_PER_H3:返回每个 H3 单元格的地点计数的 BigQuery 表。建议将此函数用于区域密度分析和等值线热图。
  • PLACES_COUNT_V2: 返回包含地点计数和示例地点 ID 的表。此函数 接受包含输入地理位置的 表 形参 。通过直接传递整个表,BigQuery 执行引擎可以分配工作负载并并行处理空间交集,从而实现高效的批量处理,以进行大规模分析。
  • PLACES_COUNT_PER_TYPE_V2: 返回按地点类型分类的地点计数和示例地点 ID 表。与 PLACES_COUNT_V2 类似,将输入地理位置作为表形参传递可让 BigQuery 在大型数据集中以原生方式并行处理空间交集。

除了地点计数之外,这些函数还会针对响应的每个元素返回最多 250 个 地点 ID

地点 ID 可用于:

使用地点计数函数执行查询

请使用以下格式调用函数:[project name (optional)].[table name].[function name]

如果您在设置地点数据分析时更改了关联的数据集名称,请使用自定义名称,而不是默认表名称。您还可以选择性地添加项目名称。如果未添加项目名称,查询会默认使用活跃项目。

例如:

PROJECT_NAME.places_insights___us.PLACES_COUNT_V2

使用 JSON_OBJECT 将实参传递给函数。

使用区分大小写的形参过滤查询结果

地点计数函数支持许多过滤条件来优化搜索。这些形参(例如 price_leveltypes)区分大小写,并且必须与形参名称完全匹配。如需查看选项的完整列表,请参阅 过滤条件形参参考文档

在下一个示例中,您将应用过滤条件,使用 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,返回纽约市帝国大厦和时代广场 1000 米范围内正常营业的餐厅数量:

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

响应是一个 BigQuery 表,其中包含 geo_id、地理位置、计数和地点 ID 示例。

纽约市的 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 过滤条件中使用这些 ID,如以下查询所示:

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_COUNT_PER_H3 参考文档)。 如需详细了解如何直观呈现地点数据分析结果,请参阅直观呈现 查询结果

函数限制和要求

地点计数函数有以下限制和要求:

  • 这些函数仅支持 COUNT 洞见。
  • 必须使用 40.0 米 x 40.0 米(1600 平方米)的最小搜索区域(40.0 米 x 40.0 米 / 1,600 平方米)。
  • 形参输入大小限制 :作为形参传递给函数的 JSON 对象的大小上限为 1 MB。此限制的影响取决于函数版本:
    • 对于 V2 函数(PLACES_COUNT_V2PLACES_COUNT_PER_TYPE_V2),此限制仅适用于过滤条件 JSON 对象。 由于地理位置是使用表形参单独提供的,因此这些函数可以扩缩到更大的输入地理位置数量,而不会达到 JSON 大小限制。
    • 对于 PLACES_COUNT_PER_H3PLACES_COUNTPLACES_COUNT_PER_TYPEPLACES_COUNT_PER_GEO,此限制适用于整个 JSON 对象, 包括所有地理位置定义。这可能会限制在单个调用中可以处理的地理位置数量。
  • 不支持按地点 ID、电动汽车充电选项或地址组成部分进行过滤。
  • 您只能访问已订阅的城市和国家/地区的地点计数函数。如需了解 数据集访问权限,请参阅设置 地点数据分析
  • 过滤条件形参(例如 geographytypes)区分大小写,并且必须与形参名称完全匹配,否则查询将失败。