আমি মনে করি যে মূল পার্থক্যটি আমি বর্ণনা করতে পারি সেগুলি রেকর্ড ওরিয়েন্টেড বনাম কলাম ওরিয়েন্টেড ফর্ম্যাটগুলির সাথে সম্পর্কিত। রেকর্ড ওরিয়েন্টেড ফর্ম্যাটগুলি হ'ল আমরা সকলেই অভ্যস্ত - পাঠ্য ফাইল, সিএসভি, টিএসভি এর মতো সীমিত বিন্যাস। এভ্রো তাদের তুলনায় সামান্য শীতল কারণ এটি সময়ের সাথে সাথে স্কিমা পরিবর্তন করতে পারে, যেমন রেকর্ড থেকে কলামগুলি যুক্ত করা বা অপসারণ করতে। বিভিন্ন বিন্যাসের অন্যান্য কৌশল (বিশেষত সংকোচন সহ) কোনও ফর্ম্যাটকে বিভক্ত করা যায় কিনা তা জড়িত - অর্থাৎ, আপনি ডেটাসেটের যে কোনও জায়গা থেকে রেকর্ডের একটি ব্লক পড়তে পারেন এবং এখনও এটির স্কিমা জানতে পারবেন? তবে এখানে যেমন পারকুইটের মতো কলামার ফর্ম্যাটগুলিতে আরও বিশদ।
কাঠের কাঠামো এবং অন্যান্য কলামার ফর্ম্যাটগুলি খুব সাধারণভাবে একটি সাধারণ হডোপ পরিস্থিতি পরিচালনা করে। আপনি সুনির্দিষ্টভাবে নকশাকৃত রিলেশনাল ডাটাবেসে আশা করবেন তার চেয়ে অনেক বেশি কলাম থাকা সারণী (ডেটাসেট) থাকা সাধারণ বিষয় - একশ বা দু'শ কলাম অস্বাভাবিক নয়। এটি তাই কারণ আমরা প্রায়শই হ্যাডোপকে সম্পর্কিত সম্পর্কিত ফর্ম্যাটগুলি থেকে ডেটা অস্বীকৃতি হিসাবে স্থান হিসাবে ব্যবহার করি - হ্যাঁ, আপনি প্রচুর পুনরাবৃত্তি মান এবং অনেকগুলি টেবিল সমস্ত একক একেই সমতল করে পান। তবে সমস্ত যোগদানগুলি শেষ হয়ে যাওয়ার কারণে এটি অনুসন্ধান করা অনেক সহজ হয়ে যায়। অন্যান্য সুবিধাগুলি যেমন সময়কালীন তথ্য ধরে রাখা। সুতরাং যাইহোক, কোনও টেবিলে কলামের নৌকা বোঝাই রাখা সাধারণ।
ধরা যাক এখানে ১৩২ টি কলাম রয়েছে এবং সেগুলির কয়েকটি সত্যিই দীর্ঘ পাঠ্য ক্ষেত্র, প্রতিটি পৃথক কলাম একের পর এক অনুসরণ করে এবং রেকর্ডে 10K ব্যবহার করতে পারে।
এসকিউএল স্ট্যান্ডপয়েন্টের সাহায্যে এই টেবিলগুলি জিজ্ঞাসা করা সহজ, আপনি সাধারণ hundred শত প্লাস কলামগুলির মধ্যে কয়েকটি রেকর্ডের উপর ভিত্তি করে রেকর্ডের কিছু পরিসীমা পেতে চাইলে সাধারণ। উদাহরণস্বরূপ, আপনি বিক্রয়> $ 500 সহ গ্রাহকদের জন্য ফেব্রুয়ারি এবং মার্চ মাসে সমস্ত রেকর্ড চাইবেন।
এক সারি বিন্যাসে এটি করার জন্য ক্যোয়ারীতে ডেটাসেটের প্রতিটি রেকর্ড স্ক্যান করা দরকার। প্রথম সারিটি পড়ুন, ক্ষেত্রগুলিতে (কলাম) রেকর্ডটি বিশ্লেষণ করুন এবং তারিখ এবং বিক্রয় কলামগুলি পান, যদি এটি শর্তটি সন্তুষ্ট করে তবে আপনার ফলাফলটিতে এটি অন্তর্ভুক্ত করুন। পদ্ধতি পুনরাবৃত্তি করুন। আপনার যদি 10 বছরের (120 মাস) ইতিহাস থাকে তবে আপনি কেবলমাত্র এক মাসের 2 টি খুঁজে পেতে প্রতিটি রেকর্ড পড়ছেন। অবশ্যই এটি বছর এবং মাসে কোনও পার্টিশন ব্যবহারের দুর্দান্ত সুযোগ, তবে তবুও, আপনি কেবল গ্রাহকের বিক্রয়> 500 ডলার কিনা তা খুঁজে পেতে সেই দুই মাসের জন্য প্রতিটি রেকর্ড / সারি 10 কে পড়ছেন এবং পার্স করছেন।
একটি কলামার ফর্ম্যাটে, রেকর্ডের প্রতিটি কলাম (ক্ষেত্র) তার ধরণের অন্যান্যদের সাথে সঞ্চিত থাকে, যা ডিস্কের বিভিন্ন ব্লক জুড়ে ছড়িয়ে পড়ে - একসাথে বছরের জন্য কলাম, একসাথে এক মাসের জন্য কলাম, গ্রাহক কর্মচারী হ্যান্ডবুকের জন্য কলাম (বা অন্য দীর্ঘ পাঠ্য) এবং অন্যান্য যেগুলি এই রেকর্ডগুলিকে এতগুলি বিশাল করে তোলে এটি সমস্তই ডিস্কে তাদের নিজস্ব পৃথক স্থানে এবং অবশ্যই একসাথে বিক্রয়ের জন্য কলামগুলি। ওয়েল হেক, তারিখ এবং মাসগুলি সংখ্যা এবং তাই বিক্রয়ও থাকে - সেগুলি কেবল কয়েকটি বাইট। কোন রেকর্ডগুলি আমাদের কোয়েরির সাথে মিলেছে তা নির্ধারণ করতে আমাদের কেবল প্রতিটি রেকর্ডের জন্য কয়েকটি বাইট পড়তে হয়েছিল, তা কি দুর্দান্ত হবে না? কলামার স্টোরেজ উদ্ধারে!
এমনকি কোনও পার্টিশন ছাড়াই, আমাদের ক্যোয়ারীটি পূরণের জন্য প্রয়োজনীয় ছোট ছোট ক্ষেত্রগুলি স্ক্যান করা অত্যন্ত দ্রুত - এগুলি সমস্ত রেকর্ড অনুসারে এবং একই আকার অনুসারে থাকে, সুতরাং ডিস্কটি অন্তর্ভুক্ত রেকর্ডগুলির জন্য অনেক কম ডেটা চেক করার চেষ্টা করে। সেই কর্মচারী হ্যান্ডবুক এবং অন্যান্য দীর্ঘ পাঠ্য ক্ষেত্রগুলি পড়ার দরকার নেই - কেবল এগুলি উপেক্ষা করুন। সুতরাং, সারিগুলির পরিবর্তে একে অপরের সাথে কলামগুলি গ্রুপ করে আপনি প্রায় সর্বদা কম ডেটা স্ক্যান করতে পারেন। উইন!
তবে অপেক্ষা করুন, এটি আরও ভাল হয়। যদি আপনার ক্যোয়ারিতে কেবলমাত্র সেই মানগুলি এবং আরও কয়েকটি জানতে হয় (আসুন 132 কলামগুলির মধ্যে 10 বলুন) এবং সেই কর্মচারী হ্যান্ডবুক কলামটি যত্ন না করে একবার ফিরে আসার জন্য সঠিক রেকর্ডগুলি বেছে নিলে এখন কেবল যেতে হবে আমাদের ডেটাসেটে 132 এর অন্যান্য 122 টি উপেক্ষা করে ফলাফলগুলি রেন্ডার করতে 10 টি কলামে ফিরে এসেছিল। আবার আমরা প্রচুর পড়া বাদ দিই।
(দ্রষ্টব্য: এই কারণে, কলামার ফর্ম্যাটগুলি সরল ট্রান্সফর্মেশনগুলি করার সময় স্বল্প পছন্দ হয়, উদাহরণস্বরূপ, আপনি যদি দুটি টেবিলকে একটি বড় (জীর্ণ) ফলাফলের সাথে যুক্ত করে থাকেন তবে আপনি একটি নতুন টেবিল হিসাবে সংরক্ষণ করছেন, উত্স যাইহোক যাইহোক পুরোপুরি স্ক্যান হতে চলেছে, তাই পড়ার পারফরম্যান্সে খুব বেশি সুবিধা নেই এবং কারণ কলামার ফর্ম্যাটগুলিতে স্টাফগুলি যেখানে রয়েছে সে সম্পর্কে আরও বেশি মনে রাখা দরকার, তারা অনুরূপ সারি বিন্যাসের চেয়ে বেশি মেমরি ব্যবহার করে)।
কলামার আরও একটি সুবিধা: তথ্য চারদিকে ছড়িয়ে পড়ে। একটি একক রেকর্ড পেতে, আপনার 132 জন কর্মী প্রতিটি 132 ব্লকের ডেটাতে 132 জন কর্মী / থেকে 132 টি বিভিন্ন স্থান থেকে ডেটা পড়তে (এবং লিখতে) রাখতে পারেন। সমান্তরাল জন্য হ্যাঁ!
এবং এখন ক্লিঞ্জারটির জন্য: যখন পুনরাবৃত্তি নিদর্শনগুলি খুঁজে পাওয়া যায় তখন সংক্ষেপণ অ্যালগরিদমগুলি আরও ভাল কাজ করে। আপনি কম্প্রেস পারে AABBBBBBCCCCCCCCCCCCCCCC
যেমন 2A6B16C
কিন্তু ABCABCBCBCBCCCCCCCCCCCCCC
হিসাবে ক্ষুদ্র পেতে হবে (ভাল, আসলে, এই ক্ষেত্রে এটি, কিন্তু আমাকে বিশ্বাস :-))। তাই আবারও কম পড়া। এবং লিখতেও।
সুতরাং আমরা সাধারণ প্রশ্নের উত্তর দেওয়ার জন্য অনেক কম ডেটা পড়ি, সমান্তরালভাবে পড়া এবং লেখার পক্ষে এটি দ্রুততর এবং সংক্ষেপণ আরও ভাল কাজ করার ঝোঁক।
আপনার ইনপুট দিকটি বড় হলে কলামার দুর্দান্ত হয় এবং আপনার আউটপুট একটি ফিল্টার করা উপসেট হয়: বড় থেকে ছোট পর্যন্ত দুর্দান্ত। যখন ইনপুট এবং ফলাফলগুলি সমান হয় তখন ততটা উপকারী হয় না।
তবে আমাদের ক্ষেত্রে, ইমালা আমাদের পুরানো এইচআইভি প্রশ্নগুলি নিয়েছিল যা 5, 10, 20 বা 30 মিনিটের মধ্যে চলে এবং কয়েক সেকেন্ড বা এক মিনিটে বেশিরভাগ সমাপ্ত হয়েছিল।
আশা করি এটি আপনার প্রশ্নের কমপক্ষে অংশের উত্তরটি সহায়তা করে!