ডাটাবেস স্কিমা স্থানান্তরগুলি কি পরিবেশের পরিবেশে কোনও সমস্যা?


13

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

আমি এই ব্লগ পোস্টটি মঙ্গোডিবি ব্লগে পড়েছি: স্কিমলেস কেন?

উত্তর:


20

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

আমি যুক্ত করব যে মঙ্গোডিবি ব্লগ পোস্টে ব্যবহৃত উদাহরণটি কিছুটা সরল এবং হ্যান্ডেল করার জন্য খুব সহজ কেস যদি আপনি কোনও শালীন আপডেট প্রক্রিয়া পেয়ে থাকেন তবে আরডিবিএমএস যাই হোক না কেন; ক্ষেত্র যোগ করা খুব কমই ব্যথা করে। এটি যখন আপনি নিজের Nameক্ষেত্রকে বিভক্ত করার সিদ্ধান্ত নেন FirstNameএবং LastNameজিনিসগুলি আকর্ষণীয় হয়।


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

3
@ কাওয়িং-চিউ আরডিবিএমএসের লবণের মূল্য লেনদেনমূলক ডিডিএল রয়েছে, এটি এটিকে একটি সমস্যার সমাধান করে তোলে। স্কিমার পরিবর্তন এবং ডেটা সংশোধন করে একক লেনদেনের কাজ করতে হবে যা আবার ঘুরিয়ে দেওয়া যায়।
ব্লারফ্লায়

19

তবে আপগ্রেড করার সময় কি সত্যিই এটি একটি বড় সমস্যা?

এটা হতে পারে.

কিছু সংস্থা হ'ল - ভাল - অগোছালো, এবং স্কিমা স্থানান্তরের খুব খারাপ কাজ করে।

  1. "মাইগ্রেশন উইকএন্ড"। সার্ভারগুলি বন্ধ করুন। ব্যাক আপ এবং সমস্ত ডেটা রফতানি করুন। নতুন স্কিমা তৈরি করুন (প্রায়শই বিদ্যমান স্কিমাটি সংশোধন করে)। ডেটা পুনরায় লোড করুন বা জায়গায় পুনর্গঠন করার চেষ্টা করুন।

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

  3. "সম্পূর্ণ আতঙ্ক"। কেবল স্কিমা পরিবর্তনগুলি প্রতিরোধ করুন। একটি বড় দুর্গন্ধ। দাবি ঝুঁকি খুব বেশি। এই দিকে সমস্ত প্রচেষ্টা অবরুদ্ধ। আরও কিছু বুদ্ধিমান পন্থা অবলম্বন করতে বাধ্য না করা পর্যন্ত স্কিমা জিম্মি করে নিন।

রিলেশনাল ডাটাবেসগুলি কি এই জাতীয় ক্রিয়াকলাপের জন্য খারাপ?

যে কোনও স্কিমা হ'ল স্থানান্তরিত হওয়া ব্যথা pain

বৃহত্তম সমস্যা প্রযুক্তিগত নয়।

এটা শব্দার্থক।

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

ডাটাবেসের শব্দার্থকে সংশোধন করা খুব কঠিন হতে পারে।

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


9
আমি এটা পড়ে নোংরা লাগছে।
মাইকেল বর্গওয়ার্ট

3
উচ্চারণের দুর্দান্ত পালনের জন্য +1; "স্কিমা জিম্মি নেওয়া"। একটি ভাল উপমা। সেখানে আছেন, অভিজ্ঞ।
ওয়ারেন পি

1
তবে অ্যাপ্লিকেশনটিকে যেভাবেই আপগ্রেড করতে হবে, সুতরাং doeas সত্যিই একটি স্কিমলেস ডাটাবেস অনেক সাহায্য করবে?
জোনাস

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

3

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


1

এটা নির্ভর করে.

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

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

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

আপনি ফেসবুক দ্বারা নির্মিত একটি ইউটিলিটি পরীক্ষা করতে পারেন মাইএসকিউএল স্কিমা আপডেটগুলি মোকাবেলার জন্য ।

এছাড়াও, স্ট্যান্ডার্ড সেরা অনুশীলনগুলি যেমন আপনাকে কেবল পঠনযোগ্য পঠিত করে তোলা, দাসগুলিতে পরিবর্তন করা বা বিকাশের অনুলিপি ইত্যাদি are

যাই হোক না কেন, একটি সম্পূর্ণ ব্যাকআপ এবং বিস্তৃত পরীক্ষার স্যুট হওয়া আবশ্যক। তবেই আপনি আত্মবিশ্বাস ও নিরাপদে কোনও পরিবর্তন করতে পারবেন।


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