Fungsi PLACES_COUNT_PER_TYPE_V2 menampilkan tabel BigQuery yang berisi jumlah tempat dan ID Tempat sampel, yang dipecah menurut jenis tempat, untuk beberapa geografi input. Fungsi ini dirancang untuk batch processing yang efisien dengan
menerima parameter tabel input
geografi. Anda memberikan geografi melalui tabel input dan menentukan jenis tempat sebagai array.
Sintaksis
SELECT * FROM `PROJECT_NAME.LINKED_DATASET_NAME.PLACES_COUNT_PER_TYPE_V2`( TABLE input_geographies, target_types, 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 yang akan dianalisis. Tabel ini harus menyertakan kolom berikut:target_types(ARRAY<STRING>): Array string jenis tempat yang jumlahnya ingin Anda dapatkan. Tempat akan dihitung jika cocok dengan salah satu jenis yang tercantum dalam arraytypes, bukan hanyaprimary_type.filters(JSON): Objek JSON yang berisi pasangan nilai kunci untuk pemfilteran tambahan tempat. Lihat Parameter Filter.
Skema Tabel Output
Fungsi PLACES_COUNT_PER_TYPE_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_type |
STRING | Jenis tempat dari array target_types yang diwakili oleh baris ini. |
place_count |
INTEGER | Jumlah tempat yang cocok dengan place_type dan filter lainnya di dalam atau di dekat geografi. |
sample_place_ids |
ARRAY<STRING> | Array hingga 250 ID Tempat yang cocok dengan kriteria untuk jenis dan geografi ini. |
Output akan berisi baris untuk setiap kombinasi geo_id dan place_type yang ditentukan dalam array target_types, meskipun jumlahnya nol.
Cara kerjanya
Fungsi ini memproses setiap geografi yang disediakan dalam tabel input_geographies.
Untuk setiap geografi, fungsi ini menghitung tempat yang cocok dengan salah satu jenis yang tercantum dalam array target_types dan juga memenuhi semua kondisi dalam objek JSON filters. Hasilnya diagregasi dan dipecah menurut setiap geo_id dan setiap jenis di target_types.
Contoh: Menghitung berbagai jenis tempat makan di Wilayah NYC
Contoh ini menghasilkan tabel jumlah untuk jenis "restoran", "kafe", dan "bar" di tiga wilayah New York City.
SELECT geo_id, input_geography, place_type, place_count FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_TYPE_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") ), ['restaurant', 'cafe', 'bar'], -- target_types JSON_OBJECT( 'business_status', ['OPERATIONAL'] ) );
Hasilnya akan berupa tabel dengan 9 baris (3 wilayah * 3 jenis). Setiap baris akan menampilkan jumlah tempat "restoran", "kafe", atau "bar" di setiap wilayah. Anda juga dapat menyertakan ID Tempat sampel jika menambahkannya ke pernyataan SELECT.

Manfaat Menggunakan PLACES_COUNT_PER_TYPE_V2
PLACES_COUNT_PER_TYPE_V2 menawarkan beberapa keuntungan utama, terutama jika
dibandingkan dengan fungsi PLACES_COUNT_PER_TYPE yang lebih lama:
- Pemrosesan Batch Geografi: Tidak seperti
PLACES_COUNT_PER_TYPEyang memproses satu geografi dalam satu waktu,PLACES_COUNT_PER_TYPE_V2menerimaTABLEgeografi input. Hal ini memungkinkan Anda menganalisis dan mendapatkan jumlah khusus jenis di berbagai geografi (titik, poligon) dalam satu kueri, bukan melakukan beberapa panggilan fungsi. - Peningkatan Performa dan Skalabilitas: Dengan mengambil input tabel,
PLACES_COUNT_PER_TYPE_V2dapat memanfaatkan kemampuan pemrosesan paralel dan gabungan geospatial BigQuery yang dioptimalkan di semua geografi yang disediakan secara bersamaan. Hal ini menghasilkan peningkatan performa yang signifikan dan skalabilitas yang lebih baik saat menangani sejumlah besar geografi. - Jumlah Nol Disertakan: Menampilkan baris dengan jumlah 0 untuk jenis yang tidak ditemukan di area tertentu dalam batch, sehingga memastikan kumpulan hasil lengkap untuk semua kombinasi jenis-geografi.
- Snapshot historis: Data jumlah tempat kueri dari bulan tertentu menggunakan filter
snapshot_dateopsional.
Contoh: Mengkueri jumlah POI historis menurut jenis dengan filter tertentu
Contoh ini menunjukkan cara menemukan jumlah untuk jenis tempat tertentu, seperti stasiun pengisian daya kendaraan listrik, menggunakan parameter snapshot_date untuk mengambil jumlah untuk bulan sebelumnya. Contoh ini menerapkan filter tambahan untuk regular_opening_hours guna mencari hanya tempat yang buka sepanjang hari pada hari libur, dan ketersediaan pengisian daya kendaraan listrik (minimal 10 konektor tersedia) yang ditentukan oleh min_ev_charge_connector_count.
SELECT * FROM `PROJECT_NAME.places_insights___us.PLACES_COUNT_PER_TYPE_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") ), ['electric_vehicle_charging_station'], -- target_types array JSON_OBJECT( 'geography_radius', 10000, 'snapshot_date', '2026-01', -- Target snapshot month (YYYY-MM) 'min_ev_charge_connector_count', 10, -- Look for a min amount of chargers 'regular_opening_hours', JSON_OBJECT( 'saturday', [JSON_OBJECT('start_time', '00:00', 'end_time', '23:59')], 'sunday', [JSON_OBJECT('start_time', '00:00', 'end_time', '23:59')] ) ) );