নিম্নলিখিত সারণীতে ডেটার প্রকারের সম্পূর্ণ তালিকা রয়েছে, যার মধ্যে বেশ কয়েকটি কলাম রয়েছে যা আপনাকে Google Health API-তে প্রতিটি প্রকারের উপস্থাপনা বুঝতে সাহায্য করবে, পাশাপাশি প্রতিটি প্রকারের জন্য উপলভ্য স্কোপও রয়েছে।
ডেটার ধরন সংক্রান্ত ফিল্ড
Google Health API ডেটার ধরন সংক্রান্ত টেবিলে বেশ কিছু ফিল্ড কলাম আছে যা আপনাকে প্রতিটি ডেটার ধরন কীভাবে দেখানো হয় এবং তার প্রয়োজনীয়তা বুঝতে সাহায্য করে। এই কলামগুলি নিচে উল্লেখ করা হল:
| ফিল্ড | বিবরণ |
|---|---|
dataType |
এন্ডপয়েন্ট URL-এ ব্যবহৃত হাইফেন (যেমন,
active-minutes) দ্বারা আলাদা করা শনাক্তকারী। |
filter প্যারামিটার |
আন্ডারস্কোর দ্বারা আলাদা করা শনাক্তকারী (যেমন,
active_minutes) দৈনিক রোল-আপ এবং রোল-আপ
অনুরোধে dataType ফিল্টার প্যারামিটারের
ভ্যালু হিসেবে ব্যবহার করা হয়। |
| রেকর্ডের ধরন | রেকর্ড করা ডেটার স্ট্রাকচার ও ফর্ম্যাট দেখায়। ব্যাকগ্রাউন্ডে, এটি ডেটা পয়েন্টের রিসোর্স উপস্থাপনার সাথে অ্যালাইন করে। সম্ভাব্য ভ্যালুগুলি হল:
|
| উপলভ্য অপারেশন | ডেটার ধরনের জন্য কাজ করে এমন API পদ্ধতির তালিকা (যেমন
list, create এবং rollUp)। |
| সুযোগ | ডেটার ধরন অ্যাক্সেস করার জন্য প্রয়োজনীয় OAuth স্কোপ। |
| ওয়েবহুক সহায়তা | নতুন ডেটা সিঙ্ক করার সময় ওয়েবহুক ব্যবহার করে ডেটার ধরন রিয়েল-টাইম বিজ্ঞপ্তি সমর্থন করে কিনা তা দেখায়। |
| True zeros সহায়তা | এটি দেখায় যে ডেটার ধরনটি স্পষ্ট শূন্য মান রেকর্ড করা সমর্থন করে যাতে একটি সক্রিয় শূন্য মান (যেমন শূন্য সক্রিয় মিনিট) বনাম অনুপস্থিত বা রেকর্ড না করা ডেটার মধ্যে পার্থক্য করা যায়। |
| স্টোরেজ রেজোলিউশন | ন্যূনতম রেকর্ডিং বা স্যাম্পলিং ইন্টারভ্যাল যেখানে ডেটা পয়েন্ট
স্টোর করা হয় (যেমন, steps-এর জন্য ১ মিনিট)। রোল-আপের জন্য,
এটি ন্যূনতম সাজেস্ট করা windowSize দেখায় যাতে
সাব-ইন্টারভ্যাল ডেটা আর্টিফ্যাক্ট ছাড়াই সমানভাবে ডিস্ট্রিবিউট করা অ্যাগ্রিগেশন
নিশ্চিত করা যায়। |
| মানানসই ডিভাইস | ফিজিক্যাল ডিভাইসের একটি এক্সপ্যান্ডেবল তালিকা যা Google Health API-তে (Fitbit অ্যাপ ব্যবহার করে) এই ডেটার ধরন রেকর্ড ও সিঙ্ক করতে পারে। |
| ডেটার ধরন | উপলভ্য অপারেশন |
সুযোগ |
|---|---|---|
|
অ্যাক্টিভ এনার্জি বার্ন
dataType:
active-energy-burnedfilter parameter: active_energy_burned
রেকর্ডের ধরন: ইন্টারভাল
স্টোরেজ সংক্রান্ত সমস্যার সমাধান: ১ মিনিট
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
অ্যাক্টিভ মিনিট
dataType:
active-minutesfilter parameter: active_minutes
রেকর্ডের ধরন: ইন্টারভাল
স্টোরেজ সংক্রান্ত সমস্যার সমাধান: ১ মিনিট
মানানসই ডিভাইস
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
অ্যাক্টিভ জোন মিনিট
dataType:
active-zone-minutesfilter parameter: active_zone_minutes
রেকর্ডের ধরন: ইন্টারভাল
স্টোরেজ সংক্রান্ত সমস্যার সমাধান: ১ মিনিট
মানানসই ডিভাইস
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
অ্যাক্টিভিটি লেভেল
|
তালিকা, রিকনসাইল করুন | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
উচ্চতা
dataType:
altitudefilter parameter: altitude
রেকর্ডের ধরন: ইন্টারভাল
স্টোরেজ সংক্রান্ত সমস্যার সমাধান: ১ মিনিট
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
রক্তের গ্লুকোজ সংক্রান্ত ডেটা
dataType:
blood-glucosefilter parameter: blood_glucose
রেকর্ডের ধরন: স্যাম্পেল
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
শরীরে থাকা ফ্যাট
dataType:
body-fatfilter parameter: body_fat
রেকর্ডের ধরন: স্যাম্পেল
মানানসই ডিভাইস
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
হার্ট রেট জোনে ক্যালোরি
dataType:
calories-in-heart-rate-zonefilter parameter: calories_in_heart_rate_zone
রেকর্ডের ধরন: ইন্টারভাল
স্টোরেজ সংক্রান্ত সমস্যার সমাধান: ১ মিনিট
|
rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
শরীরের মূল তাপমাত্রা
dataType:
core-body-temperaturefilter parameter: core_body_temperature
রেকর্ডের ধরন: স্যাম্পেল
|
list, get, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
দৈনিক হার্ট রেটের তারতম্য
dataType:
daily-heart-rate-variabilityfilter parameter: daily_heart_rate_variability
রেকর্ডের ধরন: দৈনিক
মানানসই ডিভাইস
|
তালিকা, রিকনসাইল করুন | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
দৈনিক হার্ট রেট জোন
dataType:
daily-heart-rate-zonesfilter parameter: daily_heart_rate_zones
রেকর্ডের ধরন: দৈনিক
|
তালিকা, রিকনসাইল করুন | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
দৈনিক অক্সিজেন স্যাচুরেশনের মাত্রা
dataType:
daily-oxygen-saturationfilter parameter: daily_oxygen_saturation
রেকর্ডের ধরন: দৈনিক
মানানসই ডিভাইস
|
তালিকা, রিকনসাইল করুন | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
দৈনিক শ্বাস-প্রশ্বাসের হার
dataType:
daily-respiratory-ratefilter parameter: daily_respiratory_rate
রেকর্ডের ধরন: দৈনিক
মানানসই ডিভাইস
|
তালিকা, রিকনসাইল করুন | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
দৈনিক বিশ্রামকালীন হার্ট রেট
dataType:
daily-resting-heart-ratefilter parameter: daily_resting_heart_rate
রেকর্ডের ধরন: দৈনিক
মানানসই ডিভাইস
|
তালিকা, রিকনসাইল করুন | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
ঘুমের সময় শরীরের তাপমাত্রার দৈনিক পরিবর্তন
dataType:
daily-sleep-temperature-derivationsfilter parameter: daily_sleep_temperature_derivations
রেকর্ডের ধরন: দৈনিক
মানানসই ডিভাইস
|
তালিকা, রিকনসাইল করুন | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
দৈনিক সর্বোচ্চ VO2
dataType:
daily-vo2-maxfilter parameter: daily_vo2_max
রেকর্ডের ধরন: দৈনিক
মানানসই ডিভাইস
|
তালিকা, রিকনসাইল করুন | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
দূরত্ব
dataType:
distancefilter parameter: distance
রেকর্ডের ধরন: ইন্টারভাল
স্টোরেজ সংক্রান্ত সমস্যার সমাধান: ১ মিনিট
মানানসই ডিভাইস
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
ইলেকট্রোকার্ডিওগ্রাম (ECG)
dataType:
electrocardiogramfilter parameter: electrocardiogram
রেকর্ডের ধরন: সেশন
মানানসই ডিভাইস
|
তালিকা | .ecg.readonly |
|
ব্যায়াম
dataType:
exercisefilter parameter: exercise
রেকর্ডের ধরন: সেশন
মানানসই ডিভাইস
|
list, get, reconcile, create, update, batchDelete | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
ফ্লোর
dataType:
floorsfilter parameter: floors
রেকর্ডের ধরন: ইন্টারভাল
স্টোরেজ সংক্রান্ত সমস্যার সমাধান: ১ মিনিট
|
reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
খাবার
|
তালিকা, ডাউনলোড করুন | .nutrition.readonly.nutrition.writeonly |
|
খাবার পরিমাপের ইউনিট
dataType:
food-measurement-unitfilter parameter: food_measurement_unit
রেকর্ডের ধরন: খাবার
মানানসই ডিভাইস
|
তালিকা, ডাউনলোড করুন | .nutrition.readonly.nutrition.writeonly |
|
হার্ট রেট
dataType:
heart-ratefilter parameter: heart_rate
রেকর্ডের ধরন: স্যাম্পেল
স্টোরেজ রেজোলিউশন: ১ সেকেন্ড
মানানসই ডিভাইস
|
list, reconcile, rollup, dailyRollup | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
হার্ট রেটের তারতম্য
dataType:
heart-rate-variabilityfilter parameter: heart_rate_variability
রেকর্ডের ধরন: স্যাম্পেল
মানানসই ডিভাইস
|
তালিকা, রিকনসাইল করুন | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
উচ্চতা
|
list, get, reconcile, create, update, batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
হাইড্রেশন লগ
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
|
অনিয়মিত রিদম সংক্রান্ত বিজ্ঞপ্তি
dataType:
irregular-rhythm-notificationfilter parameter: irregular_rhythm_notification
রেকর্ডের ধরন: সেশন
|
তালিকা | .irn.readonly |
|
ঋতুচক্রের সময়সীমা
dataType:
menstrual-periodfilter parameter: menstrual_period
রেকর্ডের ধরন: ইন্টারভাল
|
create, update, batchDelete | .reproductive_health.writeonly |
|
মুড
|
create, update, batchDelete | .mindfulness.writeonly |
|
পুষ্টির লগ
dataType:
nutrition-logfilter parameter: nutrition_log
রেকর্ডের ধরন: সেশন
মানানসই ডিভাইস
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .nutrition.readonly.nutrition.writeonly |
|
ওভিউলেশন টেস্ট
dataType:
ovulation-testfilter parameter: ovulation_test
রেকর্ডের ধরন: স্যাম্পেল
|
create, update, batchDelete | .reproductive_health.writeonly |
|
অক্সিজেন স্যাচুরেশন
dataType:
oxygen-saturationfilter parameter: oxygen_saturation
রেকর্ডের ধরন: স্যাম্পেল
স্টোরেজ সংক্রান্ত সমস্যার সমাধান: ১ মিনিট
মানানসই ডিভাইস
|
তালিকা, রিকনসাইল করুন | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
শ্বাস-প্রশ্বাসের হার সংক্রান্ত স্লিপ সামারি
dataType:
respiratory-rate-sleep-summaryfilter parameter: respiratory_rate_sleep_summary
রেকর্ডের ধরন: স্যাম্পেল
মানানসই ডিভাইস
|
তালিকা, রিকনসাইল করুন | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
সর্বোচ্চ VO2-এর ডেটা রান করুন
dataType:
run-vo2-maxfilter parameter: run_vo2_max
রেকর্ডের ধরন: স্যাম্পেল
মানানসই ডিভাইস
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
বসে থাকার সময়
dataType:
sedentary-periodfilter parameter: sedentary_period
রেকর্ডের ধরন: ইন্টারভাল
মানানসই ডিভাইস
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
ত্বকের তাপমাত্রা সেন্সর
v4beta
dataType:
skin-temperature-sensorsfilter parameter: skin_temperature_sensors
রেকর্ডের ধরন: স্যাম্পেল
ভাইটাল সংক্রান্ত নির্দেশিকা
ত্বকের তাপমাত্রা সংক্রান্ত নির্দেশিকা
মহিলাদের স্বাস্থ্য সংক্রান্ত নির্দেশিকা
মানানসই ডিভাইস |
তালিকা | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
|
স্লিপ
dataType:
sleepfilter parameter: sleep
রেকর্ডের ধরন: সেশন
মানানসই ডিভাইস
|
list, get, reconcile, create, update, batchDelete | .sleep.readonly.sleep.writeonly |
|
ধাপ
dataType:
stepsfilter parameter: steps
রেকর্ডের ধরন: ইন্টারভাল
স্টোরেজ সংক্রান্ত সমস্যার সমাধান: ১ মিনিট
মানানসই ডিভাইস
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
সাঁতারের দৈর্ঘ্য সংক্রান্ত ডেটা
dataType:
swim-lengths-datafilter parameter: swim_lengths_data
রেকর্ডের ধরন: ইন্টারভাল
মানানসই ডিভাইস
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
উপসর্গ
dataType:
symptomsfilter parameter: symptoms
রেকর্ডের ধরন: স্যাম্পেল
|
create, update, batchDelete | .logged_symptoms.writeonly |
|
হার্ট রেট জোনে কাটানো সময়
dataType:
time-in-heart-rate-zonefilter parameter: time_in_heart_rate_zone
রেকর্ডের ধরন: ইন্টারভাল
স্টোরেজ সংক্রান্ত সমস্যার সমাধান: ১ মিনিট
|
list, reconcile, rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
মোট ক্যালোরি
dataType:
total-caloriesfilter parameter: total_calories
রেকর্ডের ধরন: ইন্টারভাল
স্টোরেজ সংক্রান্ত সমস্যার সমাধান: ১ মিনিট
মানানসই ডিভাইস
|
rollup, dailyRollup | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
VO2 Max
dataType:
vo2-maxfilter parameter: vo2_max
রেকর্ডের ধরন: স্যাম্পেল
মানানসই ডিভাইস
|
তালিকা, রিকনসাইল করুন | .activity_and_fitness.readonly.activity_and_fitness.writeonly |
|
ওজন
dataType:
weightfilter parameter: weight
রেকর্ডের ধরন: স্যাম্পেল
মানানসই ডিভাইস
|
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete | .health_metrics_and_measurements.readonly.health_metrics_and_measurements.writeonly |
কোয়েরি সংক্রান্ত সীমাবদ্ধতা
API থেকে ডেটা পয়েন্ট, রোলআপ বা দৈনিক রোলআপ কোয়েরি করার সময়, নিম্নলিখিত সীমাবদ্ধতাগুলি মনে রাখবেন:
- ফিল্টার সংক্রান্ত প্রয়োজনীয়তা: কিছু শুধু-পড়ার-উপযোগী ডিরাইভড ডেটার ধরন, যেমন
total-calories, এর জন্য একটি ফিল্টার প্রয়োজন যা ইন্টারভ্যাল শুরুর সময় নির্দিষ্ট করে (ফিজিক্যাল বা সিভিল টাইম ব্যবহার করে)। - কোয়েরি রেঞ্জের সীমা: রোলআপ এবং দৈনিক রোলআপ অ্যাগ্রিগেশন এন্ডপয়েন্ট
ডেটার ধরনের উপর ভিত্তি করে সর্বাধিক কোয়েরি রেঞ্জের সীমা প্রয়োগ করে:
calories-in-heart-rate-zone,heart-rate,active-minutesওtotal-calories-এর জন্য সর্বাধিক ১৪ দিনের কোয়েরি রেঞ্জ।- অন্য সব ধরনের ডেটার জন্য সর্বাধিক ৯০ দিনের কোয়েরি রেঞ্জ।
- রোলআপ উইন্ডোর সাইজ:
rollUpএন্ডপয়েন্ট কল করার সময়,windowSizeসময়সীমা কমপক্ষে ১ সেকেন্ড ("1s") হতে হবে। এক সেকেন্ডের কম সময়সীমাINVALID_ARGUMENT-এর মাধ্যমে বাতিল করা হয়। এছাড়াও, সাব-ইন্টারভ্যাল জুড়ে অসম বন্টন এড়াতে, ডেটা টাইপের অন্তর্নিহিত স্টোরেজ রেজোলিউশনের সমান বা তার চেয়ে বড় একটিwindowSizeবেছে নিন (যেমনstepsএবংdistance-এর মতো ১-মিনিটের ইন্টারভ্যাল ডেটা টাইপের জন্য"60s")। আরও জানতে, রোলআপ উইন্ডো ও স্টোরেজ রেজোলিউশন দেখুন।
দৈনিক বনাম ইন্টারভ্যাল ডেটার ধরন
হার্ট রেটের তারতম্য (HRV) বা অক্সিজেন স্যাচুরেশনের মাত্রা (SpO2)-এর মতো নির্দিষ্ট কিছু শারীরবৃত্তীয় মেট্রিকের জন্য, Google Health API দুটি আলাদা ডেটার ধরন প্রদান করে: একটি দৈনিক ভার্সন এবং একটি ইন্টারভাল ভার্সন। আপনার ব্যবহারের ক্ষেত্রে সঠিক মেট্রিক বেছে নেওয়ার জন্য পার্থক্য বোঝা গুরুত্বপূর্ণ:
দৈনিক: পুরো দিনের জন্য একটি, আগে থেকে অ্যাগ্রিগেট করা সারাংশ। প্রসেসিংয়ের খরচ বাঁচাতে হাই-লেভেল ট্রেন্ড ও দৈনিক ড্যাশবোর্ডের জন্য এটি ব্যবহার করুন।
ইন্টারভাল: সারাদিন ধরে গ্র্যানুলার, হাই-রেজোলিউশন পরিমাপ নেওয়া হয়। ইন্ট্রাডে ওঠানামা চার্ট করতে বা গভীর, ঘণ্টা-ঘণ্টা বিশ্লেষণ করতে এটি ব্যবহার করুন।
ডেটার উপলভ্যতা
ব্যবহারকারী তার অ্যাক্টিভিটি ট্র্যাকার সিঙ্ক করার পরে বা Google Health অ্যাপে ম্যানুয়ালি নতুন ডেটা লিখলে তবেই তার ডেটা আপডেট করা হয়। মোবাইল ডিভাইসে Google Health অ্যাপ খোলা থাকলে এবং দুটির মধ্যে অ্যাক্টিভ ডেটা কানেকশন থাকলে ও ব্লুটুথ রেঞ্জের মধ্যে থাকলে, Fitbit ডিভাইস ও Google Health অ্যাপ প্রতি ১৫ মিনিটে অটোমেটিক সিঙ্ক করতে পারে। ব্যবহারকারী MobileTrack ব্যবহার করে অ্যাক্টিভিটি ট্র্যাক করলে, অ্যাপ খোলা থাকলে MobileTrack প্রতি ঘণ্টায় সিঙ্ক করে।
ঐতিহাসিক ডেটা সম্পর্কে কোয়েরি করা হচ্ছে
Google Health API-এর অন্যতম প্রধান সুবিধা হল, এটি ব্যবহারকারীর পারফর্ম্যান্স ট্র্যাক করতে এবং দীর্ঘ সময় ধরে তার স্বাস্থ্যের গুরুত্বপূর্ণ প্যারামিটারগুলি পর্যবেক্ষণ করতে পারে। আপনি কোনও ব্যবহারকারীর ডেটা রেকর্ড করা শুরু হওয়ার সময় থেকে শুরু করে যেকোনও সময় পর্যন্ত কোয়েরি করতে পারবেন; আপনার অ্যাপ্লিকেশন কতটা পুরনো ডেটা ব্যবহার করতে পারবে তার উপর API কোনও সীমা বা বিধিনিষেধ আরোপ করে না।
তবে, পুরনো ডেটা কোয়েরি করার ক্ষেত্রে এখনও স্ট্যান্ডার্ড রেট লিমিট প্রযোজ্য। সিস্টেমের স্থায়িত্ব ম্যানেজ করতে এবং অতিরিক্ত পেলোড প্রতিরোধ করতে, Google Health API এন্ডপয়েন্ট-নির্দিষ্ট পৃষ্ঠা সাইজের সাথে অটোমেটিক পৃষ্ঠা সংখ্যা ব্যবহার করে। নিম্নলিখিত সীমা ও আচরণ লক্ষ্য করুন:
- অটোমেটিক পৃষ্ঠা সংখ্যা: আপনি যদি দীর্ঘ সময়সীমার ডেটা কোয়েরি করেন, তাহলে
API শুধুমাত্র সেই এন্ডপয়েন্টের জন্য পৃষ্ঠা সাইজের ক্যাপ পর্যন্ত ফলাফলের প্রথম পৃষ্ঠাটি
nextPageTokenসহ দেখাবে। পরবর্তী পৃষ্ঠাগুলির জন্য অনুরোধ করতে আপনাকে অবশ্যইnextPageTokenব্যবহার করতে হবে। - পরিবর্তনশীল পৃষ্ঠার সাইজ: ক্যাপ করার সীমা এন্ডপয়েন্ট
ও ডেটার ধরনের উপর নির্ভর করে। বেশিরভাগ ডেটার ধরনের জন্য, পৃষ্ঠার সাইজ সর্বাধিক ১০,০০০-এ সীমাবদ্ধ করা হয়েছে।
তবে,
exerciseএবংsleep-এর মতো নির্দিষ্ট ডেটার ধরনের জন্য, ডিফল্ট এবং সর্বাধিক পৃষ্ঠার সাইজ ২৫-এ সীমাবদ্ধ। যেমন, কোনও ক্লায়েন্ট যদি গত ১০ বছরের সব ঘুমের ডেটা চায়, তাহলেও API প্রথম পৃষ্ঠায় মাত্র ২৫টি ঘুমের সেশন দেখাবে। - রোলআপ তারিখের রেঞ্জের উপর বিধিনিষেধ: ডেটা রোলআপ এবং অ্যাগ্রিগেশন এন্ডপয়েন্টের জন্য
(যেমন
rollUpএবংdailyRollUp), ডেটার ধরনের উপর ভিত্তি করে কোয়েরি তারিখের রেঞ্জ সীমাবদ্ধ করা হয়:calories-in-heart-rate-zone,heart-rate,active-minutesওtotal-calories-এর জন্য সর্বাধিক ১৪ দিনের রেঞ্জ।- অন্যান্য সব রোল-আপ ডেটার ধরনের জন্য সর্বাধিক ৯০ দিনের রেঞ্জ।
আপনার অ্যাপ্লিকেশনের জন্য প্রয়োজনীয় ঐতিহাসিক ডেটার পরিমাণের উপর নির্ভর করে, সম্পূর্ণ ডেটাসেট পুনরুদ্ধার করতে পৃষ্ঠাগুলির মাধ্যমে ক্রমানুসারে পৃষ্ঠা সংখ্যা নির্ধারণ করতে হবে। আপনার অ্যাপ্লিকেশনের ডেটা সিঙ্ক করার প্রসেস ডিজাইন করার সময় এটি মনে রাখবেন।
অপ্টিমাল পারফর্ম্যান্স নিশ্চিত করতে এবং API সংক্রান্ত সমস্যা এড়াতে, পুরনো ডেটা কোয়েরি করার সময় এইসব নির্দেশিকা অনুসরণ করুন:
পর্যায়ক্রমে ডেটা সিঙ্ক (হট বনাম কোল্ড লোড)
- প্রাথমিক "হট" লোড: প্রাথমিক লোড সিকোয়েন্সের সময় শুধুমাত্র সবচেয়ে সাম্প্রতিক ৭–১৪ দিনের ডেটা ফেচ ও রেন্ডার করুন। এর ফলে ব্যবহারকারীরা দীর্ঘ সময় ধরে চলা কোয়েরির জন্য অপেক্ষা না করেই অবিলম্বে ডেটা দেখতে পাবেন।
- ব্যাকগ্রাউন্ড "কোল্ড" লোড: প্রাইমারি UI রেন্ডার করার পরে অ্যাসিঙ্ক্রোনাস, কম-অগ্রাধিকারের সারি বা ব্যাকগ্রাউন্ড প্রসেসে পুরনো হিস্টরিক্যাল ডেটা ফিরিয়ে আনার কাজ ডেলিগেট করুন।
এগ্রিগেশনের জন্য কোয়েরি চাঙ্কিং
- রোলআপ এবং দৈনিক রোলআপ এন্ডপয়েন্টগুলি সর্বাধিক তারিখের রেঞ্জের সীমা (ডেটার ধরনের উপর নির্ভর করে ১৪ বা ৯০ দিন) প্রয়োগ করে, তাই আপনাকে অবশ্যই বড় ঐতিহাসিক অ্যাগ্রিগেশন কোয়েরিগুলিকে এই সীমার মধ্যে ছোট, ক্রমিক বিরতিতে ভাগ করতে হবে।
- কনকারেন্সি সীমা মেনে চলতে এবং UI প্রগ্রেস ইন্ডিকেটর স্থির রাখতে এইসব সাব-কোয়েরি নিরাপদে ব্যাচ বা সিকোয়েন্স করুন।
আগে থেকে অ্যাগ্রিগেট করা রোল-আপের সুবিধা নিন
প্রি-অ্যাগ্রিগেটেড, সামারি এন্ডপয়েন্ট (যেমন DailyRollUpDataPoints) ব্যবহার করার জন্য ওভারভিউ ড্যাশবোর্ড এবং ট্রেন্ড চার্ট রিস্ট্রাকচার করুন। এটি
ব্যাকএন্ডে কম্পিউট ওভারহেড এবং ক্লায়েন্টে নেটওয়ার্ক ট্রান্সফার টাইম
ব্যাপকভাবে কমিয়ে দেবে।
সমস্যা ম্যানেজ করার ক্ষেত্রে স্থিতিস্থাপকতা (স্মার্ট রিট্রাই)
- রেট লিমিট (
429 Too Many Requests) এবং সার্ভার গেটওয়ে টাইমআউট (504 Gateway Timeout) হলে, স্ট্রিক্ট এক্সপোনেনশিয়াল ব্যাকঅফ হ্যান্ডলিং প্রয়োগ করুন। ব্যর্থ হওয়া বড় পেলোড অবিলম্বে আবার চেষ্টা করবেন না। তৎক্ষণাৎ আবার চেষ্টা করলে ব্যাকএন্ড কনজেশন এবং কম্পাউন্ড সিস্টেম ডিগ্রেডেশন বেড়ে যায়।
থার্ড-পার্টি অ্যাক্সেস
Fitbit ডিভাইস সরাসরি থার্ড-পার্টি অ্যাপ্লিকেশন বা পরিষেবার সাথে যোগাযোগ করতে পারে না। এইসব ডিভাইস বিশেষভাবে Google Health অ্যাপের সাথে যোগাযোগ ও সিঙ্ক করার জন্য ডিজাইন করা হয়েছে।
Google Health অ্যাপ খোলা থাকলে, সারাদিন ধরে ডিভাইস অটোমেটিক ডেটা সিঙ্ক করে অথবা ব্লুটুথ অ্যাক্টিভ থাকলে এবং অ্যাপ ব্যাকগ্রাউন্ডে চলতে থাকলে প্রতি ১৫ মিনিট অন্তর ডেটা সিঙ্ক করে। এই সিঙ্ক করার প্রসেস সম্পূর্ণ হয়ে গেলে, Google Health API-এর মাধ্যমে থার্ড-পার্টি পরিষেবার জন্য ডেটা উপলভ্য হয়।
ডেটার কোয়ালিটি ও বৈধতা ফিল্টার করা
কাস্টম ক্লায়েন্ট-সাইড নয়েজ ফিল্টারিংয়ের প্রয়োজন ছাড়াই নির্ভরযোগ্য স্বাস্থ্য মেট্রিক প্রদান করতে, Google Health API সেন্সর টেলিমেট্রি যাচাই করে এবং উত্তর দেওয়ার আগে ভুল পরিমাপ বাদ দেয়:
- মিনিট-লেভেল রক্তের অক্সিজেন স্যাচুরেশনের (
oxygen-saturation) জন্য, API শুধুমাত্র যাচাই করা রিডিং দেখায় এবং হাত নড়াচড়া, কব্জিতে ঘড়ি ঢিলে হয়ে যাওয়া বা সেন্সর কনফিডেন্স স্কোর ৫০%-এর কম হওয়ার কারণে ভুল হিসেবে চিহ্নিত মিনিটগুলি সরিয়ে দেয়, সেইসাথে ভুল রিডিংয়ের ৩ মিনিট আগে ও পরে এবং ৪ মিনিটের কম সময়ের জন্য আলাদাভাবে যাচাই করা স্ট্রেচও সরিয়ে দেয়। এর ফলে, মিনিট-লেভেল কভারেজ কম হতে পারে এবং ফাঁক থাকতে পারে। বিস্তারিত জানতে, মিনিট-লেভেল SpO2 ফিল্টারিং ও ডেটার বৈধতা দেখুন।
দূরত্ব সংক্রান্ত স্ট্যান্ডার্ড
ব্যায়ামের দূরত্ব, যেমন elevationGainMillimeters, নিম্নলিখিত কারণে স্ট্যান্ডার্ড ইউনিট হিসেবে মিলিমিটারে পরিমাপ করা হয়:
- ডেটার নির্ভুলতা বজায় রাখা: মিলিমিটার ব্যবহার করার সবচেয়ে গুরুত্বপূর্ণ কারণ হল, আমরা যে ডেটা পড়ি ও প্রদান করি তার নির্ভুলতা যাতে বজায় থাকে তা নিশ্চিত করা। মিলিমিটারের মতো সূক্ষ্ম ইউনিট ব্যবহার করলে, আমরা অত্যন্ত নির্ভুলভাবে পরিমাপ দেখাতে পারি।
- স্ট্যান্ডার্ডাইজেশন: আমাদের সব পরিষেবা জুড়ে মিলিমিটারকে স্ট্যান্ডার্ড ইউনিট হিসেবে ডিজাইন করা হয়েছে। এই ধারাবাহিকতা API-এর বিভিন্ন অংশের সাথে ইন্টার্যাক্ট করা ডেভেলপারদের জন্য একটি অভিন্ন অভিজ্ঞতা নিশ্চিত করতে সাহায্য করে।
- পরিমাপের বিভিন্ন সিস্টেমের সাথে কাজ করা: মিলিমিটারের মতো বেস ইউনিট ব্যবহার করলে, ডেভেলপাররা সহজেই এটিকে অন্য যেকোনও ইউনিটে রূপান্তর করতে পারেন। তারা মেট্রিক, ইম্পেরিয়াল বা অন্য কোনও পরিমাপ সিস্টেম ব্যবহার করছেন কিনা তা বিবেচ্য নয়।
দিনের দৈর্ঘ্যের পরিবর্তন
Health API-এর মাধ্যমে সময় ম্যানেজ করার সময় ব্যবহারকারীর সময়কে অগ্রাধিকার দেওয়া হয় যাতে ডেলাইট সেভিং টাইম বা ভ্রমণের কারণে দিনের দৈর্ঘ্যে পরিবর্তন হলেও তা ম্যানেজ করা যায়। প্রতিটি ডেটা পয়েন্ট ফিজিক্যাল UTC টাইমস্ট্যাম্প এবং ইভেন্টের সময় অ্যাক্টিভ থাকা UTC অফসেট, উভয়ের সাথেই সেভ করা হয়। এটি সিস্টেমকে এগুলি করার অনুমতি দেয়:
- ইভেন্টটি একটি সুনির্দিষ্ট ফিজিক্যাল ইনস্ট্যান্টে ম্যাপ করুন।
- অ্যাগ্রিগেশনের জন্য ব্যবহারকারীর স্থানীয় প্রসঙ্গ অনুযায়ী সময় ঠিক করুন।
ডেলাইট সেভিং টাইম
ডেলাইট সেভিং টাইম শুরু হলে, "ফল ব্যাক" হওয়ার ফলে সিভিল ডে ২৫ ঘণ্টার হয় এবং সেই তারিখের রোল-আপে ২৫ ঘণ্টার ডেটা থাকে। "স্প্রিং ফরওয়ার্ড" করার ফলে ২৩ ঘণ্টার সিভিল ডে হয় যেখানে সময় স্ট্যান্ডার্ড টাইমে ফিরে যায়।
ভ্রমণ
টাইম জোন জুড়ে ভ্রমণ করলে, একটি সিভিল দিনের শারীরিক সময়সীমার মধ্যে আরও উল্লেখযোগ্য পরিবর্তন হতে পারে।
টাইম জোনের পার্থক্য রিকনসাইল করতে dailyRollUp এন্ডপয়েন্ট ব্যবহার করুন। এটি
ব্যবহারকারীর স্থানীয় সময় অনুযায়ী ডেটা রেকর্ড করার ক্যালেন্ডার দিনের সাথে অটোমেটিক অ্যাট্রিবিউট করে, টাইম জোন পরিবর্তন হওয়া সত্ত্বেও
কার্যকরভাবে দিনটিকে একসাথে "স্টিচ" করে। বিবরণ ও উদাহরণের জন্য, মোট ডেটা সংক্রান্ত গাইডে
ক্যালেন্ডার দিন জুড়ে মোট ডেটা দেখুন।