ETL: 200 টেবিল থেকে নিষ্কাশন - এসএসআইএস ডেটা প্রবাহ বা কাস্টম টি এসকিউএল?


12

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

লক্ষণীয়, আমাদের কাছে প্রায় একই স্কিমার সাথে প্রায় 225 উত্স ডাটাবেস রয়েছে।

আমি যা দেখেছি তা থেকে, এসএসআইএসে একটি ওএলডি ডিবি উত্স এবং OLE DB গন্তব্য সহ একটি সাধারণ ডেটা প্রবাহ তৈরি করার জন্য কলাম এবং ডেটা ধরণের ডিজাইনের সময় নির্ধারণ করা প্রয়োজন। এর অর্থ এই যে আমি শেষ পর্যন্ত কেবলমাত্র নিষ্কাশনের জন্য 200 এরও বেশি ডেটা প্রবাহের সাথে শেষ করব।

রক্ষণাবেক্ষণের দৃষ্টিকোণ থেকে, এটি আমাকে একটি বড় সমস্যা হিসাবে আঘাত করেছে। যদি আমি নিষ্কাশন কোডে কিছু ধরণের সুস্পষ্ট পরিবর্তন করার দরকার পড়ে তবে আমার 200 টি বিভিন্ন ডেটা প্রবাহকে সংশোধন করতে হবে।

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

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

  1. সহজ ডেটা প্রবাহের সাথে এসআইএসআইএস প্যাকেজগুলি ক্রমাগত উত্পন্ন করতে EZAPI ব্যবহার করা । সারণী এবং কলামগুলি বের করার জন্য আগে উল্লিখিত একই মেটাডেটা টেবিল থেকে আসবে।
  2. তৃতীয় পক্ষের সফ্টওয়্যার কিনুন (গতিশীল ডেটা ফ্লো উপাদান)

এটির কাছে যাওয়ার সর্বোত্তম উপায় কী? .NET প্রোগ্রামিংয়ের বিষয়টি যখন আমি একটি শিক্ষানবিস, তাই কেবলমাত্র বেসিকগুলির সাথে র‌্যাম্প করার জন্য প্রয়োজনীয় সময়টিও উদ্বেগের বিষয়।


1
যেহেতু সমস্ত 225 ডেটাবেজে একই স্কিমা রয়েছে, তাই সমস্ত 225 ডাটাবেস থেকে ডেটা ইউনিয়ন করে এবং এসএসআইএস প্যাকেজটিকে নির্দেশ করে এমন দৃষ্টিভঙ্গি রাখা কি সম্ভব? যদিও এটি ক্লোবার্বিংয়ের সরঞ্জামের মতো মনে হতে পারে এবং অগত্যা জাদুকরীভাবে সম্পাদন করবে না, এটি 225 এসএসআইএস প্যাকেজগুলির চেয়ে পরিচালনা করা অনেক সহজ বলে মনে হচ্ছে (আপনি সেখানে কিছু অটোমেশন পরিচালনা করলেও)। আপনি অর্ধেক যেতে পারেন এবং প্রতিটি ডাটাবেসের জন্য উদাহরণ তৈরি করতে পারেন, উদাহরণস্বরূপ ডাটাবেসগুলি 1-25, 26-50, 51-75, ইত্যাদি।
অ্যারন

ডাটাবেসগুলি একাধিক সার্ভারে থাকে যা আমি মনে করি এটি আরও জটিল করে তুলেছে। আমি আমার 225 ডাটাবেসের বিপরীতে আমার বিকাশ বাক্সে বিভিন্ন টেবিলের একটি দৃশ্য তৈরি করার চেষ্টা করেছি এবং ডেটা পড়া বেদনাদায়কভাবে ধীর ছিল।
কেবি

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

উত্তর:


12

আমি একক প্যাকেজে 200 ডেটা প্রবাহ রাখতে চাই না। খোলার এবং বৈধতা দেওয়ার জন্য যে সময় লাগবে তা আপনার সময়ের আগে আপনাকে বৃদ্ধ করবে।

ইজাপি মজাদার তবে আপনি নেট এসএসআইএস-এ নতুন হলে ওহে হেল না, আপনি এটি চান না। আমি মনে করি আপনি এসএসআইএস অবজেক্ট মডেল সম্পর্কে শিখতে এবং সম্ভবত কাজটি করার চেয়ে COM এর সাথে ডিল করার জন্য আরও অনেক বেশি সময় ব্যয় করবেন।

যেহেতু আমি অলস, আমি বিআইএমএলকে একটি মুক্ত বিকল্প হিসাবে প্লাগ করব যা আপনি তালিকাভুক্ত করেন নি। এসও /programming/13809491/generating-several-simar-ssis-packages-file-data-source-to-db/13809604#13809604 এ একটি উত্তর থেকে

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

আমি মনে করি এটি আপনার পক্ষেও হতে পারে approach আপনি আপনার বিআইএমএলকে সংজ্ঞায়িত করেন যা আপনার প্যাকেজগুলি কীভাবে আচরণ করা উচিত এবং তারপরে সেগুলি উত্পন্ন করা উচিত তা বর্ণনা করে। আপনি যেখানে পরিবর্তন করেছেন এবং এন প্যাকেজগুলি ঠিক করতে হবে তা বর্ণনা করার ক্ষেত্রে আপনি কোন সমস্যার সমাধান করতে পারবেন এবং প্যাকেজগুলি পুনরায় জেনারেট করবেন।

অথবা যদি আপনি কাঠামোর সাথে যথেষ্ট পরিচিতি পেয়ে থাকেন তবে EzAPI এর মতো কিছু ব্যবহার করে সমস্ত ভাঙ্গা জিনিস স্থির করতে পারেন। হেক, যেহেতু আপনি এটি 2005 হিসাবে ট্যাগ করেছেন, আপনি প্যাকেজম্যানকে একবার চেষ্টাও করতে পারেন যদি আপনার বিদ্যমান প্যাকেজগুলিতে ব্যাপক পরিবর্তন করার প্রয়োজন হয়।

এসএসআইএস ডিজাইনের বিবেচনা

সাধারণভাবে বলতে গেলে, আমি আমার প্যাকেজগুলিকে একক টাস্ক (লোড বিক্রয় ডেটা) সমাধান করার দিকে মনোযোগ দেওয়ার চেষ্টা করি। যদি এটির জন্য 2 ডেটা প্রবাহের প্রয়োজন হয়, তাই এটি হোন। উত্তরাধিকার সূত্রে আমি যা ঘৃণা করি তা হ'ল একক প্যাকেজে অনেকগুলি সম্পর্কিত-সম্পর্কিত ডেটা প্রবাহ সহ আমদানি রফতানি উইজার্ডের একটি প্যাকেজ। এগুলিকে এমন কিছুতে বিভক্ত করুন যা একটি খুব নির্দিষ্ট সমস্যা সমাধান করে। পৃষ্ঠের ক্ষেত্রফল হ্রাস হওয়ায় এটি ভবিষ্যতের বর্ধনগুলি কম ঝুঁকিপূর্ণ করে তোলে। একটি অতিরিক্ত সুবিধা হ'ল আমি DimProductsযখন লোডিং SnowflakeFromHellপ্যাকেজটি নিয়ে কাজ করছি তখন আমার লোডিংয়ের উপর কাজ করা যায় ।

তারপরে শিশুর কাজের প্রবাহকে অর্কেস্ট্রেট করতে মাস্টার প্যাকেজ (গুলি) ব্যবহার করুন। আমি জানি আপনি 2005 এ আছেন তবে এসকিউএল সার্ভার 2012 এর এসএসআইএসের মুক্তি বিড়ালের পাজামা। আমি প্রকল্পের স্থাপনার মডেল এবং এটি প্যাকেজগুলির মধ্যে অনুমতি দেয় এমন দৃ tight় সংহতকরণ পছন্দ করি।

টিএসকিউএল বনাম এসএসআইএস (আমার গল্প)

খাঁটি টিএসকিউএল পদ্ধতির জন্য, পূর্ববর্তী চাকরিতে, তারা তাদের সমস্ত ইনফর্মিক্স ডেটা এসকিউএল সার্ভারে প্রতিলিপি করার জন্য একটি step৩ ধাপের কাজ ব্যবহার করেছিল। এটি প্রায় 9 ঘন্টা সময় নেয় তবে 12 বা তার বেশি প্রসারিত হতে পারে। তারা একটি নতুন এসএএন কেনার পরে এটি প্রায় 7+ ঘন্টা নেমে গেছে। একই লজিক্যাল প্রক্রিয়া, এসএসআইএস-এ পুনরায় লিখিতভাবে নিয়মিত উপ 2 ঘন্টা ছিল। সেই সময়টি গাড়ি চালানো সহজেই সবচেয়ে বড় কারণটি ছিল "ফ্রি" সমান্তরালকরণ যা আমরা এসএসআইএস ব্যবহার করেছিলাম। এজেন্ট জব সেই সমস্ত কাজ সিরিয়ালে চালিয়েছিল। মাস্টার প্যাকেজটি মূলত প্রক্রিয়াকরণ ইউনিটগুলিতে টেবিলগুলি বিভক্ত করে ("রান রেপ্লিকেট টেবিল 1", টেবিল 2 ইত্যাদি ইত্যাদির সিরিয়ালযুক্ত কাজের 5 সমান্তরাল সেট) যেখানে আমি বালতিগুলিকে প্রায় সমান আকারের কাজের ইউনিটে ভাগ করার চেষ্টা করেছি। এটি 60 বা তত্সে অনুসন্ধানের রেফারেন্স সারণীগুলি দ্রুত পপুলেশন করার অনুমতি দেয় এবং তারপরে প্রক্রিয়াকরণটি ধীরে ধীরে ধীরে ধীরে নামতে শুরু করে "

এসএসআইএস ব্যবহার করে আমার জন্য অন্যান্য প্লাসগুলি হ'ল আমি "ফ্রি" কনফিগারেশন, লগিং এবং বর্গক্ষেত্রের জন্য .NET লাইব্রেরিগুলিতে অ্যাক্সেস পাই যা আমার একটি বৃত্তাকার ছিদ্রে প্রবেশ করতে পারে। আমি মনে করি, জন্তুটির গ্রাফিকাল প্রকৃতির কারণে খাঁটি টিএসকিউএল পদ্ধতির চেয়ে কোনও এসএসআইএস প্যাকেজটি রক্ষণাবেক্ষণ (পাস অফ মেন্টেনশন) করা সহজ হতে পারে।

সর্বদা হিসাবে, আপনার মাইলেজ পরিবর্তিত হতে পারে।


বিআইএমএল দেখতে খুব আকর্ষণীয় লাগে। আমি প্রতিটি ডেটা প্রবাহকে পৃথক প্যাকেজ হিসাবে তৈরি করার এবং তারপরে একটি মাস্টার প্যাকেজের মাধ্যমে তাদের কল করার বিষয়েও বিবেচনা করছিলাম। আপনি কি আরও ভাল মনে করেন? এছাড়াও, টি-এসকিউএল পদ্ধতির বিষয়ে আপনার মতামত থাকলে কৌতূহলী। এটি ধীরে ধীরে তবে আমি এটি পরীক্ষা করেছি এবং এটি কার্যকর হবে।
8kb

আমি ডিজাইন এবং খাঁটি tsql ETL পদ্ধতির মতামত নিয়ে আমার প্রতিক্রিয়া আপডেট করেছি
বিলিংক

0

আপনি উল্লেখ করেছেন যে আপনার কাছে 200 উত্স সারণী এবং 225 ডাটাবেস রয়েছে। আমি ধরে নিচ্ছি 200 সোর্স টেবিলগুলি সমস্ত 225 ডাটাবেস থেকে সমস্ত টেবিলের একটি গণনা (কারণ যদি আপনার প্রতিটি ডাটাবেসে 200 টেবিল থাকে যা আপনার মোট টেবিলের গণনা 45000 করে দেবে)। আপনি আরও উল্লেখ করেছেন যে 225 ডাটাবেসের জন্য ডাটাবেসের স্কিমা একই is

আপনি প্রথমে 1 টি ডাটাবেসের জন্য এসএসআইএস প্যাকেজগুলি তৈরি করতে পারেন এবং তারপরে আপনি যখন আপনার কাজের সময় নির্ধারণ করবেন আপনি কেবল প্যাকেজ কনফিগারেশন ব্যবহার করে ডাটাবেস সংযোগ স্ট্রিংটি পরিবর্তন করতে পারবেন (যদি আপনার এসকিউএল 2005 হয়, তবে আপনি প্যাকেজ মোতায়েনের মডেলটি ব্যবহার করবেন)। পূর্ববর্তী প্রতিক্রিয়াগুলিতে উল্লিখিত হিসাবে এসকিউএল 2012 এ প্রকল্পের স্থাপনার মডেলটি ব্যবহার করে আপনার প্যারামিটারগুলি কনফিগার করার নতুন উপায় রয়েছে।

আপনি এসএসআইএসের সাথে প্যাকেজ কনফিগারেশন সম্পর্কিত আরও তথ্য এখানে পেতে পারেন http://www.sql-server-performance.com/2007/package-configration-2005/

আপনি এখানে থেকে প্রকল্পের প্যারামিটারগুলি ব্যবহার করার জন্য আরও তথ্য পেতে পারেন, /programming/15206184/how-to-configure-ssis-2012-project-to-run-under-difفر- পরিবেশ - কনফিগুর্যাট

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