Jumlah POI kueri

Fungsi PLACES_COUNT_V2 menampilkan tabel BigQuery yang berisi jumlah tempat dan ID Tempat sampel untuk beberapa geografi input berdasarkan filter yang ditentukan. Fungsi ini dirancang untuk batch processing yang efisien dengan menerima parameter tabel input geografi, sehingga Anda dapat menganalisis banyak area yang diminati dalam satu kueri dengan memberikan geografi melalui tabel input.

Sintaksis

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

Parameter

  • PROJECT_NAME: Nama project Google Cloud Anda.
  • LINKED_DATASET_NAME: Nama set data BigQuery yang berisi fungsi Places Insights (misalnya, places_insights___us).
  • input_geographies: Tabel BigQuery yang berisi geografi untuk dianalisis. Tabel ini harus menyertakan kolom berikut:
    • geo_id (STRING): ID unik untuk setiap geografi.
    • geo (GEOGRAPHY): Objek GEOGRAPHY BigQuery yang mewakili area. Objek ini dapat berupa titik, poligon, atau jenis geografi lainnya.
  • filters (JSON): Objek JSON yang berisi pasangan nilai kunci untuk memfilter tempat. Lihat Parameter Filter.

Skema Tabel Output

Fungsi PLACES_COUNT_V2 menampilkan tabel dengan kolom berikut:

Nama Kolom Jenis Data Deskripsi
geo_id STRING ID unik untuk geografi input, dari tabel input_geographies.
input_geography GEOGRAPHY Objek GEOGRAPHY asli dari tabel input_geographies.
place_count INTEGER Total jumlah tempat yang cocok dengan filter.
sample_place_ids ARRAY<STRING> Array hingga 250 ID Tempat yang cocok dengan kriteria.

Cara kerjanya

Fungsi ini memproses setiap baris dalam tabel input_geographies. Untuk setiap geo objek, fungsi ini menghitung jumlah tempat yang berada dalam geografi (atau dalam geography_radius jika geo adalah titik dan radius ditentukan dalam filters). Jumlah tersebut hanya mencakup tempat yang cocok dengan semua kondisi yang ditentukan dalam objek JSON filters.

Contoh: Menghitung jumlah restoran di tiga wilayah New York City

Contoh ini membuat tabel jumlah restoran yang beroperasi di tiga wilayah New York City.

Contoh ini menggunakan set data publik BigQuery United States Census Bureau Data untuk mendapatkan batas tiga wilayah di New York City: "Queens", "Kings", dan "New York". Batas setiap wilayah terdapat di kolom county_geom.

Pertama, kita membuat tabel sementara new_york_counties untuk menyimpan geo_id dan GEOGRAPHY yang disederhanakan untuk setiap wilayah.

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

Tabel respons akan memiliki tiga baris, satu untuk setiap wilayah, yang menampilkan geo_id, input_geography, place_count, dan sample_place_ids restoran yang beroperasi.

Hasil untuk fungsi Jumlah Tempat di wilayah New York.

Manfaat menggunakan PLACES_COUNT_V2

PLACES_COUNT_V2 menawarkan manfaat signifikan dibandingkan PLACES_COUNT dan PLACES_COUNT_PER_GEO:

  • Pemrosesan Batch: Menganalisis ribuan geografi kustom secara efisien dalam satu kueri dengan menyediakan beberapa input geografi dalam tabel.
  • Performa: Menggunakan gabungan geospatial BigQuery yang dioptimalkan yang menawarkan keunggulan kecepatan yang signifikan untuk set data besar.
  • Skalabilitas: Dirancang untuk menangani sejumlah besar geografi input tanpa batasan ukuran parameter JSON tunggal.
  • Jumlah Nol Disertakan: PLACES_COUNT_V2 menampilkan baris untuk setiap geo_id yang disediakan dalam tabel input. Jika tidak ada tempat yang cocok dengan kriteria untuk geografi tertentu, place_count akan menjadi 0. Hal ini memastikan Anda memiliki hasil untuk setiap area input, sehingga Anda dapat melihat tempat yang tidak ada.
  • Snapshot historis: Membuat kueri data jumlah tempat dari bulan tertentu menggunakan filter snapshot_date opsional.

Contoh: Membuat kueri jumlah POI dari bulan sebelumnya

Contoh ini menunjukkan cara membuat kueri jumlah POI historis untuk lokasi tertentu menggunakan parameter snapshot_date. Contoh ini memfilter hasil untuk tempat dengan fasilitas pengisian daya kendaraan listrik yang ditentukan oleh max_ev_max_charge_rate_kw bersama dengan regular_opening_hours tertentu.

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(
    'geography_radius', 5000,
    'snapshot_date', '2026-01', -- Target snapshot month (YYYY-MM)
    'max_ev_max_charge_rate_kw', 30.0, -- Filter by EV charge rate in kW
    'regular_opening_hours', JSON_OBJECT(
      'monday', [JSON_OBJECT('start_time', '09:00', 'end_time', '12:00')]
    )
  )
);