Data Warehouse, Lake ও Lakehouse
- ●Data Warehouse-এ structured data schema-on-write নিয়মে রাখা হয়, analytics-এর জন্য optimized।
- ●Data Lake-এ যেকোনো raw data সস্তায় রাখা হয়, schema-on-read নিয়মে পরে অর্থ দেওয়া হয়।
- ●Lakehouse দুটোর সুবিধা মিলিয়ে lake-এর সস্তা storage-এর উপর warehouse-এর reliability আনে।
সমস্যাটা কী?
তোমার কোম্পানির ডাটা বিভিন্ন জায়গা থেকে আসছে—app database, payment gateway, ইউজারের ক্লিক log, customer support চ্যাট, এমনকি ছবি ও ভিডিও। কিছু data পরিপাটি (table-এর মতো), কিছু এলোমেলো (text, JSON, image)।
এখন প্রশ্ন—এই সব data কোথায় জমাবে, কীভাবে জমাবে, যাতে পরে analytics ও machine learning করা যায়? যদি সব কিছু একটা কঠোর table structure-এ রাখতে চাও, তাহলে log বা image-এর মতো data ঢোকানো কঠিন হবে। আবার সব raw রেখে দিলে query চালানো ধীর ও বিশৃঙ্খল হবে।
এই সমস্যার তিনটি সমাধান বিবর্তিত হয়েছে: Data Warehouse, Data Lake, এবং সাম্প্রতিক Lakehouse।
মূল ধারণা
Data Warehouse হলো structured, পরিষ্কার করা data রাখার central system, যেখানে data ঢোকানোর আগেই schema ঠিক করা হয় (schema-on-write) এবং analytics-এর জন্য optimized। Data Lake হলো বিপুল raw data—যেকোনো format-এ—সস্তায় জমানোর storage, যেখানে schema পড়ার সময় ঠিক হয় (schema-on-read)। Lakehouse এই দুটোর সংমিশ্রণ।
মূল পার্থক্যটা সময়ের: warehouse-এ তুমি data রাখার আগে কাঠামো ঠিক করো; lake-এ data আগে রাখো, কাঠামো পরে প্রয়োজন মতো প্রয়োগ করো।
কীভাবে কাজ করে
Data Warehouse (schema-on-write)
Warehouse-এ data ঢোকানোর আগে ETL pipeline data পরিষ্কার করে, নির্দিষ্ট schema-তে রূপ দেয়, তারপর লোড করে। ফলে data সবসময় পরিষ্কার ও query-ready। সাধারণত column-oriented storage ব্যবহার করে দ্রুত aggregation দেয়। উদাহরণ: Snowflake, Amazon Redshift, Google BigQuery।
দাম দিতে হয় নমনীয়তায়—নতুন ধরনের data যোগ করতে হলে schema পরিবর্তন করতে হয়।
Data Lake (schema-on-read)
Lake হলো মূলত একটা সস্তা object storage (যেমন Amazon S3)। তুমি যেকোনো ফাইল—CSV, JSON, Parquet, image, video—সরাসরি ঢেলে দাও। কোনো schema চাপানো হয় না। যখন query করবে, তখনই tool (যেমন Spark, Presto) data-কে কীভাবে পড়বে তা ঠিক করে।
সুবিধা—সস্তা ও নমনীয়, machine learning-এর raw data রাখতে আদর্শ। অসুবিধা—নিয়ন্ত্রণ না থাকলে এটা data swamp-এ পরিণত হয় যেখানে কেউ জানে না কোথায় কী আছে।
Lakehouse
Lakehouse লেক-এর সস্তা object storage-এর উপরে একটা table format layer (যেমন Delta Lake, Apache Iceberg, Hudi) বসায়। এই layer ACID transaction, schema enforcement, versioning ও দ্রুত query এনে দেয়—অর্থাৎ lake-এ থেকেও warehouse-এর reliability। উদাহরণ: Databricks Lakehouse।
তুলনামূলক টেবিল
| বৈশিষ্ট্য | Warehouse | Lake | Lakehouse |
|---|---|---|---|
| Data type | structured | যেকোনো (raw) | যেকোনো |
| Schema | on-write | on-read | hybrid |
| Cost | বেশি | সস্তা | সস্তা |
| Reliability (ACID) | আছে | নেই | আছে |
| ML উপযোগিতা | সীমিত | ভালো | ভালো |
| উদাহরণ | Snowflake, BigQuery | S3 + Spark | Databricks, Iceberg |
এক নজরে
ভাবো তিনটি জায়গায় জিনিস রাখা যায়। Data Warehouse হলো একটা সাজানো লাইব্রেরি—প্রতিটা বই category অনুযায়ী shelf-এ, catalog আছে, খুঁজে পাওয়া সহজ। কিন্তু নতুন কিছু রাখতে হলে আগে label আর shelf ঠিক করতে হয়।
Data Lake হলো একটা বিশাল গুদাম—যা আসছে সব ঢেলে রাখো, ছবি-কাগজ-যন্ত্রপাতি সব একসাথে। সস্তা ও সহজ, কিন্তু গোছানো না থাকলে দরকারি জিনিস খুঁজে পাওয়া দুঃস্বপ্ন (data swamp)।
Lakehouse হলো সেই গুদাম যেখানে একজন স্মার্ট ম্যানেজার catalog ও তাক বসিয়ে দিয়েছে—সস্তা গুদামের সুবিধা রেখেও লাইব্রেরির মতো গোছানো।
কখন কোনটা ব্যবহার করবে
- Warehouse: যখন মূলত structured data নিয়ে BI dashboard, financial report, নিয়মিত SQL analytics দরকার।
- Lake: যখন বিপুল raw/unstructured data সস্তায় রাখতে হবে, data scientist-রা experiment করবে, ভবিষ্যতে কোন data কাজে লাগবে নিশ্চিত নও।
- Lakehouse: যখন একই platform-এ BI আর ML দুটোই করতে চাও, আলাদা দুটো system maintain করার ঝামেলা এড়াতে চাও।
Data Lake-কে অযত্নে রাখলে সেটা data swamp হয়ে যায়—হাজারো নামহীন ফাইল, কোনো documentation নেই, কেউ জানে না কোনটা latest বা trustworthy। তাই lake-এ সবসময় একটা data catalog, metadata ও governance রাখো; নয়তো সস্তা storage-এর সুবিধা data খুঁজতে গিয়ে নষ্ট হয়ে যাবে।
বাস্তব উদাহরণ
একটা ride-sharing কোম্পানি GPS log, app event, payment—সব raw data S3-ভিত্তিক data lake-এ ঢালে (সস্তায় সব রাখা যায়, data scientist-রা ML model train করতে পারে)। তারপর পরিষ্কার, structured subset একটা warehouse (BigQuery)-এ নিয়ে গিয়ে business টিম দৈনিক revenue dashboard দেখে।
আধুনিক অনেক কোম্পানি এখন এই দুটো একত্র করে Apache Iceberg বা Delta Lake দিয়ে একটা lakehouse বানাচ্ছে—একই S3 data-র উপর reliable SQL query ও ML pipeline দুটোই চলে, খরচ ও complexity কমে।
ইন্টারভিউতে পার্থক্য মনে রাখার সহজ সূত্র: "Warehouse = schema-on-write (আগে গোছাও, পরে রাখো), Lake = schema-on-read (আগে রাখো, পরে গোছাও), Lakehouse = lake-এর storage + warehouse-এর nিয়ম।" এক বাক্যে তিনটাই আলাদা করে ফেলা যায়।
মূল শব্দ (Key Terms)
মিনি কুইজ
1. Data Lake-এর প্রধান বৈশিষ্ট্য কোনটি?
2. Schema-on-write মানে কী?
3. Lakehouse কেন তৈরি হয়েছে?