কীভাবে দক্ষতার সাথে বড় সময়ের সিরিজ ডেটা সঞ্চয় করতে হবে?


27

আমার কিছু খুব বড় পরিমাণে সময় সিরিজের ডেটা সংরক্ষণ করতে এবং সক্ষম হওয়া দরকার।

ডাটাগুলির বৈশিষ্ট্যগুলি নিম্নরূপ:

  • সিরিজের সংখ্যা: প্রায় 12.000 (বারো হাজার)
  • বিশ্বব্যাপী ডেটা পয়েন্টের সংখ্যা: প্রতিমাসে প্রায় 500.000.000 (পাঁচশত মিলিয়ন)
  • মিশ্র মানের ধরণ: বেশিরভাগ ডেটা পয়েন্ট হ'ল ফ্লোটিং পয়েন্ট মান, বাকী স্ট্রিং
  • নমুনা সময়কাল: সিরিজের পাশাপাশি একটি সিরিজের মধ্যে পরিবর্তনশীল
  • টাইমস্ট্যাম্পস: মিলিসেকেন্ড যথার্থতা
  • ডেটা ধরে রাখার সময়কাল: কয়েক বছর, ক্ষয় বা ডাউনস্যাম্পলিং ছাড়াই
  • ডেটা সংরক্ষণাগারগুলি নিকটবর্তী রিয়েলটাইমে তৈরি করা দরকার, তবে একটি যুক্তিসঙ্গত বিলম্ব (~ 1 ঘন্টা) গ্রহণযোগ্য
  • অতীতে ডেটা প্রয়োজনে পুনর্নির্মাণ করা যেতে পারে তবে উচ্চ ব্যয়ে at
  • কখনও কখনও, তবে বেশ কমই, কিছু অতীত ডেটা আপডেট করা প্রয়োজন needs

কল্পনাযুক্ত প্রশ্নের বৈশিষ্ট্য:

  • ডেটা বিরুদ্ধে প্রশ্নগুলির বেশিরভাগ টাইমস্ট্যাম্প-ভিত্তিক ক্যোয়ারী হবে; একদিন থেকে শুরু করে বেশ কয়েক মাস / বছর অবধি। 90% + সর্বাধিক সাম্প্রতিক ডেটাতে অনুসন্ধান করা হবে

অন্যান্য প্রয়োজনীয়তা:

  • সমাধানটি অবশ্যই বিয়ারের মতো মুক্ত এবং পছন্দসই মুক্ত উত্স হতে হবে

আমার প্রাথমিক চিন্তাভাবনাটি ছিল এসকিউএল ডাটাবেসের পরিবর্তে পিডিএবেলস / পান্ডাসকে এইচডিএফ 5 ফাইলগুলি ব্যাকএন্ড সংরক্ষণের জন্য ব্যবহার করা ।

প্রশ্নসমূহ:

  1. পাইটিবেলস / পান্ডাসকেই "সেরা" রুট বলে ধরে নিচ্ছেন, বেশ কয়েকটি এইচডিএফ ফাইলগুলিতে ডেটা ভাগ করা ভাল, প্রতিটি প্রত্যেকে নির্দিষ্ট সময়ের মধ্যে বিস্তৃত হওয়া বা একটি একক ফাইলে সমস্ত কিছু রেখে দেবে যা তখন বিশাল আকার ধারণ করবে?

  2. আমি কি গিয়ে স্থির বা টেবিল বিন্যাস পছন্দ করব? আমার কাছে, আমি যদি প্রতিমাসে একটি এইচডিএফ ফাইল রাখি তবে ফর্ম্যাটটি ঠিক আছে, কারণ পুরো সিরিজটি সম্ভবত র‍্যামের সাথে ফিট করে এবং আমি কোনও টেবিল বিন্যাস সূচকের প্রয়োজন ছাড়াই স্মৃতিতে টুকরো টুকরো করতে পারি। আমি কি সঠিক ?

এবং যদি এটি সর্বোত্তম পদ্ধতির না হয় তবে আমি কীভাবে এই ডেটা স্টোরটি গঠন করব বা আমার কোন প্রযুক্তিগুলি বিবেচনা করা উচিত? আমি টাইম সিরিজের ডেটাগুলির বড় সেটগুলি সঞ্চয় করার ক্ষেত্রে প্রথম নই, এই চ্যালেঞ্জটি সমাধান করার সাধারণ পদ্ধতির কী?


আমি বিবেচনা করেছি অন্যান্য পদ্ধতি:

  • অ্যারে ডাটাবেসগুলি: ধ্রুবক নমুনা সময়কালের সাথে টাইম সিরিজের জন্য এগুলি দুর্দান্ত এক উপযুক্ত, কারণ আপনার কেবল তখন আরম্ভের শুরু এবং শেষ সময় এবং স্যাম্পলিং পিরিয়ড সংরক্ষণ করতে হবে এবং তারপরে কেবল অ্যারেতে মানগুলি এবং ইনডেক্সিং সহজ। তবে সিরিজের মধ্যে পরিবর্তনশীল স্যাম্পলিংয়ের সময়কালের সাথে আমার আরও কাছাকাছি টাইমস্ট্যাম্প-> মান সম্পর্ক রাখা দরকার, যা আমার দৃষ্টিতে অ্যারে ডিবিএমএসের জন্য এতটা উপযুক্ত নয়।
  • টাইমস্ট্যাম্প, প্যারামিডি, কলাম হিসাবে মান সহ স্ট্যান্ডার্ড এসকিউএল ডাটাবেস কিন্তু তাদের প্রকৃতির দ্বারা তারা যে কোনও প্রশ্নের জন্য অনেক ডিস্ক আই / ও অনুরোধ করে

আপনার অ্যারে ডাটাবেসগুলি বিবেচনা করা উচিত - en.wikedia.org/wiki/Array_DBMS# তালিকা_আফারি_ডিবিএমএস । আমি বলছি না যে তাদের মধ্যে একটি সঠিক হবে, এমনকি সেরা বা এমনকি যথেষ্ট ভাল, উত্তর দিন, কেবলমাত্র তারা আপনার চিন্তাগুলিতে প্রবেশ করবে। সেই তালিকায় প্রবেশের পাশাপাশি রয়েছে কেডিবি সিস্টেম ( কেএক্স.কম ) যদিও এটি নিখরচায়।
উচ্চ পারফরম্যান্স মার্ক

আপনার সহযোগিতার জন্য ধন্যবাদ। আমি অ্যারে ডেটাবেসগুলি বিবেচনা করেছি তবে আমি যে সমস্যাগুলির সাথে এটি খুঁজে পাচ্ছি তা হ'ল ধ্রুবক নমুনা সময়কালের সাথে সময় সিরিজের জন্য এটি একটি দুর্দান্ত ফিট , কারণ আপনাকে কেবল আরম্ভের সময় এবং শেষের সময় এবং অ্যারের নমুনা সময়কালের সংরক্ষণ করতে হবে এবং তারপরে কেবলমাত্র মানগুলি হবে অ্যারে নিজেই এবং ইনডেক্সিং সহজ। তবে সিরিজের মধ্যে পরিবর্তনশীল স্যাম্পলিংয়ের সময়কালের সাথে , আমার আরও কাছাকাছি টাইমস্ট্যাম্প-> মান সম্পর্ক রাখা দরকার, যে আমার দৃষ্টিতে অ্যারে ডিবিএমএসের জন্য এতটা উপযুক্ত নয়। এই বলে যে, আমি ভুল প্রমাণিত হতে খুশি হবে।
ফ্লাইংগম 9'15

আমি এখন অবধি যা বিবেচনা করেছি তা যুক্ত করার জন্য সম্পাদনা প্রশ্ন
ফ্লাইংমিগ

প্রশ্ন: আপনার কি সমস্ত ডাটা স্টোর করা দরকার? সময়ের সাথে সাথে ডেটা ক্ষয় হতে পারে এবং / অথবা ভাসমান-ভিত্তিক সিরিজের জন্য কিছু গ্রহণযোগ্য মাত্রার যথার্থতা থাকতে পারে?
জে ট্রানা

1
@ মoinনুদ্দিন-কাদ্রি আমি টেবিল বিন্যাসটি ব্যবহার করে মাসিক এইচডিএফ 5 ফাইল দ্বারা ব্যাকড প্যান্ডাস ডেটা ফ্রেম অবজেক্ট ব্যবহার করে শেষ করেছি। সিস্টেমটি এক বছরেরও বেশি সময় ধরে চলছে এবং এসএসডি ডিস্কগুলি ব্যবহার না করে খুব স্থিতিশীল এবং দ্রুত দেখায়। আমি সময় পেলে উত্তর হিসাবে সেই সমস্তটির একটি লেখার চেষ্টা করব। অন্যথায় আমাকে প্রধানমন্ত্রী নির্দ্বিধায় বোধ করবেন।
ফ্লাইনিগ

উত্তর:


5

আপনি গ্রাফাইট প্রকল্পের অংশ কার্বন এবং ফিসফিসার দিকে একবার নজর রাখতে চাইতে পারেন । কার্বন খুব বড় পরিমাণে সময় সিরিজের ডেটা পরিচালনা করতে পারে। যদিও, এখন আমি ডক্সটি পড়েছি (এটি ব্যবহার করার কয়েক বছর হয়ে গেছে), এটি কেবল সংখ্যাসূচক ডেটার জন্য। আপনি বলেছিলেন আপনার কাছে স্ট্রিং ডেটা রয়েছে যাতে আপনি এটি দরকারী নাও পেতে পারেন। যদিও তারা কীভাবে বিপুল পরিমাণে ডেটা দ্রুত প্রক্রিয়া করতে সক্ষম হয় সে সম্পর্কে আপনি কিছু জ্ঞান অর্জন করতে সক্ষম হতে পারেন।

এটি কতটা স্কেল করে তা আপনাকে ধারণা দেওয়ার জন্য, যখন গ্রাফাইটটি প্রথম অরবিটজে উত্পাদনে রাখা হয়েছিল, তখন এটি প্রতি মিনিটে 160,000 মেট্রিক পরিচালনা করে ।


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

1
@ ফ্লাইংমিগ এত তাড়াতাড়ি ফিসফিস করে লিখবেন না। এর টাইমস্ট্যাম্পগুলি ইউনিক্স-যুগের মান। এবং প্রশ্নটিতে আপনি বর্ণিত "স্ট্রিং ডেটা" আরও এনামগুলির মতো শোনাচ্ছে এবং এগুলি সাধারণত ছোট পূর্ণসংখ্যার মান হিসাবে সঞ্চিত থাকে।
রস প্যাটারসন

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

3

ইনফ্লাক্সডিবি একটি ওপেন সোর্স ডাটাবেস যা গোয়ে লেখা হয়। এটি টাইম সিরিজের ডেটাগুলি হ্যান্ডেল করার জন্য বিশেষত রচিত হয়েছে এবং তারা বনাম ক্যাসান্দ্রার চেয়ে আরও ভাল পারফরম্যান্স দেখিয়ে বেঞ্চমার্কগুলি প্রকাশ করেছে :

ইনফ্লুডডিবি ক্যাসান্ড্রাকে ৪.৫x বৃহত্তর রাইটিং থ্রুপুট দিয়ে তিনটি পরীক্ষায় ছাড়িয়ে গেছে, যখন 10.8x কম ডিস্ক স্পেস ব্যবহার করে এবং পরীক্ষিত প্রশ্নের জন্য 168x দ্রুত প্রতিক্রিয়া বার সরবরাহ করে।


2

আপনি কলাম-ওরিয়েন্টেড ডাটাবেসগুলি চেকআউট করতে চাইতে পারেন। অ্যারে ডাটাবেসগুলি দ্বারা আপনি কী বোঝাতে চাই তা নিশ্চিত নই তবে আমার প্রস্তাবিত পদ্ধতির সাহায্যে আপনার প্রতি সময় ফ্রেমটিতে গতিশীল সংখ্যার মান থাকতে পারে। একই টাইমস্ট্যাম্পের জন্য আপনার একাধিক মান থাকতে পারে। মজার অংশটি হ'ল যদি আপনার একই টাইমস্ট্যাম্পে মানগুলি মাপা হয় তবে আপনি সেগুলি অতিরিক্ত কলাম হিসাবে সংরক্ষণ করতে পারেন (যেমন একটি সেন্সর যা তাপমাত্রা এবং আর্দ্রতা পরিমাপ করে, শেয়ার ব্যবসায়ের মূল্য এবং ব্যবসায়ের আকারে ...)। কলামমুখী প্রকৃতির কারণে আপনার 100 টি কলাম সহ টেবিল থাকতে পারে তবে যদি আপনার ক্যোয়ারীটি পাঁচটি কলামে অ্যাক্সেস করে তবে ডাটাবেসটি কেবল পাঁচটি কলামের ডেটা পড়ে।

আমি আপনার নিজস্ব সময় সিরিজ ডাটাবেস তৈরি সম্পর্কে একটি সিরিজ লিখেছি, আপনি এটি একবার দেখতে চাইবেন:

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.