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 khu vực địa lý đầu vào dựa trên các bộ lọc đã chỉ định. Hàm này được thiết kế để xử lý hàng loạt hiệu quả bằng cách chấp nhận tham số bảng đầu vào của các 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 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 bao gồm các cột sau:
    • geo_id (STRING): Giá trị nhận dạng duy nhất cho mỗi 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 khu vực địa lý khác.
  • filters (JSON): Đối tượng JSON chứa các cặp khoá-giá trị để lọc địa điểm. Xem Tham số bộ lọc.

Lược đồ 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 cho khu vực địa lý đầu vào, từ bảng input_geographies.
input_geography GEOGRAPHY Đối tượng GEOGRAPHY ban đầu từ bảng input_geographies.
place_count INTEGER Tổng số địa điểm phù hợp với các bộ lọc.
sample_place_ids ARRAY<STRING> Một mảng có 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 geo đối tượng, hàm này sẽ đếm số địa điểm nằm trong khu vực địa lý (hoặc trong bán kính geography_radius nếu geo là một điểm và bán kính được chỉ định trong filters). Số lượng chỉ bao gồm những địa điểm phù hợp với tất cả các điều kiện được xác định trong đối tượng JSON filters.

Ví dụ: Tính toán 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 tập dữ liệu công khai của Cục điều tra dân số Hoa Kỳ trên BigQuery để lấy ranh giới cho 3 quận ở Thành phố New York: "Queens", "Kings" và "New York". Ranh giới của mỗi quận được chứa 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 giữ geo_idGEOGRAPHY đơ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 nối 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 khu vực địa lý đầu vào mà không bị giới hạn về kích thước tham số JSON duy nhất.
  • 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 phù hợp với 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 khu vực đầu vào, để bạn có thể biết những nơi không có địa điểm.