এসকিউএল থেকে নোএসকিউএল স্থানান্তরিত করা কোন আকারের ডেটা উপকারে পরিণত হয়?


24

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

মাইএসকিউএল এর সাথে লড়াই করে দেখার জন্য আমি কোন ধরণের আকারের প্রত্যাশা করব। কত সারি?

(আমি জানি এটি অ্যাপ্লিকেশন, এবং সঞ্চিত ডেটা ধরণের উপর নির্ভর করে। যা আমার কাছে পেয়েছে তা মূলত একটি জেনেটিক্স ডাটাবেস ছিল, সুতরাং একটি প্রধান টেবিল থাকবে 3 বা 4 টি সন্ধানের টেবিলের সাথে The মূল টেবিলটি এতে থাকবে অন্যান্য জিনিস, একটি ক্রোমোজোম রেফারেন্স এবং অবস্থানের স্থানাঙ্ক। এটি সম্ভবত কোনও ক্রোমোসোমে দুটি ত্বকের মধ্যে বেশ কয়েকটি প্রবেশের জন্য জিজ্ঞাসা করা হবে যা সেখানে সঞ্চিত রয়েছে তা দেখার জন্য)।


4
আপনার সম্ভবত এই ধারণার অধীনে শ্রম করা উচিত নয় যে কোনও রিলেশনাল ডাটাবেস পরিচালনা করতে পারে এমন সারিগুলির সংখ্যার জন্য মাইএসকিউএল হ'ল উপরের সীমা। আপনি সত্যিই দুটি প্রশ্ন জিজ্ঞাসা করছেন: মাইএসকিউএল স্ট্রিং শেষ হয় না? এবং এসকিউএল আরডিবিএমএস ক্ষমতা সীমা কত? আপনি কোন উত্তর চান?
blrfl

উত্তর:


13

কত বড় ডেটা?

দুটি উল্লেখযোগ্য প্রান্তিকর রয়েছে:

  1. পুরো ডেটা র‍্যামে ফিট করে
  2. পুরো সূচী ডেটা র‍্যামের সাথে ফিট করে

দ্রুত এসএসডি সহ প্রথম প্রান্তিকতা কোনও সমস্যার থেকে কিছুটা কম হয়ে যায়, যদি না আপনার পাগল উচ্চ ট্র্যাফিক থাকে।

অম্লতা

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

কীভাবে আরডিবিএমএস ডেটা আকারে স্কেল করে?

এটি সম্পূর্ণ সত্য নয় যে আরডিবিএমএস ডেটা আকারে স্কেল করতে পারে না, এর দুটি বিকল্প রয়েছে: উল্লম্ব বিভাজন এবং অনুভূমিক বিভাজন (ওরফে শারডিং)।

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

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

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


9
ওরাকল, পোস্টগ্র্যাসকিউএল, মাইএসকিউএল, এমএস এসকিউএল সার্ভার এবং সিবাসে ক্লায়েন্টের কোনও কাজ না করেই দূরবর্তী সার্ভারগুলিতে টেবিলগুলি জুড়ে যোগ দিতে সক্ষম।
blrfl

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

2
@ ভার্টেক তাই আপনি আমার মেইল ​​ডাটাবেস থেকে আমার 2 বছরের পুরানো মেলটি ফেলে দিতে চান কারণ আমি এটির মাধ্যমে প্রতি মাসে একবার অনুসন্ধান করি যেখানে আমার মূল কার্যনির্বাহ সেটটি কেবল শেষ দশটি মেল?
johannes

3
@ ওয়ব্বিলি_কোল ইঙ্গিত: এটি নয়। যদি না আপনি ধারাবাহিকতা, নির্ভরযোগ্যতা বা স্থায়িত্ব সম্পর্কে চিন্তা করেন না। সেক্ষেত্রে আপনি প্রচুর জিনিসগুলি বন্ধ করতে পারেন যা একটিকে অন্যের চেয়ে দ্রুততর করে তোলে বা আপনি যদি চান তবে বিপরীতমুখী করতে পারেন। অনুমান করুন প্রত্যেকটির ডিফল্ট কনফিগারগুলি কী কী? (অবশ্যই মাইএসকিউএল ডেটা সুরক্ষার শিখর নয় ...)
জাভেয়ের

1
@ ভার্টেক "অটোমেটিক শারডিং" দুর্দান্ত, যেখানে এটি প্রযোজ্য। তবে হঠাৎ আপনি আর সমস্ত ডেটা একসাথে যোগ দিতে পারবেন না - ওহ অপেক্ষা করুন, আপনি কোনও ডকুমেন্ট ডাটাবেসের সাহায্যে এটি করতে পারবেন না যা সমস্ত ডেটা অনুসন্ধান করে বা রিপোর্ট তৈরি করা ক্লান্তিকর হয়ে পড়ে ... হ্যাঁ ডকুমেন্টের ডাটাবেসগুলির স্থান থাকে যখন ডেটা মডেল এবং অপারেশন ম্যাচ, অন্যান্য সিস্টেমের জন্য একই ... তথ্য পরিমাণ একা কোন ফ্যাক্টর নয় (আমি জানি যথেষ্ট পরিমাণে মাইএসকিউএল দৃষ্টান্তগুলি সফলভাবে টেরাবাইট অঞ্চলে ডেটা নিয়ে চলছে ... এবং কয়েকশ এমবি ব্যর্থ হওয়া প্রকল্পগুলি)
জোহানেস

13

আমি মনে করি না যে ডেটা আকার একমাত্র ফ্যাক্টর। "ডেটা মডেল" একটি খুব গুরুত্বপূর্ণ অঙ্গ।

ই-কমার্স ক্যাটালগ পৃষ্ঠাগুলি (সোলার, ইলাস্টিকসন্ধান), ওয়েব অ্যানালিটিক্স ডেটা (রিয়াক, ক্যাসান্দ্রা), স্টক প্রাইস (রেডিস), সোশ্যাল নেটওয়ার্কে সম্পর্কের সংযোগগুলি (নিও 4 জ, ফ্লিটডিবি) যখন কোনও NoSQL সমাধান সত্যিই জ্বলজ্বল করে তখন কিছু উদাহরণ।

আইএমএইচও, কোনও নোএসকিউএল সমাধান বা আরডিবিএমএস বিবেচনা করার সময় ডেটা আকারের চেয়ে ডেটা মডেলের আরও গুরুত্বপূর্ণ ভূমিকা থাকে।


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

1
যদিও এটি সত্য, এটি জিজ্ঞাসা করা প্রশ্নের উত্তর নয়।
ভের্টেক

এটি কেবল উত্তর নয়, সত্যও নয়। আপনি এসকিউএল ডাটাবেসে সারণীর মতো একটি নথি তৈরি করতে পারেন কেবলমাত্র জেএসএন ডেটা টাইপ ব্যবহার করে এবং এসকিউএল ডাটাবেস নোএসকিউএল-এর উপরে আলোকিত করতে।
ইয়েভেগেনি আফানসিয়েভ

6

যদি সম্পর্কিত ডেটাবেসগুলি স্কেল না করে তবে কিছুই করে না। স্কেলিং সমস্যা সম্পর্কে চিন্তা করবেন না।

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

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

সুতরাং বিকল্পটি হ'ল পুরো কাঠামোটিকে একটি বড় ডেটা ব্লকের মধ্যে স্থাপন করা, এটি লেবেল করা এবং সঞ্চয় করা। আপনি যখন ডেটা বিশ্লেষণ করতে চান তখন এগুলি সমস্ত একবারে মেমোরিতে পড়ুন, কাঠামোটি ট্র্যাক করার জন্য পয়েন্টার স্থাপন করুন এবং আপনি চোখের পলকে কয়েক মিলিয়ন অফিসে প্রক্রিয়া করতে পারেন।

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

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

যদি আপনার রিলেশনাল ডাটাবেস আপনাকে সমস্যা দেখা দেয় তবে আপনি এটিতে প্রচুর ডেটা রাখার আগে এটি তা করবে। আপনার কেবলমাত্র স্কেলিং সমস্যাটি আপনার প্রোগ্রামের সাথে হতে পারে যখন আপনি কোনও নসকিএল ডিবি-এর জন্য জমা রাখছেন এমন ডেটা ব্লক - যদি আপনাকে একটি ব্যবহার করতে হয় - এটির জন্য খুব বড় হয়ে ওঠে। (স্মৃতি ছাড়িয়ে থাকা ত্রুটিগুলি পড়ুন The নতুন ভাষাগুলি কখনও কখনও স্মৃতি সহ অদ্ভুত কাজ করে))


0

আমি মনে করি কোনও নোএসকিউএল বা বিতরণযুক্ত সমাধানে যাওয়ার প্রথম কারণটি সমস্ত ডেটার আকার নয়, তবে টেবিলগুলির আকার। বিতরণ সমাধানগুলি কী ভালভাবে কাজ করে তা বিভিন্ন নোডগুলিতে টেবিলগুলি বিভক্ত করা হয় তারপরে যখন আপনাকে টেবিলগুলি জিজ্ঞাসা করতে হবে, প্রতিটি নোড তাদের টেবিলের টুকরা প্রক্রিয়া করবে।

আরডিবিএমএস এটি করতে পারে তবে এটি করার জন্য নোএসকিউএল ডাটাবেসের নতুন তরঙ্গ তৈরি করা হয়েছে। ওরাকল, এমএসএসকিউএল, মাইএসকিউএল তাদের কেন্দ্রীভূত মডেল নিয়েছে এবং এটি একটি বিতরিত পরিবেশে কাজ করার জন্য এটি টুইট করেছে। তবে তারা এখনও কঠোর এসিডি বিধি মেনে চলে যখন কিছু নতুন ডাটাবেসগুলি কঠোর নিয়ম যেমন মেনে চলেন না যেমন চূড়ান্ত ধারাবাহিকতা ব্যবহার করে।

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


0

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

অন্যান্য ব্যক্তিদের মতোই বলেছেন যে আপনার আবেদনে কী ঘটছে তাও আপনার বিবেচনার উচিত। যদি আপনার একাধিক টেবিল জুড়ে সত্যই এসিডি দরকার হয় তবে আপনাকে আরডিবিএমএসের সাথে থাকতে হবে তবে আপনার যদি এমন কিছু থাকে যেখানে আপনার কাছে কিছুটা বাসি ডেটা থাকতে পারে এবং আপনার কোনও নুএসকিউএল স্কিমাটির নমনীয়তা প্রয়োজন (যদি আপনি পছন্দ করেন তবে এটি স্কিমহীন কল করুন তবে এটি পছন্দ করুন তারপরেও কিছু কিছু অন্তর্নিহিত স্কিমা রয়েছে) তারপরে আপনি কোনও নুএসকিউএল স্টোরটি ধরে নেওয়ার বিষয়টি বিবেচনা করতে পারেন ( http://www.10gen.com/customers/craigslist এখানে ক্রাইগলিস্ট কেন স্যুইচ করা হয়েছে তার একটি উদাহরণ ... তবে স্বীকারোচিত তারা they 10 টিবি সংরক্ষণাগার দিচ্ছে ডেটা, যা আমি জানি আপনার ছোট থেকে মাঝের আকারের ডাটাবেস আকারটি মোটেই ফিট করে না But তবে ব্যবহারের ক্ষেত্রে এটি সহায়ক হতে পারে)।

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


0

Mongoবেশ কয়েকটি কম্পিউটার / নোডে ইনস্টল করা যায়। শ্যাটারিংয়েরPostgreSQL জন্য অন্তর্নির্মিত সরঞ্জাম সরবরাহ করে না, যদিও সিটাস প্রায় রয়েছে।

মঙ্গোডিবি 64 টেরাবাইট পর্যন্ত ডাটাবেস সমর্থন করে এবং নথির আকার 16 মেগাবাইট।

মাইএসকিউএলে একটি ডাটাবেস সীমা রয়েছে 256 টেরাবাইট, 64 টেরাবাইট সারণীর জন্য সর্বোচ্চ আকার এবং 4 গিগাবাইট রেকর্ড সীমা

পোস্টগ্রিএসকিউএল- এর ডাটাবেজে কোনও সীমা নেই (4 টেরাবাইট পরীক্ষার জন্য কোথাও উপস্থিত রয়েছে) এবং এটি কোনও টেবিলে যে কোনও একটি ক্ষেত্রের আকারের জন্য 1 গিগাবাইটের সীমাবদ্ধতা রাখে এবং আবার কোনও টেবিলের সর্বাধিক আকারে 64 টেরাবাইট।

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