জায়গার ধরন অনুযায়ী POI-এর সংখ্যা কোয়েরি করুন

PLACES_COUNT_PER_TYPE_V2 ফাংশনটি একটি BigQuery টেবিল রিটার্ন করে, যাতে একাধিক ইনপুট ভৌগোলিক অঞ্চলের জন্য, জায়গার ধরন অনুযায়ী ভাগ করা, জায়গার সংখ্যা এবং স্যাম্পেল স্থান আইডি থাকে। এই ফাংশনটি ভৌগোলিক অবস্থানের একটি ইনপুট টেবিল প্যারামিটার গ্রহণ করে দক্ষ ব্যাচ প্রসেসিংয়ের জন্য ডিজাইন করা হয়েছে। আপনি ইনপুট টেবিলের মাধ্যমে ভৌগোলিক অঞ্চল প্রদান করেন এবং জায়গার ধরন অ্যারে হিসেবে উল্লেখ করেন।

সিন্ট্যাক্স

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

প্যারামিটারগুলি

  • PROJECT_NAME: আপনার Google Cloud প্রোজেক্টের নাম।
  • LINKED_DATASET_NAME: Places Insights ফাংশন (যেমন, places_insights___us) সহ BigQuery ডেটাসেটের নাম।
  • input_geographies: BigQuery টেবিল যাতে বিশ্লেষণ করার জন্য ভৌগোলিক ডেটা আছে। এই টেবিলে নিম্নলিখিত কলামগুলি অবশ্যই থাকতে হবে:
    • geo_id (STRING): প্রতিটি ভৌগোলিক অঞ্চলের জন্য একটি অনন্য শনাক্তকারী।
    • geo (GEOGRAPHY): BigQuery GEOGRAPHY অবজেক্ট যা এলাকাকে দেখায়। এটি পয়েন্ট, পলিগন বা অন্য কোনও ভৌগোলিক প্রকার হতে পারে।
  • target_types (ARRAY<STRING>): আপনি যে জায়গার ধরন সংক্রান্ত স্ট্রিংয়ের গণনা পেতে চান তার একটি অ্যারে। জায়গাগুলি গণনা করা হবে যদি সেগুলি তাদের types অ্যারেতে তালিকাভুক্ত প্রকারের যেকোনও একটির সাথে মেলে, শুধু primary_type-এর সাথে নয়।
  • filters (JSON): জায়গার অতিরিক্ত ফিল্টারিংয়ের জন্য কী-ভ্যালু পেয়ার সহ JSON অবজেক্ট। ফিল্টার প্যারামিটার দেখুন।

আউটপুট টেবিল স্কিমা

PLACES_COUNT_PER_TYPE_V2 ফাংশন নিম্নলিখিত কলাম সহ একটি টেবিল ফেরত দেয়:

কলামের নাম ডেটার ধরন বিবরণ
geo_id STRING input_geographies টেবিল থেকে ইনপুট করা ভৌগোলিক অবস্থানের অনন্য শনাক্তকারী।
input_geography GEOGRAPHY input_geographies টেবিল থেকে আসল GEOGRAPHY অবজেক্ট।
place_type STRING এই সারিটি target_types অ্যারে থেকে জায়গার ধরন দেখায়।
place_count INTEGER ভৌগোলিক সীমার মধ্যে বা কাছাকাছি place_type এবং অন্যান্য ফিল্টারের সাথে মিলে যাওয়া জায়গার সংখ্যা।
sample_place_ids ARRAY<STRING> সর্বাধিক ২৫০টি স্থান আইডির একটি অ্যারে যা এই ধরন এবং ভৌগোলিক অবস্থানের মানদণ্ডের সাথে মেলে।

আউটপুটে target_types অ্যারেতে উল্লেখ করা geo_id ও place_type-এর প্রতিটি কম্বিনেশনের জন্য একটি করে সারি থাকবে, এমনকি গণনা শূন্য হলেও।

এটি কীভাবে কাজ করে

ফাংশনটি input_geographies টেবিলে দেওয়া প্রতিটি ভৌগোলিক অঞ্চল প্রসেস করে। প্রতিটি ভৌগোলিক অঞ্চলের জন্য, এটি এমন জায়গা গণনা করে যা target_types অ্যারেতে তালিকাভুক্ত যেকোনও ধরনের সাথে মেলে এবং filters JSON অবজেক্টের সব শর্ত পূরণ করে। ফলাফলগুলি একত্রিত করা হয় এবং প্রতিটি geo_id এবং target_types-এর প্রতিটি প্রকার দ্বারা বিভক্ত করা হয়।

উদাহরণ: NYC কাউন্টিতে বিভিন্ন ধরনের রেস্তোরাঁর সংখ্যা গণনা করুন

এই উদাহরণটি নিউ ইয়র্ক সিটির তিনটি কাউন্টি জুড়ে "রেস্তোরাঁ", "ক্যাফে" এবং "বার" ধরনের গণনার একটি সারণী তৈরি করে।

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

ফলাফলটি ৯টি সারি (৩টি কাউন্টি * ৩টি ধরন) সহ একটি টেবিল হবে। প্রতিটি সারিতে প্রতিটি কাউন্টির মধ্যে "রেস্তোরাঁ", "ক্যাফে" বা "বার" প্রতিষ্ঠানের সংখ্যা দেখানো হবে। এছাড়াও, আপনি নিজের SELECT স্টেটমেন্টে যোগ করলে, স্যাম্পেল স্থান আইডি অন্তর্ভুক্ত করতে পারবেন।

নিউ ইয়র্ক কাউন্টিতে Places Count Per Type ফাংশনের ফলাফল।

PLACES_COUNT_PER_TYPE_V2 ব্যবহারের সুবিধা

PLACES_COUNT_PER_TYPE_V2 বেশ কিছু মূল সুবিধা অফার করে, বিশেষ করে যখন পুরনো PLACES_COUNT_PER_TYPE ফাংশনের সাথে তুলনা করা হয়:

  • ভৌগোলিক অঞ্চলের ব্যাচ প্রসেসিং: PLACES_COUNT_PER_TYPE-এর মতো নয়, যা একবারে একটি ভৌগোলিক অঞ্চল প্রসেস করে, PLACES_COUNT_PER_TYPE_V2 ইনপুট ভৌগোলিক অঞ্চলের TABLE গ্রহণ করে। এটি আপনাকে একাধিক ফাংশন কল করার পরিবর্তে, একটি কোয়েরিতে অসংখ্য ভৌগোলিক অবস্থান (পয়েন্ট, পলিগন) জুড়ে ধরন-নির্দিষ্ট গণনা বিশ্লেষণ করতে এবং পেতে দেয়।
  • উন্নত পারফর্ম্যান্স ও স্কেলেবিলিটি: টেবিল ইনপুট নেওয়ার মাধ্যমে, PLACES_COUNT_PER_TYPE_V2 BigQuery-এর অপ্টিমাইজ করা জিওস্পেশিয়াল জয়েন এবং প্রদান করা সব ভৌগোলিক লোকেশন জুড়ে একইসাথে প্যারালাল প্রসেসিংয়ের সুবিধা নিতে পারে। এর ফলে পারফর্ম্যান্স উল্লেখযোগ্যভাবে উন্নত হয় এবং অনেক বেশি সংখ্যক ভৌগোলিক লোকেশন নিয়ে কাজ করার সময় আরও ভালোভাবে স্কেল করা যায়।
  • শূন্য গণনা অন্তর্ভুক্ত: ব্যাচের মধ্যে নির্দিষ্ট এলাকায় খুঁজে না পাওয়া ধরনের জন্য ০ গণনা সহ সারি রিটার্ন করে, সব ধরন-ভৌগোলিক কম্বিনেশনের জন্য সম্পূর্ণ ফলাফল সেট নিশ্চিত করে।
  • ঐতিহাসিক স্ন্যাপশট: ঐচ্ছিক snapshot_date ফিল্টার ব্যবহার করে নির্দিষ্ট মাসের জায়গার সংখ্যা সংক্রান্ত ডেটা কোয়েরি করুন।

যেমন: নির্দিষ্ট ফিল্টার সহ ধরন অনুযায়ী ঐতিহাসিক POI সংখ্যা কোয়েরি করা

এই উদাহরণে দেখানো হয়েছে যে কীভাবে নির্দিষ্ট ধরনের জায়গার সংখ্যা খুঁজে পাওয়া যায়, যেমন EV চার্জিং স্টেশন, snapshot_date প্যারামিটার ব্যবহার করে গত মাসের সংখ্যা খুঁজে পাওয়া। এটি regular_opening_hours-এর জন্য অতিরিক্ত ফিল্টার প্রয়োগ করে যাতে শুধুমাত্র সপ্তাহান্তে সারাদিন খোলা থাকে এমন জায়গাগুলি এবং min_ev_charge_connector_count দ্বারা নির্দিষ্ট করা EV চার্জিংয়ের উপলভ্যতা (অন্তত ১০টি কানেক্টর উপলভ্য) খোঁজা যায়।

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