از پارسکدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.
دو سال پیش منتشر شده
تعداد بازدید: 130
کد پروژه: 463329
شرح پروژه
یک دیتابیس mysql در فضای وب سرور ویندوز دارم (mysql workbech) که اطلاعات زیادی رو طی روز از یک وب سرویس (api) بازار بورس دریافت میکنه و ذخیره میکنه.
یک کد پایتون است که با استفاده از request هر 10-15 ثانیه یک درخواست به api ارسال میکنه و پاسخ را که شامل یک فایل جیسون است mysql.connector وارد جدول مربوطه در دیتابیس میکنه.
هر 10-15 ثانیه حدود 50000 داده وارد جدول میشه (840 سطر با حدود 60 ستون) و قرار است که هر روز از ساعت 8:45 تا 15:00 که بازار بورس باز است این اطلاعات دریافت و داخل جدولی به نام LiveData در دیتابیس ذخیره بشن:
ستون های جدول به این صورت است:
INSERT INTO LiveData (symbol, fullname, eps, industry, last_traded_price, closing_price,
last_traded_price_change, close_price_change, last_traded_price_percent, close_price_percent,
highest_traded_price, lowest_traded_price, previous_closing_price, trade_volume, number_of_trades,
trade_value, max_price, min_price, base_volume, BestBuyPrice_1, Buyvolume_1, NoBuy_1,
BestsellPrice_1, sellvolume_1, Nosell_1, BestBuyPrice_2, Buyvolume_2, NoBuy_2, BestsellPrice_2,
sellvolume_2, Nosell_2, BestBuyPrice_3, Buyvolume_3, NoBuy_3, BestsellPrice_3, sellvolume_3, Nosell_3,
BestBuyPrice_4, Buyvolume_4, NoBuy_4, BestsellPrice_4, sellvolume_4, Nosell_4, BestBuyPrice_5,
Buyvolume_5, NoBuy_5, BestsellPrice_5, sellvolume_5, Nosell_5, buy_I_Volume, buy_N_Volume,
buy_CountI, buy_CountN, sell_I_Volume, sell_N_Volume, sell_CountI, sell_CountN)
در حال حاضر فقط داده های یک روز کاری به صورت کامل از 8:45 تا 15:00 داخل دیتابیس ذخیره شده و فقط داده های همین یک روز حدود 1.5 گیگ از فضای سرور را اشغال کرده! (حدود 1.03 میلیون سطر و 60 ستون) یعنی 60میلیون داده.
وقتی خواستم داده های یک روز را منتقل کنم به جدولی تحت عنوان HistoryData (با هدف این که روز آینده، جدول LiveData خالی باشد برای ذخیره اطلاعات جدید) mysql کرش کرد؛ رم و سی پی یو انفجاری پر شدن و مجبور شدم سرور را ری استارت کنم.
نمیدونم این اطلاعات رو چطور باید هندل کنم؟
1- آیا اگر طریقه ذخیره سازی و طراحی دیتابیس طوری باشه که برای هر سهم (symbol) یک جدول مجزا ساخته شود، هنگام انتقال اطلاعات به دلیل اینکه هر جدول داده های کمتری داره دیگه دیتابیس کرش نمیکنه؟ آیا اینطوری بهتر می شود یا معایبش بیشتر میشه و در مرحله خواندن از دیتابیس دچار مشکل میشیم؟
2- میدونم مباحثی تحت عنوان فشرده سازی داده ها در دیتابیس وجود داره. با این وجود آیا میزان فشرده سازی این اطلاعات به میزانی تاثیر گذار هست که صرفه داشته باشه و مثلا حداقل 300 برابر کوچکتر شه فایل ها که داده های یک سال (تقریبا 300 روز) بشه همین 1.5 گیگ؟
3- اگر به صرفه نیست مجبورم هر روز این اطلاعات رو حذف کنم و فقط داده های همون روز رو داشته باشم چون فضای خالی سرور نهایتا 20 گیگ است.
.....
تمام این اقدامات باید به بهترین شکل انجام شه چون این ها فقط مرحله مقدماتی برای ذخیره سازی اطلاعات است و مرحله پردازش آن ها و خواندن اطلاعات هم در پیش است و اگر طراحی دیتابیس به شکل بهینه انجام نشه در مرحله خواندن و پردازش هم دچار مشکل میشیم. لذا از دوستانی که در مباحث دیتابیس و بیگ دیتا تجربه دارند لطفا برای کمک به بنده پیشنهادات خودشون رو ارسال کنند.
توجه: به دلیل همکار بودنمون، سورس پروژه باز نیاز دارم و به صورت فایل exe دریافت نمیکنم و باید در جریان مراحل انجام کار باشم چون هر لحظه ممکنه سرور کرش کنه و اگر مجدد مجبور بشم سرور را در آینده ریست کنم (یا منتقل کنم) باید بتونم خودم این اقدامات را انجام دهم.
لطفا در پیشنهادتون مقدماتی از راه حل بفرمایید تا بتوانم بین متخصصین مختلف بهترین راه حل را انتخاب کنم.
مهارت ها و تخصص های مورد نیاز
مهلت برای انجام
3روز
وضعیت مناقصه
بسته
درباره کارفرما
عضویت چهار سال پیش
نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟
قادر به انجام این پروژه هستید؟
متأسفانه مهلت ارسال پیشنهاد این پروژه به پایان رسیده و پروژه بسته شده است؛ اما فرصتهای متعددی در سایت موجود میباشد.
به رایگان یک حساب کاربری بسازید
مهارتها و تخصصهای خود را ثبت کنید، رزومه و نمونهکارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.
به شیوهای که دوست دارید کار کنید
برای پروژههای دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصتهای شغلی منحصر به فرد دسترسی پیدا کنید.
با اطمینان دستمزد دریافت کنید
از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.
میخواهید شروع به کار کنید؟
یک حساب کاربری بسازید
بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارتهای شما
است.
پیدا کردن کار (پروژه)
تماشای دمو روش کار