দুটি পৃথক স্কীমার মধ্যে ডেটা তুলনা সম্পাদনের সরঞ্জাম আছে?


11

আমরা আমাদের ডাটাবেসটিকে একটি নতুন স্কিমাতে স্থানান্তরিত করছি তবে তথ্যটি সঠিকভাবে সরানো হয়েছে want

Ditionতিহ্যগত ডেটা তুলনা সরঞ্জামগুলি যদি স্কিমগুলি একই হয় তবে পার্থক্যের জন্য দুটি ডাটাবেসের তুলনা করতে পারে। আমাদের ক্ষেত্রে টেবিল ডিজাইনের পরিবর্তন হয়েছে তবে পুরানো স্কিমা থেকে সমস্ত ডেটা নতুনটিতে রয়েছে, এটি কিছুটা সরিয়ে নেওয়া হয়েছে, এবং আমার এটি সঠিক কিনা তা নিশ্চিত করা দরকার। আমাদের কাছে কয়েক মিলিয়ন সারি রয়েছে সুতরাং ম্যানুয়াল পরিদর্শন কোনও বিকল্প নয়।

এই ধরণের তুলনায় সহায়তা করতে পারে এমন কোন সরঞ্জাম রয়েছে?

যদি নেই এমন কোনও লাইব্রেরি / ফ্রেমওয়ার্ক রয়েছে যা কাস্টম সমাধানের বিকাশ শুরু করতে সহায়তা করতে পারে?

এসকিউএল সার্ভার ২০০৮ এর ক্ষেত্রে, প্রয়োজনে একটি ডাটাবেস নির্দিষ্ট সমাধান ব্যবহার করে আমি খুশি।

আমার দ্রাবক: আমি VIEWনতুন ডাটাবেস টেবিলের মতো একই ক্ষেত্রগুলির সাথে পুরানো ডাটাবেসে প্রতিটি টেবিলের একটি তৈরি করে দুটি ডেটা সেট তুলনা করছি ।

আমি তখন এখানে বর্ণিত কৌশলটি ব্যবহার করে ডেটা তুলনা করি : এসকিউএল সার্ভারে দুটি টেবিলের তুলনা করার সবচেয়ে সংক্ষিপ্ততম, দ্রুত এবং সহজতম উপায়: ইউনিয়ন!

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

UNIONতুলনা শো আমাকে শুধুমাত্র পার্থক্য সারি, তাই যত তাড়াতাড়ি ডাটা সঠিক আমি একটি খালি ফলাফল সেট করুন।


1
স্কিমার পরিবর্তন হয়ে গেলে আপনি কীভাবে ডেটা সঠিক তা জানবেন? একটি টেবিল বিভক্ত করা হয়েছে, বা একত্রিত ইত্যাদি?
জিবিএন


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

@ টনি আপনি অবশ্যই রেড-গেটের সরঞ্জাম (অন্য কারও সম্পর্কে নিশ্চিত নন) দিয়ে এটি করতে পারেন, আপনাকে কেবল কিছু ম্যানুয়াল ম্যাপিং করতে হবে।
অ্যারন বারট্র্যান্ড

@ টনি বিভিন্ন স্কিমা, একই ডাটাবেস? নাকি বিভিন্ন স্কিমা, বিভিন্ন ডাটাবেস?
অ্যারন বারট্র্যান্ড

উত্তর:


7

দুটি পৃথক স্কীমার তুলনা করা অসম্ভব নয়, এটি আপনি কতটা আত্মবিশ্বাসী ফলাফলের ফলাফল তা গণনা । আমি মূলত ব্যাংক পুনর্মিলন কৌশল থেকে ধার নিয়েছি

গুরুত্বপূর্ণ: এই পুনর্মিলনটি গন্তব্যটি ঠিক তার ডেটা প্রসঙ্গে উত্সের সাথে মিলছে কিনা তা নিশ্চিত করার বিষয়ে নয় (আপনি নতুন সিস্টেমে স্থানান্তরিত হওয়ার কোনও কারণ রয়েছে) তবে আপনাকে কোনও তাত্পর্য ব্যাখ্যা করার দরকার নেই!

বেসিস:

  1. আপনি যে মেট্রিকগুলি পরিমাপ করতে ব্যবহার করবেন তা সনাক্ত করুন (যেমন: মোট ব্যবহারকারীর সংখ্যা, তাদের সমস্ত বয়সের সমষ্টি, ব্যবহারকারীর আইডির তালিকা এবং তাদের পোস্টকোডগুলি ...) আমি এর থেকে বেশ কয়েকটি মেট্রিক ব্যবহার করার চেষ্টা করি: মোট, গড় এবং নমুনা / বিস্তারিত রেকর্ড
  2. এই ডেটাটিকে একটি সাধারণ স্থানে ফেলে দিন (ভিউ / রিপোর্ট / যা যুক্তিসঙ্গত তা দিয়ে)
  3. আপনার ডেটা তুলনা করুন এবং নিশ্চিত করুন যে কোনও তাত্পর্য ব্যাখ্যা করা যেতে পারে

আমি তুলনাকে বেশ কয়েকটি পদ্ধতিতে বিভক্ত করেছি (বিশেষত বিস্তারিত মেট্রিকের জন্য):

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

কৌশল:

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

  1. ফাইলের তুলনা
    সোর্সডিবি এবং গন্তব্য ডিবি (সময় / সংস্করণ স্ট্যাম্পড তাই আমি জানি যে আমি পুনর্মিলনটি কখন করেছি) এর জন্য দুটি পৃথক ফোল্ডার তৈরি করুন এবং প্রাসঙ্গিকভাবে নামযুক্ত ফাইল হিসাবে আমার মেট্রিকের আউটপুট ফেলে দিন, তারপরে পার্থক্য সনাক্ত করতে তুলনা সরঞ্জাম (যেমন সিএসডিফ ) ব্যবহার করুন

  2. এক্সেল তুলনা
    বিশেষ করে ম্যানেজমেন্ট রিপোর্টগুলির সাথে ডিল করার সময়, আমি প্রতিবেদনের তুলনা করার জন্য এক্সেল ওয়ার্কবুকের একটি সেট তৈরি করব (সংক্ষেপে ভ্লুকআপগুলি ব্যবহার এবং মোটের তুলনা করে)

  3. ডেটা তুলনা
    ফাইল বা রিপোর্টগুলিতে পুনর্নির্মাণের ডেটা আউটপুট না করে ডিবি আলাদা করতে আউটপুট দেয়, তারপরে রেডগেট এসকিউএল ডেটার মতো কিছু ব্যবহার করুন ডিবি তুলনা করার জন্য

অন্যান্য সরঞ্জাম:

এগুলির কোনও চেষ্টা করে দেখেনি, তবে 'ডেটা মিলিয়েটনের সরঞ্জামসমূহ' এ একটি দ্রুত গুগল অনুসন্ধান দেয়:

অন্যদের আছে, কিন্তু সেগুলি যুক্তিসঙ্গত মনে হয়েছিল


পরামর্শের জন্য ধন্যবাদ। যেমন আপনি বলেছেন, এটি অসম্ভব নয় (আমি এই মুহুর্তে একটি সমাধানের জন্য কাজ করছি) এটি কেবল কঠিন। আপনার উল্লিখিত পদ্ধতিগুলিতে আমি নজর রাখব।
টনি

টনির কোনও উদ্বেগ নেই, আমি যে কৌশলটি পেয়েছি তা হ'ল চেষ্টা করে এটি ছোট ছোট পদক্ষেপে বিভক্ত করা এবং তারপরে প্রতিটি পদক্ষেপের জন্য বিদ্যমান সরঞ্জামগুলি খুঁজে পেতে (আপনার কিছু কাস্টম স্টাফ লিখতে হবে, এটি যেখানে সম্ভব সেখানে চেষ্টা কমিয়ে আনার জন্য)
অ্যান্ড্রু বিকারটন

6

আপনি যদি দুটি ভিন্ন ডাটাবেস ডিজাইনে ডেটা তুলনা করতে চান তবে আপনাকে ডেটা তুলনা করতে হ্যান্ড কোডেড এসকিউএল লিখতে হবে।

  • একটি টেবিল বিভক্ত করা হয়েছে, বা একত্রিত ইত্যাদি?
  • আপনার যদি ডেটটাইম থাকে তবে এখন আপনার কাছে ছোট সময়কাল = ডেটা আলাদা হবে
  • ...

তথ্য পরীক্ষার জন্য কাঠামোর কোনও লাইব্রেরি নেই দুটি পৃথক ডেটাবেজে একই।

আপনি কী পরিবর্তন করেছেন বা পরিবর্তন করেছেন তা কেবল আপনিই জানেন


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

1
@ টনি: হ্যাঁ: এটি কারণ যে কোনও সরঞ্জাম "কী ভুল তা" "আমরা কী বদলেছি" থেকে আলাদা করতে পারি না
জিবিএন

5

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

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

বেদনার মতো শোনাচ্ছে। শুভকামনা!


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

2

কয়েক বছর আগে আমি এটি করার জন্য একটি সরঞ্জাম লিখেছিলাম - দুটি ডাটাবেসের মধ্যে একটি ডেটা তুলনা। তার পর থেকে আমি এটিকে বাণিজ্যিক সফ্টওয়্যারে রূপান্তর করেছি এবং এটিতে প্রকাশ করেছি

www.sql-server-tool.com

  • একটি একক লাইসেন্সের দাম 99।, তবে আপনি 30 দিনের জন্য এটি বিনামূল্যে চেষ্টা করতে পারেন।

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

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

দারিউস জিজিয়ালটোস্কি-গিন্টো


আপনার অ্যাপ্লিকেশনটি সুপারিশ করার জন্য ধন্যবাদ, আমি এটি চেষ্টা করে দেখলাম তবে এটি বিভিন্ন স্কিমার সাথে তুলনা করে না , যা আমার করা দরকার। প্রথম টেবিল থেকে ডেটা পাওয়ার সময় এটি ব্যর্থ হয়েছিল। আমি নিশ্চিতও নই যে অ্যাপটি আমার কাছে থাকা পরিমাণের পরিমাণটি হ্যান্ডেল করবে কারণ সারিগুলির সংখ্যা তুলনায় সীমিত করার উপায় বলে মনে হচ্ছে না; যে টেবিলে আমি এটি পরীক্ষা করেছি তাতে 99 মিলিয়ন সারি রয়েছে।
টনি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.