Fungsi PLACES_COUNT_PER_TYPE_V2

Fungsi PLACES_COUNT_PER_TYPE_V2 menampilkan tabel BigQuery yang berisi jumlah tempat dan contoh ID Tempat, yang dikelompokkan menurut jenis tempat, untuk beberapa geografi input. Fungsi ini dirancang untuk pemrosesan batch 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:
    • geo_id (STRING): ID unik untuk setiap geografi.
    • geo (GEOGRAPHY): Objek GEOGRAPHY BigQuery yang merepresentasikan area. Ini bisa berupa titik, poligon, atau jenis geografi lainnya.
  • target_types (ARRAY<STRING>): Array string jenis tempat yang ingin Anda dapatkan jumlahnya. Tempat akan dihitung jika cocok dengan salah satu jenis yang tercantum dalam array types, bukan hanya primary_type.
  • filters (JSON): Objek JSON yang berisi key-value pair 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, tempat 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 digabungkan dan dikelompokkan menurut setiap geo_id dan setiap jenis di target_types.

Contoh: Menghitung berbagai jenis tempat makan di County NYC

Contoh ini menghasilkan tabel jumlah untuk jenis "restaurant", "cafe", 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 restoran, kafe, atau bar di setiap county. Anda juga dapat menyertakan contoh ID Tempat jika menambahkannya ke pernyataan SELECT.

Hasil untuk fungsi Places Count Per Type di wilayah New York.

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_TYPE yang memproses satu geografi dalam satu waktu, PLACES_COUNT_PER_TYPE_V2 menerima TABLE geografi input. Hal ini memungkinkan Anda menganalisis dan mendapatkan jumlah spesifik per jenis di berbagai geografi (titik, poligon) dalam satu kueri, alih-alih melakukan beberapa panggilan fungsi.
  • Peningkatan Performa dan Skalabilitas: Dengan mengambil input tabel, PLACES_COUNT_PER_TYPE_V2 dapat memanfaatkan gabungan geospasial dan kemampuan pemrosesan paralel 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 yang lengkap untuk semua kombinasi jenis-geografi.