داده کاوی بر روی داده های زیاد به صورت روزانه


#1

درود خدمت دوستان و اساتید . امید وارم حالتون خوب باشه .

مقدمه

یک پروژه رو به زودی باید شروع کنم که اطلاعات پزشکی کاربران رو دریافت می کنه این اطلاعات ویژگی های زیر رو داره

۱. در ثانیه کاربر اطلاعات زیادی رو درست می کنه
۲. این اطلاعات با یک شماره یونیک در بانک اطلاعاتی ذخیره می شه
۳. این اطلاعات تغییر نمی کنه بلکه فقط ذخیره می شه

به عنوان مثال همزمان یک کاربر

۱. تعداد گام ها
۲. فشار خون
۳. تپش و …

رو داره می فرسته و این لیست بسیار زیاده چون اطلاعات از سنسور ها دریافت می شه و باید بر اساس ثانیه ای یا هر دو ثانیه ذخیره دیتابیس بشه

مشکل

این اطلاعات جمع آوری شده برای هر کاربر باید در هر ثانیه علاوه بر سرور روی اپلیکیشن موبایلشم ذخیره بشه و آخر هر روز اطلاعات هزار کاربر ثبت نام شده ( هزار عدد تست هست ) در یک دیتابیس جداگانه ای ذخیره شود و روی آن کو آری های زیادی زده شود

۱. دیتابیس تراکنشی که ذخیره می شود و خوانده می شود باید تغییرات رو هر لحظه نوشون کاربر برده
۲. دیتابیسی که در اون داده کاوی می شه اطلاعات هزار کاربر رو باید هر ساعت و شب با آنالیز درخواستی نمایش بدهند

اطلاعات شماره ۲ باید جوری باشد که نتیجه رو پزشکان هر وقت خواستن به آن ها بدهد . مثلا درصد بیماری قلبی امروز بر اساس تپش کاربران ورزشکار زیر ۱۵ سال

خوب من فکر می کنم ممکنه این اطلاعات در زمانی که کو آری می زنیم مدت زمانی رو طول بکشه و ممکنه یکی از دیتابیس ها به خطا بخوره

راه حل چیست ؟ مخصوصا در شماره ۲ که اطلاعات زیاد کاربران زیادی باید آنالیز بشه ؟

  • آیا زبانی مثل الکسیر اینجا جوابگو هست ؟
  • آیا نتایج به دست آماده از آنالیز دیتابیس ۲ حالا نیاز هست که اون نتایج در دیتابیس ۱ ذخیره بشه که کاربر سریعا بالا بیاره و دیگه منتشر نباشه؟
  • اگر به خطا خورد در موقع کو آری باید چیکار کرد ؟
  • چطور می تونیم به کاربر بگیم ۳ دقیقه منتظر بمو بهت نتیجه رو نشون بدم در صورتی که در صفحه مواردی مثل چنل نداریم؟
  • اطلاعاتی که در دیتابیس تراکنشی یا همون ۱ ذخیره شده بعد از مدتی چطور می شه اونارو آرشیو کرد و چگونه ؟ و زمانی که کاربر خواست به اطلاعات دو سال قبلش برسه باید چیکار کنیم ؟ اون موقع باز یک زمانی طول می کشه بیاد

من ایده زیادی در این مورد ندارم لطفا راهنمایی فرمایید


#2

از Elasticsearch استفاده کن
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html


#3

توماج جان تشکر بخاطر پاسخ .

قبلا یک سرچ هایی که کردم در مورد الستیک خیلی بخاطر مصرف بالای رمش ناراحت بودند .

و این مورد الستیک رو برای کدوم مورد من پیشنهاد کردید . چون من چندین مشکل رو بیان کردم البته زیاد نوشتم براش شاید وقت نکنید بخونیدش . شرمنده .


#4

راستش توضیح یکم پیچیده بود و بعضی از قسمت ها شاید در یک موضوع نگنجه، اما بنظر من نقطه خوب برای شروع استفاده از جستجوگر پرقدرت هست که الستیک رو‌‌پشنهاد کردم.

در مورد رم بله الیتیک بدلیل کار سنگینی که انجام میده منابع لازم داره اما انجام کار مشابه با استفاده از هرچیز دیگه ای ممکنه بدتر از این باشه. رم رو‌میشه‌در الستیک مدیریت و محدود کرد.

اگر کوئری با خطا مواجح شد let it crash :slight_smile:️.
کوئری در transaction باشه و کل کار از اول انجام بشه


#5

تشکر دارم یک آموزش خوب در موردش از یودمی می گیرم ویدیو . ممنون توماج جان جلوتر رفتم اگر مشکلی بود این پست رو به روز می کنم
باز اگر ایده ای چیزی برای راهنمایی کلی چه شما و دوستان دیگه داشتن ممنون می شوم دریافت کنم
تشکر


#6

یک نگاه کلی دباره کردم بازم الستیک رو‌‌‌پشنهاد میکنم، راستش خیلی هم سادس


#7

واه واه این چیزا مصیبته چون الان منم تقریبا یه ماهه دارم روی همچین پروژه ای کار میکنم schedule پزشک ها بخصوص واقعا توی مغز آدم راه میره ،یه کتابی بود نیمه گمشده من هست تو این پروژه فردا صبح میفرستم بخونمش متوجه میشی از چه دیتابیسی ااستفاده کنی و برای داده کاوی چیکار کنی