কীভাবে বিপুল পরিমাণ _ স্ট্রাকচারড_ ডেটা সঞ্চয় করবেন?


9

অ্যাপ্লিকেশনটি অবিচ্ছিন্নভাবে (প্রায় প্রতি সেকেন্ডে) ব্যবহারকারীর অবস্থান সংগ্রহ করবে এবং তাদের সংরক্ষণ করবে।

এই তথ্য কাঠামোগত হয়। একটি সম্পর্কিত সম্পর্কিত ডাটাবেসে, এটি হিসাবে সংরক্ষণ করা হবে: | user | timestamp | latitude | longitude |

তবে অনেক বেশি ডেটা রয়েছে। প্রতিদিন ব্যবহারকারীর জন্য 60 × 60 × 24 = 86,400 টি রেকর্ড থাকবে। এমনকি 1000 ব্যবহারকারীর সাথেও এর অর্থ দৈনিক 86,400,000 রেকর্ড।

এবং এটি প্রতিদিন কেবল 86,400,000 রেকর্ড নয়। কারণ এই রেকর্ডগুলি প্রক্রিয়া করা হবে এবং সেগুলির প্রক্রিয়াজাত সংস্করণগুলিও সংরক্ষণ করা হবে। সুতরাং, সংখ্যাটি প্রায় 2 দিয়ে গুণ করুন।

আমি কীভাবে ডেটা ব্যবহার করার পরিকল্পনা করছি

মূলত, আমি সহজে ব্যবহারের জন্য অবস্থানের ডেটার মোটা দানাযুক্ত সংস্করণগুলি তৈরির পরিকল্পনা করি। এটাই:

  1. প্রাপ্ত ডেটা রিট টাইমস্ট্যাম্পগুলি বাছাই করুন।
  2. ক্রমানুসারে এই তালিকায় ইটিং করে, অবস্থানটি উল্লেখযোগ্যভাবে পরিবর্তিত হয়েছে কিনা তা নির্ধারণ করুন (অক্ষাংশ এবং দ্রাঘিমাংশ কতটা পরিবর্তিত হয়েছে তা পরীক্ষা করে)
  3. আউটপুটটিতে একক প্রবেশ হিসাবে অ-উল্লেখযোগ্য অবস্থানের পরিবর্তনগুলি উপস্থাপন করুন (অতএব, আউটপুট অবস্থানের ডেটাটির একটি মোটা দানাযুক্ত সংস্করণ)।
  4. একটি উল্লেখযোগ্য পরিবর্তনের জন্য আরও বৃহত্তর অক্ষাংশ এবং দ্রাঘিমাংশের পরিবর্তন প্রয়োজনের মাধ্যমে আউটপুটটিতে এই প্রক্রিয়াটি ইটারেট করুন। অতএব, পূর্ববর্তী আউটপুট থেকে উত্পাদিত আউটপুট আরও মোটা দানাযুক্ত হবে।
  5. যতটা প্রয়োজন তেমন পুরো প্রক্রিয়াটি ইটারেট করুন।
  6. একাধিক রেজোলিউশনকে একত্রিত করুন এবং তাদের ব্যবহারকারীদের কাছে প্রেরণ করুন। এছাড়াও, পরবর্তী ব্যবহারের জন্য ডেটাগুলির সমস্ত রেজোলিউশন সংরক্ষণ করুন।

এই ডেটা সংরক্ষণ করার জন্য আমার কী ব্যবহার করা উচিত? আমার কি কোনও রিলেশনাল ডাটাবেস বা নোএসকিউএল সমাধান ব্যবহার করা উচিত? এই অ্যাপ্লিকেশনটি ডিজাইন করার সময় আমার আর কোন বিষয় বিবেচনা করা উচিত?


3
2000 সেকেন্ডে প্রতি সেকেন্ডে রেকর্ড সম্ভবত আপ-টু-ডেট এসকিউএল ইঞ্জিনকে সমস্যা করবে না। একটি সাধারণ ক্ষমতা পরীক্ষা হ'ল একটি কনসোল প্রোগ্রাম পাওয়া যা কিছু ফাইল এলোমেলোভাবে লিখতে পারে যা প্রচুর পরিমাণে বোঝা হয়ে যায়।
কালেথ

1
@ ক্যালথ কিন্তু এটি কি স্কেলেবল? ব্যবহারকারীর বেস যখন 100 গুণ বাড়বে তখন কী হবে?
উত্কু

3
আপনার হার্ডওয়্যার বর্তমানে কী পরিচালনা করতে পারে তা পরিমাপ করুন। বাধাটি সম্ভবত সিপিইউতে "প্রসেসিং" মানগুলি, বা কাঁচা ডিস্কের গতির হতে পারে। আপনি কি মনস্থ করি না এই তথ্য সব? স্টোরেজের জন্য আপনি কোন প্রযুক্তিটি বেছে নেবেন তা
সেটিকে

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

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

উত্তর:


9

এই ডেটা সংরক্ষণ করার জন্য কিছু বিকল্প:

  1. অ্যাপাচি কাফকার মতো বার্তার সারি (সম্ভবত বিতরণ করা হয়েছে)

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

  1. সম্পর্কিত ডেটাবেস

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

  1. ক্যাসান্দ্রার মতো নোএসকিউএল ডাটাবেস বিতরণ করা হয়েছে।

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

  1. হডোপ / ফাইল

ডেটা ফাইলগুলিতে সংযুক্ত করা হয় যা হ্যাডোপ প্ল্যাটফর্মের মাধ্যমে সার্ভারগুলিতে স্বয়ংক্রিয়ভাবে বিতরণ করা হয়, এম / আর বা অ্যাপাচি স্পার্কের মতো সরঞ্জামগুলি ব্যবহার করে সেই সার্ভারগুলিতে প্রক্রিয়াজাত করা হয় এবং শেষ পর্যন্ত হিভ বা ইমপালার মতো হ্যাডোপ এসকিউএল ইঞ্জিন ব্যবহার করে অনুসন্ধান করা (ফাইল হিসাবে) অনুসন্ধান করা হয়।

কোনটি বেছে নেবে?

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


আমি কীভাবে ডেটা ব্যবহার করার পরিকল্পনা করছি সে সম্পর্কে আরও বিশদ সরবরাহ করেছি। আপনি কি এই তথ্য প্রদত্ত কিছু যুক্ত করতে চান?
উত্কু

"রেজোলিউশন" বলতে আপনার অর্থ কী তা এখনও আমার কাছে পরিষ্কার নয় quite আপনি কি ভৌগলিক স্তরে (শহর, রাজ্য, ...) বা জিওহশের মতো কোনও স্থানাঙ্ক ব্যবস্থায় সমষ্টি করতে চান? অথবা আপনি চলাচলের প্রান্তিকের উপর ভিত্তি করে বিজ্ঞপ্তি তৈরি করতে চান বলে আপনি কি ডেল্টার পরিমাণে আগ্রহী? সংক্ষেপে: এই সব কিসের জন্য?
জোয়েরি সেব্রেচটস

এটি ট্র্যাকিং ব্যবহারকারীদের জন্য। ব্যবহারকারীরা একে অপরকে ট্র্যাক করে এবং আমি গ্রাফ করি যেখানে ব্যবহারকারীরা তাদের ট্র্যাক করেছেন তারা ডিভাইসে সর্বশেষ 5 ঘন্টা ধরে ছিলেন। মূলত, সূক্ষ্ম দান করা ভাল, আরও ভাল। তবে, মোবাইল ডিভাইসগুলির মধ্যে সীমিত পরিমাণে মেমরি থাকে, সুতরাং আপনি এর রেজোলিউশন হ্রাস না করে ডেটা প্রেরণ করতে পারবেন না। এটি হ'ল বলুন যে ব্যবহারকারী এ, বি, সি এবং ডি ট্র্যাকিং করছে যদি আমি সার্ভারের দিক থেকে কোনও প্রসেসিং না করে বি, সি এবং ডি থেকে যে কোনও অবস্থানের ডেটা সহজভাবে প্রেরণ করি তবে ব্যবহারকারী এ এর ​​ডিভাইসের স্মৃতি খুব দ্রুত পূরণ হবে । সুতরাং, আমার কিছু প্রসেসিং করা দরকার need
উত্কু

যদি আপনি যা বর্ণনা করছেন তা আমি যদি তৈরি করতাম তবে আমি এটিকে স্পার্ক স্ট্রিমিংয়ের মাধ্যমে সংযুক্ত কাফকা লগগুলির একটি সিরিজ হিসাবে তৈরি করব, যেখানে স্পার্ক স্ট্রিমের উইন্ডোজগুলিতে অবস্থানগুলি সংহত করা হয়েছে এবং চূড়ান্ত আউটপুট কাফকা লগটি টান হিসাবে সরবরাহ করা হবে এবং ক্লায়েন্টদের কাছে ওয়েব এপিআই চাপুন। তবে ... এটি অনেক নির্দিষ্ট প্রযুক্তি এবং আপনার পটভূমি এবং উপলভ্য সময়ের উপর নির্ভর করে সেই পছন্দগুলি আপনার পক্ষে ভুল হতে পারে।
জোয়েরি সেব্রেচটস

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

6

আপনার প্রয়োজনীয়তাগুলি আরও গভীরভাবে দেখুন। প্রতি সেকেন্ডে ট্র্যাকিং অবস্থানের মায়া তৈরির উপায় রয়েছে।

আপনার যদি এমন একটি অ্যাপ থাকে যা আপনার বর্তমান জিপিএস অবস্থানটি জানে এবং এটি একটি ডেটাবেজে লিখে রাখে, কেন স্থান পরিবর্তন না হলে আপনি কেন লিখতে থাকবেন? এমনকি আপনার যদি ডেটা প্রয়োজন হয়, এমনকি যদি ব্যবহারকারী 7 ঘন্টা ধরে ঘুমিয়ে থাকেন তবে আপনি নিজের গণনা বা ম্যাপিং বা আপনার যা কিছু করার দরকার তা করতে ডুপ্লিকেট অবস্থান সহ হারিয়ে যাওয়া সময় স্লটগুলি প্রোগ্রামিয়ালি পূরণ করতে পারেন।

আপনি যদি প্রতি সেকেন্ডে লোকেশনটি ট্র্যাক করেন, আপনার কি এই ডেটাগুলি চিরতরে সংরক্ষণ করতে হবে? বর্তমানের টেবিলটি খুব বড় হওয়া থেকে রোধ করতে আপনি অন্য ডাটাবেসে রেকর্ডগুলি সংরক্ষণাগারভুক্ত করতে পারেন। অথবা আপনি এমনকি কোনও অবস্থান পরিবর্তন আছে যেখানে রেকর্ড রাখতে পারেন। এটি ডেটা গুদামগুলিতে সাধারণ।


2

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

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

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