কীভাবে কলাম-ওরিয়েন্টেড নোএসকিউএল ডকুমেন্ট-ভিত্তিক থেকে আলাদা?


90

আমি যে তিন ধরণের নোএসকিউএল ডাটাবেস পড়েছি তা হ'ল কী-মান, কলাম-ওরিয়েন্টেড এবং ডকুমেন্ট-ভিত্তিক।

কী-মানটি বেশ সোজা এগিয়ে - একটি সরল মান সহ একটি কী।

আমি কী-মানটির মতো বর্ণিত ডকুমেন্ট-ভিত্তিক ডাটাবেসগুলি দেখেছি, তবে মানটি JSON অবজেক্টের মতো কাঠামো হতে পারে। প্রতিটি "ডকুমেন্ট" এ সমস্ত, কিছু কিছু বা অন্যের মতো একই কী থাকতে পারে।

কলামমুখী হ'ল ডকুমেন্ট ওরিয়েন্টেড হিসাবে অনেকটা মনে হচ্ছে যে আপনি কোনও কাঠামো নির্দিষ্ট করেন নি।

সুতরাং এই দুটিয়ের মধ্যে পার্থক্য কী এবং আপনি কেন অন্যটির উপরে একটি ব্যবহার করবেন?

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

উত্তর:


41

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

কিছু ক্ষেত্রে, আপনার একটি সারিতে প্রচুর সংখ্যক কলাম থাকতে পারে (উদাহরণস্বরূপ নির্দিষ্ট ধরণের ক্যোয়ারী সক্ষম করতে সূচি হিসাবে কাজ করা)। ক্যাসান্দ্রা এ জাতীয় বৃহত কাঠামো দক্ষতার সাথে পরিচালনা করতে পারে এবং আপনি কলামের নির্দিষ্ট রেঞ্জগুলি পুনরুদ্ধার করতে পারেন।

সুপার-কলামগুলির নামে কাঠামোর আরও স্তর রয়েছে (সাধারণভাবে ব্যবহৃত হয় না), যেখানে একটি কলামে নেস্টেড (সাব) কলাম রয়েছে।

আপনি সামগ্রিক কাঠামোটিকে নেস্টেড হ্যাশটেবল / অভিধান হিসাবে 2 বা 3 স্তরের কী সহ ভাবতে পারেন।

সাধারণ কলাম পরিবার:

row
    col  col  col ...
    val  val  val ...

সুপার কলাম পরিবার:

row
      supercol                      supercol                     ...
          (sub)col  (sub)col  ...       (sub)col  (sub)col  ...
           val       val      ...        val       val      ...

এছাড়াও উচ্চ-স্তরের কাঠামো রয়েছে - কলাম পরিবার এবং কীস্পেস - যা আপনার ডেটা বিভক্ত করতে বা একসাথে আপনার ডেটা গ্রুপ করার জন্য ব্যবহার করা যেতে পারে।

এই প্রশ্নটিও দেখুন: ক্যাসান্দ্রা: একটি উপকলমন কী

অথবা http://wiki.apache.org/cassandra/ArticlesAndPferencesations থেকে ডেটা মডেলিং লিঙ্কগুলি

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

ক্যাসান্দ্রার কলাম মানগুলি কেবল বাইট, তবে ASCII, UTF8 পাঠ্য, সংখ্যা, তারিখ ইত্যাদি টাইপ করা যায়

অবশ্যই, আপনি জাসন সমন্বিত কলামগুলি সরিয়ে আদিম দলিল স্টোর হিসাবে ক্যাসান্দ্রাকে ব্যবহার করতে পারেন - তবে আপনি কোনও আসল নথিভিত্তিক স্টোরের সমস্ত বৈশিষ্ট্য পাবেন না।


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

4
এটি ডাটাবেসের উপর নির্ভর করে। মঙ্গোডিবিতে (নথিভিত্তিক) আপনি প্রতিটি একক কী আপডেট করতে পারেন।
ডেভিড রাব

4
যদি এটি সত্য হয় তবে মংগাডিবি কীভাবে একটি নথিভিত্তিক ডাটাবেস সংজ্ঞায়িত করা হয়েছে যেখানে ক্যাসান্দ্রা কলাম ভিত্তিক। কিভাবে তারা ব্যতিক্রম?
লুক

4
@ লুক কলাম-ওরিয়েন্ট্ট দেখতে দেখতে অনেকটা স্কিমা-কম আরডিবিএমএসের মতো দেখায়, তবে এর আলগা কাঠামো ছাড়াও মূল পার্থক্য এটি তুলনামূলক নয় is
ব্যবহারকারী 327961

4
@ ব্যবহারকারী 327961 তবে মোংগোডিবিও একটি স্কিমা-কম আরডিবিএমএসের মতো এবং এটিও সম্পর্কিত নয়।
হুগি

55

মূল পার্থক্যটি হ'ল ডকুমেন্ট স্টোরগুলি (যেমন: মঙ্গোডিবি এবং কাউচডিবি) নির্বিচারে জটিল ডকুমেন্টগুলিকে অনুমতি দেয়, অর্থাত্ সাবডোক্যমেন্টের মধ্যে সাবডোকমেন্টস, নথির সাথে তালিকা ইত্যাদি ইত্যাদি যেখানে কলাম স্টোরগুলি (যেমন ক্যাসান্দ্রা এবং এইচবাস) কেবলমাত্র একটি নির্দিষ্ট বিন্যাসের অনুমতি দেয়, যেমন কঠোর এক-স্তরের বা দ্বি-স্তরের অভিধান


এই ক্ষেত্রে, মঙ্গো (নথি) ক্যাসেন্দ্র (কলাম) যা করতে পারে তা করতে পারে। কেন তখন কলাম দরকার?
সানজয় প্যাটেল

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

29

"সন্নিবেশ" এ, rdbms শব্দ ব্যবহার করতে, নথিভিত্তিক আরও সুসংগত এবং সোজা foward। ক্যাসান্দ্রার চেয়ে নোট আপনাকে কোরামের ধারণার সাথে ধারাবাহিকতা অর্জন করতে দেয় তবে এটি কলাম ভিত্তিক সমস্ত সিস্টেমে প্রযোজ্য হবে না এবং এটি সহজলভ্যতা হ্রাস করবে। একবারে / পড়ার জন্য প্রায়শই ভারী সিস্টেমে মঙ্গোডিবিতে যান। আপনি যদি সর্বদা অবজেক্টের পুরো কাঠামোটি পড়ার পরিকল্পনা করেন তবে এটি বিবেচনা করুন। ডকুমেন্ট-ভিত্তিক সিস্টেমটি পুরো নথিটি পেলে ফিরিয়ে আনার জন্য ডিজাইন করা হয়েছে এবং পুরো সারিটির অংশগুলি ফিরে আসতে খুব শক্তিশালী নয়।

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

এছাড়াও বিবেচনা করুন যে মঙ্গো ডিবি সি ++ তে লিখিত হয়েছে, এবং এটি দ্বিতীয় বৃহত্তম প্রকাশে রয়েছে, যখন ক্যাসান্দ্রার একটি জেভিএম চালানো দরকার, এবং এর প্রথম বড় প্রকাশটি কেবল গতকাল থেকেই মুক্তিপ্রার্থী হিসাবে রয়েছে (তবে ০. এক্স এক্স প্রকাশনা প্রযোজনায় পরিণত হয়েছে) বড় কোম্পানি ইতিমধ্যে)।

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


4
সি ++ বনাম জাভাতে কোনও সফটওয়্যার লেখা হয়েছে তাতে কী সমস্যা?
নায়ুকি

@ নায়ুকি এখন, আমি জানি যে উচ্চ-বিতর্কিত কাজের চাপ রয়েছে যেখানে জাভার স্মৃতি পরিচালনার মডেলটির অলস আবর্জনা সংগ্রহ সি +++ এর "ম্যানুয়াল" পরিচালনার মডেলটিকে তত্ত্বের তুলনায় কার্যকর করবে, তবে সাধারণভাবে বলতে গেলে, একটি সমমানের লেখার দ্বারা জাভা ছাড়িয়ে যাওয়া সাধারণত কঠিন নয় সি ++ এ প্রোগ্রাম করুন, যতক্ষণ আপনি ব্যতিক্রম এবং আরটিটিআই অক্ষম করবেন। এবং যদি আপনি স্ট্যাকলেস কর্টিনগুলি এবং পুনঃসূচনাযোগ্য ফাংশনগুলির ভাল ব্যবহার করেন তবে ভাল, আমি ব্যক্তিগতভাবে জাভাটি আমার সি ++ তে পরাজিত হতে দেখিনি।
patrickjp93

0

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

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

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