Hàm PLACES_COUNT_V2

Hàm PLACES_COUNT_V2 trả về một bảng BigQuery chứa số lượng địa điểm và mã địa điểm mẫu cho nhiều địa điểm đầu vào dựa trên các bộ lọc được chỉ định. Hàm này được thiết kế để xử lý hàng loạt một cách hiệu quả bằng cách chấp nhận một tham số bảng đầu vào về khu vực địa lý, cho phép bạn phân tích nhiều khu vực mà bạn quan tâm trong một truy vấn duy nhất bằng cách cung cấp các khu vực địa lý thông qua một bảng đầu vào.

Cú pháp

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

Thông số

  • PROJECT_NAME: Tên dự án trên đám mây của bạn trên Google Cloud.
  • LINKED_DATASET_NAME: Tên của tập dữ liệu BigQuery chứa các hàm Thông tin chi tiết về địa điểm (ví dụ: places_insights___us).
  • input_geographies: Bảng BigQuery chứa các khu vực địa lý cần phân tích. Bảng này phải có các cột sau:
    • geo_id (STRING): Giá trị nhận dạng duy nhất cho từng khu vực địa lý.
    • geo (GEOGRAPHY): Đối tượng GEOGRAPHY của BigQuery đại diện cho khu vực. Đây có thể là một điểm, đa giác hoặc loại địa lý khác.
  • filters (JSON): Một đối tượng JSON chứa các cặp khoá-giá trị để lọc các địa điểm. Xem Tham số bộ lọc.

Giản đồ bảng đầu ra

Hàm PLACES_COUNT_V2 trả về một bảng có các cột sau:

Tên cột Loại dữ liệu Mô tả
geo_id STRING Giá trị nhận dạng duy nhất của địa lý đầu vào, từ bảng input_geographies.
input_geography GEOGRAPHY Đối tượng GEOGRAPHY ban đầu trong bảng input_geographies.
place_count INTEGER Tổng số địa điểm phù hợp với bộ lọc.
sample_place_ids ARRAY<STRING> Một mảng gồm tối đa 250 mã địa điểm phù hợp với tiêu chí.

Cách hoạt động

Hàm này xử lý từng hàng trong bảng input_geographies. Đối với mỗi đối tượng geo, đối tượng này sẽ đếm số lượng địa điểm nằm trong khu vực địa lý (hoặc trong geography_radius nếu geo là một điểm và bán kính được chỉ định trong filters). Số lượng này chỉ bao gồm những địa điểm đáp ứng tất cả các điều kiện được xác định trong đối tượng JSON filters.

Ví dụ: Tính số lượng nhà hàng ở 3 quận của Thành phố New York

Ví dụ này tạo ra một bảng về số lượng nhà hàng đang hoạt động ở 3 quận của Thành phố New York.

Ví dụ này sử dụng Dữ liệu của Cục Thống kê Dân số Hoa Kỳ tập dữ liệu công khai BigQuery để lấy ranh giới của 3 quận ở Thành phố New York: "Queens", "Kings" và "New York". Ranh giới của mỗi quận nằm trong cột county_geom.

Trước tiên, chúng ta tạo một bảng tạm thời new_york_counties để lưu trữ geo_idGEOGRAPHY được đơn giản hoá cho mỗi quận.

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

Bảng phản hồi sẽ có 3 hàng, mỗi hàng cho một quận, cho biết geo_id, input_geography, place_countsample_place_ids của các nhà hàng đang hoạt động.

Kết quả cho hàm Places Count ở các quận của New York.

Lợi ích của việc sử dụng PLACES_COUNT_V2

PLACES_COUNT_V2 mang lại những lợi thế đáng kể so với cả PLACES_COUNTPLACES_COUNT_PER_GEO:

  • Xử lý hàng loạt: Phân tích hiệu quả hàng nghìn khu vực địa lý tuỳ chỉnh trong một truy vấn bằng cách cung cấp nhiều dữ liệu đầu vào về khu vực địa lý trong một bảng.
  • Hiệu suất: Sử dụng các phép kết hợp không gian địa lý được tối ưu hoá của BigQuery, mang lại lợi thế đáng kể về tốc độ cho các tập dữ liệu lớn.
  • Khả năng mở rộng: Được thiết kế để xử lý một số lượng lớn các vị trí địa lý đầu vào mà không bị giới hạn về kích thước tham số JSON đơn lẻ.
  • Bao gồm số lượng bằng 0: PLACES_COUNT_V2 trả về một hàng cho mỗi geo_id được cung cấp trong bảng đầu vào. Nếu không có địa điểm nào đáp ứng tiêu chí cho một khu vực địa lý nhất định, thì place_count sẽ là 0. Điều này đảm bảo bạn có kết quả cho từng vùng đầu vào, nhờ đó, bạn có thể biết những nơi không có.