রাস্তা সংক্রান্ত সঞ্চিত ডেটা টাইম সিরিজ ডেটা হিসেবে প্রদান করা হয়, যার মধ্যে এগুলি অন্তর্ভুক্ত:
- ট্রিপের সময়কাল
- স্পিড রিডিং ইন্টারভাল (SRI)
- রুটের জ্যামিতি
BigQuery সেট-আপ করুন
BigQuery-তে আপনার রাস্তার ডেটা অ্যাক্সেস করার আগে, আপনাকে অবশ্যই Google Cloud প্রোজেক্ট সেট-আপ করতে হবে এবং ডেটা এক্সচেঞ্জে সাবস্ক্রাইব করতে হবে।
পূর্বশর্ত
আপনার Google Cloud প্রোজেক্ট ও অ্যাকাউন্টে নিম্নলিখিত কনফিগারেশন আছে কিনা তা নিশ্চিত করুন:
- BigQuery API চালু করুন। নির্দেশাবলীর জন্য, Google Cloud কনসোল ব্যবহার করে সর্বজনীন ডেটাসেট কোয়েরি করুন নিবন্ধটি দেখুন।
- Analytics Hub API চালু করুন। Analytics Hub API দেখুন।
- প্রয়োজনীয় IAM ভূমিকা মঞ্জুর করুন। সাবস্ক্রাইবার টাস্ক পারফর্ম করতে এবং ডেটাসেট তৈরি করতে আপনার অ্যাকাউন্টে নিম্নলিখিত ভূমিকা আছে কিনা তা নিশ্চিত করুন:
- Analytics Hub সাবস্ক্রাইবার
(
roles/analyticshub.subscriber)- BigQuery ব্যবহারকারী
(
roles/bigquery.user)
- BigQuery ব্যবহারকারী
(
আপনার ডেটা এক্সচেঞ্জে সাবস্ক্রাইব করুন
BigQuery-তে (Analytics Hub) ব্যক্তিগত ডেটা এক্সচেঞ্জের মাধ্যমে আপনার রাস্তার ডেটা আপনার সাথে শেয়ার করা হয়। আপনার ডেটা অ্যাক্সেস করার জন্য Google পার্টনারের থেকে আপনি একটি নির্দিষ্ট সাবস্ক্রাইব লিঙ্ক পাবেন। এই ডেটাসেট নিম্নলিখিত নামকরণ কনভেনশন মেনে চলে:
historical_roads_data_PROJECT_NUMBER.
আপনার ডেটা সাবস্ক্রাইব করতে:
- আপনার Google পার্টনারের দেওয়া সাবস্ক্রিপশন লিঙ্কে ক্লিক করুন। এই লিঙ্কে ক্লিক করলে আপনাকে সরাসরি Google Cloud কনসোলের ডেটা এক্সচেঞ্জে নিয়ে যাওয়া হবে।
- Google Cloud কনসোলে, ডেটা এক্সচেঞ্জের বিবরণ পর্যালোচনা করুন।
- ডায়ালগে সাবস্ক্রাইব করুন বোতামে ক্লিক করুন।
- সাবস্ক্রিপশন সম্পূর্ণ হয়ে গেলে, লিঙ্ক করা ডেটাসেট Google Cloud কনসোলের BigQuery এক্সপ্লোরার প্যানেলে দেখা যায়। আপনার SQL কোয়েরিতে ডেটা অ্যাক্সেস করতে, আপনি এখন এক্সপ্লোরার প্যানেলে দেখানো টেবিলের নাম ব্যবহার করতে পারবেন।
BigQuery টেবিল
আপনার বেছে নেওয়া রুটের সঞ্চিত রোড ডেটা Google-এর মালিকানাধীন ক্লাউড প্রোজেক্টের একটি বিচ্ছিন্ন BigQuery ডেটাসেটের অধীনে হোস্ট করা হয়। এটি আপনার সাথে শেয়ার করা হয় BigQuery শেয়ারিংয়ে (Analytics Hub) শুধুমাত্র আপনার জন্য তৈরি করা একটি ব্যক্তিগত ডেটা এক্সচেঞ্জের মাধ্যমে। ডেটা অ্যাক্সেস করতে, আপনাকে ডেটা এক্সচেঞ্জে সাবস্ক্রাইব করতে হবে এবং আপনার Google Cloud প্রোজেক্টের অধীনে একটি লিঙ্ক করা ডেটাসেট তৈরি করতে হবে।
শেয়ার করা BigQuery ডেটাসেটে কয়েকটি BigQuery টেবিল অন্তর্ভুক্ত থাকে যা Google-এর মাধ্যমে সংজ্ঞায়িত ও তৈরি করা হয়। প্রতিটি টেবিলের বিবরণ নিচে দেওয়া হল।
historical_travel_time টেবিল
BigQuery টেবিল historical_travel_time-এর স্কিমা নিচে দেওয়া হল:
| নাম | মোড | ধরন | বিবরণ |
|---|---|---|---|
| selected_route_id | নালেবেল | STRING | রুটের selected_route_id |
| display_name | নালেবেল | STRING | রুটের ডিসপ্লে নাম |
| record_time | নালেবেল | টাইমস্ট্যাম্প | রুট ডেটা গণনা করার টাইমস্ট্যাম্প |
| duration_in_seconds | নালেবেল | ফ্লোট | ট্রাফিক-অ্যাওয়ার রুট ডিউরেশন। has_road_closure, true হলে (NULL) বাদ দেওয়া হয়েছে। |
| static_duration_in_seconds | নালেবেল | ফ্লোট | রুটের ট্রাফিক-অজানা সময়সীমা |
| route_geometry | নালেবেল | GEOGRAPHY | রুটের ট্রাফিক-অ্যাওয়ার পলিলাইন জিওমেট্রি |
| road_segment_ids | রিপিট করা হয়েছে | STRING | রুটের সাথে রাস্তার অংশ, যা স্থান আইডি হিসেবে দেখানো হয় |
| has_road_closure | নালেবেল | বুলিয়ান | রুটে সম্পূর্ণ রাস্তা বন্ধ আছে কিনা। true-এর সময়,
duration_in_seconds বাদ দেওয়া হয়েছে (NULL) কারণ
রুটটি দুর্গম। NULL ভ্যালু থেকে বোঝা যায় যে রাস্তা
বন্ধ থাকার তথ্য নির্ধারণ করা যায়নি। |
সারণীর আচরণ ও তথ্য
- টেবিলটি দিন অনুযায়ী ভাগ করা হয়েছে এবং প্রতিটি ভাগের জন্য ১০ বছরের মেয়াদ শেষ হওয়ার সময় সেট করা আছে।
- ব্যাচে লেখা লেটেস্ট ট্রাফিক ডেটা সহ প্রতি ঘণ্টায় টেবিল আপডেট করা হয়।
- Roads Selection API-তে নতুন রুট তৈরি করা হলে, এই টেবিলে ডেটা উপলভ্য হতে ১ ঘণ্টা পর্যন্ত অপেক্ষা করতে হতে পারে।
- Roads Selection API থেকে কোনও রুট মুছে ফেলা হলে, এই টেবিলে সেই রুটের জন্য কোনও নতুন ডেটা লেখা হয় না। তবে, পুরনো ডেটা মেয়াদ শেষ না হওয়া পর্যন্ত থেকে যায়।
- রুটের সাথে থাকা রাস্তার অংশ টোপোলজিক্যাল ক্রম অনুসরণ করে এবং সবসময় কানেক্ট করা থাকে।
has_road_closureফ্ল্যাগটি Google Maps-এ সম্পূর্ণ রাস্তা বন্ধ থাকার স্ট্যাটাসের সাথে সামঞ্জস্যপূর্ণসাথে মেলে।
recent_roads_data টেবিল
মনে রাখবেন: আপনার চুক্তিতে রিয়েল-টাইম রাস্তার ডেটা অন্তর্ভুক্ত থাকলে তবেই এই টেবিল উপলভ্য হবে।
historical_travel_time-এর থেকে আলাদা, এই টেবিলে অফসেট-ভিত্তিক
স্পিড রিডিং ইন্টারভাল
(speed_reading_offsets) এবং লিগ্যাসি কোঅর্ডিনেট-ভিত্তিক স্পিড রিডিং ইন্টারভাল
(speed_reading_intervals) থাকে। BigQuery-তে স্কিমা এখানে দেওয়া হল:
| নাম | মোড | ধরন | বিবরণ |
|---|---|---|---|
| selected_route_id | নালেবেল | STRING | রুটের selected_route_id |
| display_name | নালেবেল | STRING | রুটের ডিসপ্লে নাম |
| record_time | নালেবেল | টাইমস্ট্যাম্প | রুট ডেটা গণনা করার টাইমস্ট্যাম্প |
| duration_in_seconds | নালেবেল | ফ্লোট | ট্রাফিক-অ্যাওয়ার রুট ডিউরেশন। has_road_closure, true হলে (NULL) বাদ দেওয়া হয়েছে। |
| static_duration_in_seconds | নালেবেল | ফ্লোট | রুটের ট্রাফিক-অজানা সময়সীমা |
| route_geometry | নালেবেল | GEOGRAPHY | রুটের ট্রাফিক-অ্যাওয়ার পলিলাইন জিওমেট্রি |
| speed_reading_intervals | রিপিট করা হয়েছে | রেকর্ড করুন | লিগ্যাসি কোঅর্ডিনেট-ভিত্তিক স্পিড রিডিং ইন্টারভাল। ৯ নভেম্বর, ২০২৬ বা তার পরে
পপুলেট করা বন্ধ হয়ে যেতে পারে। পরিবর্তে
speed_reading_offsets ব্যবহার করুন। স্পিড রিডিং ইন্টারভাল
দেখুন। |
| speed_reading_intervals.interval_coordinates | রিপিট করা হয়েছে | GEOGRAPHY | লিগ্যাসি। ৯ নভেম্বর, ২০২৬ বা তার পরে পপুলেট হওয়া বন্ধ হয়ে যেতে পারে। পরিবর্তে
speed_reading_offsets ব্যবহার করুন। এই ব্যবধানের জন্য
জ্যামিতি |
| speed_reading_intervals.speed | নালেবেল | STRING | লিগ্যাসি। ৯ নভেম্বর, ২০২৬ বা তার পরে পপুলেট হওয়া বন্ধ হয়ে যেতে পারে। পরিবর্তে
speed_reading_offsets ব্যবহার করুন। এই ইন্টারভ্যালের জন্য
স্পিডের ক্লাসিফিকেশন। সম্ভাব্য ভ্যালু: NORMAL, SLOW, TRAFFIC_JAM. এই
পুরনো ফিল্ডে, খুব বেশি ট্রাফিক জ্যাম (গাঢ় লাল) TRAFFIC_JAM হিসেবে
রিপোর্ট করা হয়; TRAFFIC_JAM_HEAVY কখনও ব্যবহার করা হয় না। |
| road_segment_ids | রিপিট করা হয়েছে | STRING | রুটের সাথে রাস্তার অংশ, যা স্থান আইডি হিসেবে দেখানো হয় |
| speed_reading_offsets | রিপিট করা হয়েছে | রেকর্ড করুন | অফসেট-ভিত্তিক স্পিড রিডিং ইন্টারভাল যা রুট জুড়ে ট্রাফিক ঘনত্ব
দেখায়; প্রতিটি ইন্টারভাল রুটের শুরু থেকে দূরত্ব অফসেট দ্বারা
চিহ্নিত করা হয়। has_road_closure
true হলে বাদ দেওয়া হয়। স্পিড রিডিং ইন্টারভাল
দেখুন। |
| speed_reading_offsets.start_offset | নালেবেল | INTEGER | ইন্টারভ্যালের শুরুর (অন্তর্ভুক্ত) জন্য রুটের শুরু থেকে মিটারে দূরত্বের অফসেট |
| speed_reading_offsets.end_offset | নালেবেল | INTEGER | ইন্টারভ্যালের শেষের জন্য মিটারে রুটের শুরু থেকে দূরত্বের অফসেট (এক্সক্লুসিভ; পরবর্তী ইন্টারভ্যালের start_offset-এর
সমান) |
| speed_reading_offsets.speed | নালেবেল | STRING | এই ইন্টারভ্যালের জন্য গতির শ্রেণীবিন্যাস, Google Maps ট্রাফিক লেয়ারের রঙের সাথে অ্যালাইন করা হয়েছে। সম্ভাব্য ভ্যালু: NORMAL (সবুজ), SLOW (হলুদ), TRAFFIC_JAM (লাল), TRAFFIC_JAM_HEAVY (গাঢ় লাল, ৮ অক্টোবর, ২০২৬ থেকে উপলভ্য) |
| has_road_closure | নালেবেল | বুলিয়ান | রুটে সম্পূর্ণ রাস্তা বন্ধ আছে কিনা। যখন true,
duration_in_seconds এবং speed_reading_offsets
বাদ দেওয়া হয় কারণ রুটটি দুর্গম। NULL ভ্যালু
দেখানোর অর্থ হল রাস্তা বন্ধের তথ্য নির্ধারণ করা যায়নি। |
সারণীর আচরণ ও তথ্য
- টেবিলটি দিন অনুযায়ী ভাগ করা হয়েছে এবং প্রতিটি ভাগের জন্য ৬০ দিনের মেয়াদ শেষ হওয়ার সময় সেট করা আছে।
- ব্যাচে লেখা লেটেস্ট ট্রাফিক ডেটা সহ প্রতি ঘণ্টায় টেবিল আপডেট করা হয়।
- Roads Selection API-তে নতুন রুট তৈরি করা হলে, এই টেবিলে ডেটা উপলভ্য হতে ১ ঘণ্টা পর্যন্ত অপেক্ষা করতে হতে পারে।
- Roads Selection API থেকে কোনও রুট মুছে দেওয়া হলে, এই রুটের জন্য এই টেবিলে কোনও নতুন ডেটা লেখা হবে না। তবে, পুরনো ডেটা মেয়াদ শেষ না হওয়া পর্যন্ত থেকে যায়।
- রুটের সাথে থাকা রাস্তার অংশ টোপোলজিক্যাল ক্রম অনুসরণ করে এবং সবসময় কানেক্ট করা থাকে।
- ৮ অক্টোবর, ২০২৬ বা তার পরে রেকর্ড করা সারির জন্য
speed_reading_offsetsকলামটি ভরাট করা হয়েছে। আগের সারিতে খালি অ্যারে আছে। - ৯ নভেম্বর, ২০২৬ বা তারপরে লিগ্যাসি
speed_reading_intervalsকলামে ডেটা দেখানো বন্ধ হয়ে যেতে পারে। এর পরিবর্তেspeed_reading_offsetsব্যবহার করুন। has_road_closureফ্ল্যাগটি Google Maps-এ সম্পূর্ণ রাস্তা বন্ধ থাকার স্ট্যাটাসের সাথে সামঞ্জস্যপূর্ণসাথে মেলে।
routes_status টেবিল
টেবিলে বেছে নেওয়া রুটের মেটাডেটা ও স্ট্যাটাস সংক্রান্ত তথ্য রয়েছে। এর লক্ষ্য হল সব রুট ও স্ট্যাটাস দেখার আরও সহজ উপায় প্রদান করা। ডেটা ফিল্টার করার জন্য এটি অন্য দুটি টেবিলের সাথে যুক্ত করা যেতে পারে। BigQuery-তে স্কিমা এখানে দেওয়া হল:
| নাম | মোড | ধরন | বিবরণ |
|---|---|---|---|
| selected_route_id | নালেবেল | STRING | রুটের selected_route_id |
| display_name | নালেবেল | STRING | রুটের ডিসপ্লে নাম |
| স্ট্যাটাস* | নালেবেল | STRING | রুটের স্ট্যাটাস |
| validation_error | নালেবেল | STRING | রুটের যাচাইকরণ সংক্রান্ত সমস্যা |
| low_road_usage_start_time | নালেবেল | টাইমস্ট্যাম্প | পুনরায় যাচাই করার সময়, যে সময়ে রুটে প্রথমবার কম ট্রাফিক দেখা গেছে। এটি VALIDATION_ERROR_LOW_ROAD_USAGE-এর সাথে যুক্ত। |
| route_attributes | নালেবেল | STRING | বেছে নেওয়া রুটের জন্য কাস্টম অ্যাট্রিবিউট |
| dynamic_routing | নালেবেল | বুলিয়ান | রুটটি ডায়নামিক (true) নাকি নির্দিষ্ট (false) তা দেখায়।
dynamicRouting দেখুন। |
| উৎস | নালেবেল | GEOGRAPHY | রুটের শুরুর ওয়েপয়েন্ট |
| গন্তব্য | নালেবেল | GEOGRAPHY | রুটের গন্তব্যস্থলের ওয়েপয়েন্ট |
| ইন্টারমিডিয়েট | রিপিট করা হয়েছে | GEOGRAPHY | রুটের মধ্যবর্তী ওয়েপয়েন্ট |
| static_route_geometry | নালেবেল | GEOGRAPHY | ওয়েপয়েন্ট থেকে লাইভ ট্রাফিক ছাড়া গণনা করা স্ট্যাটিক রুটের পলিলাইন জিওমেট্রি |
| road_segment_ids | রিপিট করা হয়েছে | STRING | লাইভ ট্রাফিক ছাড়াই গণনা করা স্ট্যাটিক রুট বরাবর রাস্তার অংশ, প্লেস আইডি হিসেবে দেখানো হয়েছে |
সারণীর আচরণ ও তথ্য
- এই টেবিলে শুধুমাত্র STATUS_RUNNING বা STATUS_INVALID স্ট্যাটাসে থাকা রুট অন্তর্ভুক্ত করা হয়েছে।
- রুট মেটাডেটা ও স্ট্যাটাস প্রতি ঘণ্টায়, বিরতিহীনভাবে আপডেট করা হয়।
- Roads Selection API-তে নতুন রুট তৈরি হয়ে গেলে, এই টেবিলে রুটটি উপলভ্য হতে ১ ঘণ্টা পর্যন্ত সময় লাগতে পারে।
- Roads Selection API থেকে কোনও রুট মুছে দেওয়া হলে, এই টেবিল থেকে বেছে নেওয়া রুটটি সরিয়ে দেওয়ার জন্য ১ ঘণ্টা পর্যন্ত অপেক্ষা করতে হতে পারে।
- নির্দিষ্ট রুটের (
dynamic_routing: false) জন্য,road_segment_ids-এ থাকা প্লেস আইডি অটোমেটিক আপডেট হয়ে যায় যাতে Google-এর রোড নেটওয়ার্কে হওয়া পরিবর্তন বোঝা যায়, তবে রুট একই থাকে। ডায়নামিক রুটের জন্য (dynamic_routing: true),road_segment_idsআপডেট করা হয়নি।