স্কিমা-কম / নমনীয় + এসিডি ডাটাবেস?


15

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

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

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

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

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

এটি 'এসিআইডি বনাম এসিডি' লেনদেনের একটি "বা" কেস বা আরও ভাল উপায় আছে?


2
পোস্টগ্রেএসকিউএলে hstore মডিউলটি দেখুন। এটি কোনও এসকিউএল ডাটাবেসের অভ্যন্তরে "নোএসকিউএল": postgresql.org/docs/c
موجودہ

@ ঘোড়া: ধন্যবাদ ... এটি একটি ভাল পয়েন্টার আমি মাইএসকিউএলের জন্য নোএসকিউএল প্লাগইন শুনেছি। আমি পোস্টগ্রিসের জন্য একই রকম সন্ধান করছিলাম।
tmbsundar

উত্তর:


11

বিকল্প 1

এর বেশ কয়েকটি কারণ রয়েছে, যা আমি নীচে ব্যাখ্যা করব। প্রথমত, এটি কীভাবে করা যায় তা এখানে।

  • আপনার পছন্দসই স্ট্যান্ডার্ড আরডিবিএমএস প্ল্যাটফর্মটি ব্যবহার করুন।

  • বেশ কয়েকটি ব্যবহারকারী-কনফিগারযোগ্য ক্ষেত্রগুলি সহ আপনার স্কিমা সেট আপ করুন এবং আপনার অ্যাপ্লিকেশনটিকে প্রতি ভাড়াটে ভিত্তিতে কনফিগারেশনের সুবিধার্থে করুন।

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

  • ক্লায়েন্ট তাদের নিজস্ব ব্যক্তিগত উদাহরণের জন্য অর্থ প্রদানের জন্য এবং কাস্টম বিল্ডটি রক্ষণাবেক্ষণ না করা হলে এর চেয়ে আরও কাস্টমাইজেশন সরবরাহ করার চেষ্টা করবেন না (অর্থাত্ স্কিমায় কোনও আমূল পরিবর্তন নেই)।

এর পিছনে কারণগুলি হ'ল:

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

  • তারা পরিপক্ক, সু-বোঝা প্রযুক্তি।

  • আরডিবিএমএস প্ল্যাটফর্মগুলিতে সিস্টেম পরিচালনা, ব্যাকআপ / পুনরুদ্ধার, প্রতিলিপি, প্রতিবেদনকরণ এবং দুর্যোগ পুনরুদ্ধার সবই ভাল সাজানো।

  • আপনি সমস্ত বড় আরডিবিএমএস প্ল্যাটফর্মের জন্য জেডিবিসি সহ ক্লায়েন্ট লাইব্রেরি পেতে পারেন।

  • প্রতি ব্যবহারকারীর কাস্টমাইজেশনের জন্য এবং আপনার অ্যাপ্লিকেশন মেটাডেটা থেকে উত্স তৈরি করা যেতে পারে Views

  • এটি এক্সএমএল ক্ষেত্রগুলি বা ইএভি কাঠামোর চেয়ে যথেষ্ট কার্যকর efficient


@ COTW: বিস্তারিত উত্তরের জন্য ধন্যবাদ। একটা বড় বিষয় যার সাথে আমি উদ্বিগ্ন ছিল তা হ'ল স্কিমা "প্রত্যাশিত" পরিবর্তন, যা আমি অনুমান করি যে আমাকে আগে থেকেই চিন্তা করতে হবে এবং এটিকে যথাসম্ভব "প্রাক-কনফিগারযোগ্য" করে তুলতে হবে এবং পরে কঠোর স্কিমার পরিবর্তন এড়াতে হবে।
tmbsundar

যদি কোনও একক ভাড়াটে লোকের জন্য বিপর্যয় পুনরুদ্ধার সহজ হয় না যদি তারা টেবিলগুলি ভাগ করে নিচ্ছে। (যদি প্রতিটি সারিতে ভাড়াটে আইডি নম্বর থাকে))
মাইক শেরিল 'ক্যাট রিক্যাল'

এটি করুন, তবে একটি JSON কলামটি ব্যবহার করুন: gist.github.com/tobyhede/2715918
mwhite

5

পোস্টগ্রেএসকিউএল-এর সাথে আপনার কাছে একাধিক প্রজাস্বত্ব মোকাবিলার জন্য পৃথক ডাটাবেস, পৃথক স্কিমাস বা মতামত ব্যবহারের বিকল্প রয়েছে।

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

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

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

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

আপনার কেবলমাত্র সম্ভাব্য উদ্বেগ হ'ল যদি আপনাকে একটি নতুন কলাম যুক্ত করতে হয় যা বিদ্যমান সূচকগুলিতে যুক্ত করা প্রয়োজন বা একটি নতুন সূচক প্রয়োজন। সূচকটি তৈরি হওয়ার সময় সারণী ব্যবহার থেকে তালাবন্ধ হয়ে যেতে পারে - তবে পোস্টগ্রাইএসকিউএল টেবিলটি লক না করে একই সাথে সূচী তৈরির ক্ষমতা সমর্থন করে। নতুন সূচকটি অনন্য হওয়ার প্রয়োজন না হলে এবং এটি একটি স্বতন্ত্রতা লঙ্ঘন খুঁজে না পাওয়া পর্যন্ত এটি কাজ করে।

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


1
9.1 দিয়ে আপনি এমনকি টেবিলটি লক না করে একটি অনন্য বাধা বা প্রাথমিক কী প্রতিস্থাপন করতে পারেন। এখানে দেখুন: depesz.com/index.php/2011/02/19/…
a_horse_with_no_name

একমত। আমি বলার চেষ্টা করছিলাম যে কোনও অনন্য সূচক তৈরি করা হলেও সমস্যা দেখা দেয় তবে সীমাবদ্ধতা লঙ্ঘিত হয় - তবে আপনাকে স্বতন্ত্রতা সমস্যাটি সমাধান করতে হবে। এটি প্রতি সেচ সূচকগুলি যুক্ত করার চেয়ে কলামগুলি যুক্ত করার আরও সমস্যা।
ডানকান পাউলি

@ ডানকানপুলি: অন্তর্দৃষ্টিটির জন্য ধন্যবাদ। আমি আপনার উত্তর থেকে বুঝতে পেরেছি যে পোস্টগ্র্যাস্কল 'অনলাইন / লাইভ স্কিমা পরিবর্তনের' অনুমতি দেয়। তবে, আমি গুগল করার সময়, আমি বেশিরভাগ 'ফেসবুক অনলাইন স্কিমা পরিবর্তন' বা 'পিটি-অনলাইন ...' ইত্যাদি পাই যা মাইএসকিউএল সম্পর্কিত to আপনি কি এমন কোনও লিঙ্ক বা উপাদান সম্পর্কে জানবেন যা আমাকে পোস্টগ্রেস্কেলের জন্য লাইভ স্কিমা পরিবর্তন বুঝতে সহায়তা করে? আপনার সাহায্য তারিফ করা. ধন্যবাদ।
tmbsundar

এই লিঙ্কটি কীভাবে আপনি টেবিলগুলি postgresql.org/docs/8.1/static/ddl-alter.html পরিবর্তন করতে পারবেন তা বর্ণনা করে । মনে রাখা গুরুত্বপূর্ণ নীতিটি হ'ল সারণী বা ভিউগুলি তৈরি করা, পরিবর্তন করা এবং ছেড়ে দেওয়া কার্যত তাত্ক্ষণিক; সূচী তৈরি করা এবং পরিবর্তন করা ছাড়া আর কিছু নয়।
ডানকান পাউলি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.