Data Lake, Warehouse, Lakehouse
এই পাঠে যা শিখবেন
- Data lake, warehouse, lakehouse-এর সংজ্ঞা ও মূল পার্থক্য
- Schema-on-read বনাম schema-on-write — trade-off ও কখন কোনটি
- Delta Lake / Apache Iceberg / Hudi কী এবং কেন গুরুত্বপূর্ণ
- BD-র startup ও enterprise-এ কোন stack বেছে নেবেন
১ · তিনটি জগৎ — এক নজরে
OLAP storage-এর ৩০ বছরের বিবর্তন তিনটি ধাপে —
- ১৯৮৬-২০১০: Warehouse যুগ। Teradata, Oracle, Vertica. Structured, expensive, on-prem.
- ২০১০-২০২০: Lake যুগ। Hadoop/HDFS, পরে cloud object storage (S3, GCS). Cheap, flexible, কিন্তু ACID/quality দুর্বল।
- ২০২০-এখন: Lakehouse যুগ। Delta Lake (Databricks ২০১৯), Iceberg (Netflix ২০১৭ open-source ২০২০), Hudi (Uber). দু'টোর সেরা।
Lake: "সব ফাইল ঢালুন, পরে দেখব।"
Warehouse: "শুধু পরিষ্কার, schema-confirmed ডেটা ঢুকবে।"
Lakehouse: "Lake-এ ফাইল রাখি, কিন্তু একটি smart layer ACID + schema দেয়।"
২ · Data Warehouse — পুরোনো বন্ধু
Data WarehouseData WarehouseAnalytics-এর জন্য optimized একটি database — structured data, schema-on-write, columnar storage, fast SQL, ACID. Snowflake, BigQuery, Redshift, Synapse, Vertica, Teradata উল্লেখযোগ্য। — বহু বছরের পরীক্ষিত pattern. Bill Inmon (১৯৯০) ও Ralph Kimball (১৯৯৬) এর pioneer.
Properties:
- Schema-on-write: ডেটা ঢোকার সময় table definition থাকতে হবে।
- Structured শুধু: rows + columns.
- ACID transaction: নির্ভরযোগ্য update.
- Fast SQL: column-store, vectorized engine.
- Cost: compute + storage একই system — price বেশি।
উদাহরণ:
- Snowflake: ২০১২, separated storage/compute, multi-cloud, popular.
- BigQuery: Google, serverless, pay-per-query.
- Redshift: AWS, cluster-based.
- Azure Synapse: Microsoft enterprise.
Best for: BI dashboard, financial reporting, regulatory query, দৈনিক analyst work.
৩ · Data Lake — সস্তা ও নমনীয়
Data LakeData Lakeসস্তা object storage (S3/GCS/ADLS) যেখানে যেকোনো format-এর ফাইল রাখা যায় — CSV, JSON, Parquet, image, video, log. Schema-on-read; query engine (Athena, Spark) উপরে চালাতে হয়। এসেছিল warehouse-এর তিনটি সীমাবদ্ধতা সমাধানে — cost, structured-only, এবং ML data টানতে কষ্ট।
Properties:
- Schema-on-read: ফাইল ঢালার সময় কোনো structure প্রমাণ লাগে না।
- সব format: CSV, JSON, Parquet, Avro, image, video, log.
- Cheap: S3 স্টোরেজ $0.023/GB/মাস। Warehouse-এর ৫-১০x সস্তা।
- Compute আলাদা: Athena, Presto/Trino, Spark — যা চান তা চালান।
- দুর্বলতা: ACID নেই। "Same file 2 জন একসাথে update" → corruption. Schema drift. Quality enforce কঠিন।
৪ · Lakehouse — দু'টির মেলবন্ধন
LakehouseLakehouseObject storage-এর উপর একটি smart metadata layer যা ACID, schema enforcement, time-travel, ও SQL দেয়। Delta Lake, Apache Iceberg, Apache Hudi — এই pattern-এর তিন প্রধান implementation. ধারণা: lake-এর সস্তা storage রাখো, কিন্তু একটি "table format" layer যোগ করো যা warehouse-সদৃশ guarantee দেয়।
Mechanism:
- Underlying file = Apache Parquet (columnar, compressed).
- উপরে metadata log (JSON/Avro) — কোন ফাইল কোন version-এ valid.
- Transaction log — ACID-এর ভিত্তি।
- Schema evolution — column যোগ/বাদ, type বদল।
- Time travel — "৩ দিন আগের state দেখাও"।
তিনটি প্রধান open-source format:
- Delta Lake: Databricks, ২০১৯। Spark-এর সাথে best integration.
- Apache Iceberg: Netflix-এ origin (২০১৭), open-source ২০২০। Engine-agnostic, AWS, Snowflake, BigQuery সবার সাথে কাজ করে।
- Apache Hudi: Uber-এ origin. Streaming + upsert focused.
২০২৪-২০২৫-এ industry-র tide Iceberg-এর দিকে। Snowflake-ও Iceberg native support দিয়েছে — এক table যেকোনো engine থেকে। এটি data engineering-এর নতুন standard হচ্ছে।
৫ · Schema-on-read বনাম Schema-on-write
এই দু'টি ধারণা lake/warehouse-এর ভিত্তি।
Schema-on-write (warehouse):
- ডেটা ঢোকার আগে — columns, types, constraints define.
- Validation upfront — "amount must be int, not null".
- সুবিধা: query সবসময় predictable; data quality high.
- অসুবিধা: schema change costly; new source slow onboard.
Schema-on-read (lake):
- ডেটা যেমন আছে তেমনই ফাইলে — CSV, JSON.
- Read-time query engine (Spark, Athena) schema infer বা manually declare.
- সুবিধা: যেকোনো source দ্রুত ingest; iteration fast.
- অসুবিধা: Type mismatch run-time-এ ফাটে; multiple consumer-এর interpretation আলাদা।
৬ · বাস্তব Lakehouse code — PySpark + Delta
from pyspark.sql import SparkSession
spark = (SparkSession.builder
.appName("daraz_orders")
.config("spark.jars.packages", "io.delta:delta-core_2.12:2.4.0")
.getOrCreate())
# একটি Delta table তৈরি (S3-এ)
(spark.read.csv("s3://daraz/raw/orders/")
.write
.format("delta")
.mode("overwrite")
.save("s3://daraz/curated/orders_delta/"))
# Time travel — ৭ দিন আগের state পড়া
yesterday = (spark.read
.format("delta")
.option("timestampAsOf", "2025-05-02 00:00:00")
.load("s3://daraz/curated/orders_delta/"))
print(f"Today rows: {spark.read.format('delta').load('s3://daraz/curated/orders_delta/').count()}")
print(f"7 days ago: {yesterday.count()}")
৭ · কোথায় কোনটি — সিদ্ধান্ত matrix
Warehouse বাছুন যদি:
- প্রধান use case BI dashboard ও analyst SQL.
- Team SQL-এ comfortable, Spark/Python কম।
- Data বেশিরভাগ structured (relational source).
- Volume মাঝারি (< ১০-৫০ TB).
- সরল setup চান।
Lakehouse বাছুন যদি:
- ML/AI workload আছে — image, log, sensor, embedding.
- Volume বড় (> ১০০ TB).
- Streaming + batch একসাথে।
- Multi-engine চান (Spark, Trino, Snowflake একই table-এ)।
- Cost-conscious enterprise.
Lake (pure) বাছুন যদি:
- Raw archive — "যা আসছে রাখুন, ভবিষ্যতে দেখা যাবে।"
- One-time analysis.
- Compliance — original raw রাখা required.
বাস্তবে — বেশিরভাগ মাঝারি BD কোম্পানি Hybrid stack চালায়: S3 lake (raw) → Snowflake warehouse (curated). Bigger তে — S3 + Iceberg + Trino + Snowflake. ছোটে — শুধু Snowflake/BigQuery.
৮ · একটি SQL উদাহরণ — Iceberg-এ time travel
-- বর্তমান state
SELECT COUNT(*) FROM iceberg.daraz.orders;
-- ৩ দিন আগের snapshot
SELECT COUNT(*)
FROM iceberg.daraz.orders FOR TIMESTAMP AS OF
TIMESTAMP '2025-05-06 00:00:00 +06:00';
-- নির্দিষ্ট snapshot id
SELECT *
FROM iceberg.daraz.orders FOR VERSION AS OF 8472193847;
-- Schema evolution — নতুন column যোগ
ALTER TABLE iceberg.daraz.orders
ADD COLUMN delivery_partner VARCHAR;
-- পুরোনো row-এ নতুন column null হবে — কোনো full rewrite না
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।
প্র ০১ Daraz ২০১৫-তে শুধু MySQL-এ ছিল। ২০১৮-এ Hadoop lake বানিয়েছিল — "data swamp" হয়ে গেল। ২০২২-এ Snowflake. এখন ২০২৫-এ Iceberg consider করছে। প্রতিটি migration-এর কারণ ও pain point কী?
এই pattern অনেক BD/global কোম্পানি hit করেছে — এটিই warehouse-lake-lakehouse evolution-এর বাস্তব গল্প।
Phase 1 — MySQL only (২০১৫):
- Single OLTP database, BI sub-set query সরাসরি।
- Pain: ব্যবসা বাড়ার সাথে query slow, production load. আগের পাঠের problem.
Phase 2 — Hadoop/HDFS lake (২০১৮):
- Cheap storage, "save everything" mantra.
- Pain accumulated:
- Schema chaos: ১০০+ folder, কেউ জানে না কোনটায় কী।
- No ACID: দু'টি Spark job same partition লিখলে — race condition.
- Quality issue: কেউ একটি CSV upload করল wrong column order — সব downstream broken.
- Operational cost: Hadoop cluster maintain করতে full team.
- Slow query: Hive query 30+ মিনিট, dashboard unusable.
- "Data swamp" — Forrester analyst-এর টার্ম। ২০১৯-এ ৬০% Hadoop project failed-categorized.
Phase 3 — Snowflake warehouse (২০২২):
- Cloud-native, no infra maintenance.
- SQL-first, analyst happy.
- Pain returns:
- Cost spike: Snowflake credit বিল ১০-৫০ লাখ টাকা/মাস।
- ML data পেইন: image, large parquet warehouse-এ inefficient.
- Lock-in: Snowflake-এর native format SCALAR closed.
- Streaming weak: Snowpipe latency-prone.
Phase 4 — Iceberg lakehouse (২০২৫ planning):
- Storage S3-এ (cheap).
- Iceberg metadata দিয়ে ACID + schema.
- Query engine choice: Snowflake অথবা Trino অথবা Spark.
- ML team Spark, BI team Snowflake — same table.
- সম্ভাব্য pain:
- Setup complex — Glue catalog, IAM, partition strategy.
- Optimization (compaction, snapshot expiry) ongoing কাজ।
- Multi-engine debugging কঠিন।
প্রতিটি migration শিখিয়েছে:
- "Cheap storage" alone enough না — governance চাই।
- "Premium warehouse" alone enough না — ML/streaming weak.
- Hybrid lakehouse — দু'টোর সেরা কিন্তু complexity তে দাম।
মূল উপলব্ধি: Architecture decision business stage-এর সাথে evolve. যিনি প্রতিটি stage-এ trade-off বোঝেন এবং migration plan করেন — তিনি senior data engineer.
প্র ০২ একটি BD bank GDPR-সদৃশ Data Protection Act মেনে চলতে চায় — "right to be forgotten" (একটি customer চাইলে তাঁর সব data মুছে যাবে)। Data lake-এ এটি কেন কঠিন এবং lakehouse এই সমস্যা কীভাবে সহজ করে?
GDPR Article 17 ("right to erasure") ২০১৮ থেকে EU-তে। BD-র Data Protection Act ২০২৩-এ পাশ — অনুরূপ provision. এটি data engineering-এর architectural challenge.
সমস্যা গভীরে:
- Customer X চাইলেন — "আমার সব data মুছে দিন।"
- X-এর data ২০০টি Parquet ফাইলে scattered — ৩ বছরের history.
- একটি OLTP DB হলে —
DELETE WHERE user_id = Xএক query.
Pure lake-এ challenge:
- Immutable Parquet: Parquet ফাইল delete-friendly না। X-এর row বাদ দিতে হলে — ফাইল পড়, X বাদ, নতুন ফাইল লেখ, পুরোনো ডিলিট।
- ২০০ ফাইল × ৩ বছর × ৪ partition strategy: মেগা cost.
- No ACID: মাঝে কোনো reader থাকলে inconsistent state দেখবে।
- Audit trail: "X-এর data deleted" প্রমাণ কীভাবে?
- Backup: আগের backup-এ X এখনো আছে — সেগুলো কী করব?
- Derived data: X-এর data থেকে aggregate (যেমন district-wise revenue). Aggregate-এ X-এর contribution কি delete করতে হবে?
Lakehouse (Delta/Iceberg) যা সহজ করে:
-
Native DELETE:
DELETE FROM iceberg.bank.customers WHERE customer_id = 'X'— SQL working. - Copy-on-write: Iceberg engine background-এ affected ফাইল rewrite. User-এর কাছে atomic.
- Snapshot + retention: Old snapshot expire করে — X এর data older snapshot-এও থাকে না (after expiry).
- Audit log: Iceberg metadata-এ delete operation logged — "এই snapshot-এ X deleted" প্রমাণ।
- Time-travel control: Compliance retention period (e.g., ৩০ দিন) এর পর old snapshot সব clear.
BD bank-এর সম্পূর্ণ approach:
- PII separation: NID, ফোন, ঠিকানা একটি pseudonymization vault-এ; warehouse-এ token.
- Right-to-be-forgotten request: token vault থেকে customer's PII delete. Warehouse-এ token left, কিন্তু token meaningless (no link to person).
- Aggregate retain: "Sylhet district 2023 revenue" remain — X-এর contribution irreversible mixed (allowed under GDPR).
- Backup retention policy: ৩০ দিন rolling, তারপর old backup auto-purge.
- Audit dashboard: "এই বছর কতটি deletion request, কতটি SLA-এ complete".
BB compliance:
- BD-র ব্যাংকিং নিয়ম ৭ বছর transaction record রাখা required.
- Personal info তাও pseudonymize-able.
- Lakehouse-এর partial-delete + audit এই দু'টি conflicting demand handle করে।
মূল উপলব্ধি: Compliance শুধু legal team-এর কাজ না — data architecture থেকে শুরু। যিনি pillar-level (PII vault, lakehouse, audit) ভাবেন — তিনি future-proof system বানান।
প্র ০৩ Snowflake বনাম BigQuery বনাম Databricks (Delta). তিনটি leading choice. একটি BD enterprise-এর জন্য কোন criteria দিয়ে বাছবেন?
এই তিনটি বাজারের ৭০% দখল করে রেখেছে। সিদ্ধান্ত পাঁচটি dimension-এ।
(১) Cloud preference / lock-in tolerance:
- BigQuery: GCP only. Google ecosystem (Analytics, Ads) থাকলে obvious.
- Snowflake: AWS, Azure, GCP — multi-cloud. কিন্তু Snowflake itself একটি vendor.
- Databricks: Multi-cloud, এবং open Delta/Iceberg format — lock-in কম।
- BD-র অনেক ব্যাংক/insurance Azure-এ রেগুলেটরি কারণে — Synapse অথবা Snowflake on Azure.
(২) Workload type:
- Pure SQL/BI: Snowflake king — analyst experience সবচেয়ে polished.
- Big data + ML + streaming: Databricks — Spark native.
- Serverless analytics + Google ML: BigQuery + Vertex AI.
(৩) Cost model:
- BigQuery: Pay per byte scanned ($5/TB). Predictable cost; runaway query risky.
- Snowflake: Pay per warehouse-hour. Auto-suspend; predictable usage.
- Databricks: DBU + cloud compute + storage. Most flexible, most complex.
- Small workload (১ TB/মাস)-এ BigQuery cheap. Heavy ETL workload-এ Snowflake/Databricks.
(৪) Team skill:
- SQL শুধু: Snowflake easiest.
- SQL + Python: BigQuery + Vertex বা Snowpark.
- Python/Spark advanced: Databricks.
- BD-তে Snowflake skill সহজে hire; Databricks specialist costly.
(৫) Open vs proprietary:
- Snowflake: Native format proprietary; recently Iceberg support.
- BigQuery: Native proprietary; Iceberg/Hudi external table support.
- Databricks: Delta open-source; lock-in lowest.
- Long-term flexibility চাইলে Iceberg/Delta on object storage.
BD-specific consideration:
- Bangladesh Bank reporting: compliance-grade audit log. তিনটিই দেয়।
- Data residency: BD-তে datacenter কারো নেই — নিকটতম Singapore (AWS/GCP) বা Mumbai (Azure). Latency 50-80ms acceptable analytics-এ।
- Skilled hire: Dhaka-তে Snowflake & BigQuery skill দু'টোই available; Databricks rare.
- Hardware budget: Free tier — Snowflake $400 credit, BigQuery 1 TB/মাস ফ্রি।
সিদ্ধান্ত হিউরিস্টিক:
- BI-heavy SaaS startup → Snowflake.
- Google-ecosystem ad/marketing → BigQuery.
- ML-heavy fintech / streaming → Databricks.
- Heavy regulatory bank → Snowflake on Azure.
- Open-future, multi-engine → Iceberg + Trino + Spark on S3.
মূল উপলব্ধি: "Best tool" বলে কিছু নেই — "context-এ best" আছে। এই context analysis-ই senior architect-এর core skill.
প্র ০৪ Iceberg-এর "snapshot expiry" feature কী এবং কেন এটি দীর্ঘমেয়াদে operational cost ও compliance-এ critical?
Iceberg metadata layer-এর সবচেয়ে কম-আলোচিত কিন্তু production-critical feature. Time travel free না — এর cost আছে।
Snapshot mechanism:
- প্রতি INSERT/UPDATE/DELETE-এ Iceberg নতুন snapshot তৈরি করে।
- Snapshot = একটি pointer set যা বলে "এই version-এ এই Parquet ফাইল valid".
- পুরোনো snapshot-এর Parquet ফাইল delete হয় না — তাই time travel কাজ করে।
সমস্যা:
- প্রতি ঘণ্টায় ১০ snapshot — ১ মাসে ৭,২০০ snapshot.
- প্রতিটি snapshot নতুন Parquet ফাইল রাখে (full বা partial).
- S3 cost linearly বাড়ছে। ৬ মাসে ১০x storage.
- Metadata file (manifest list) অনেক বড় — query planning slow.
Snapshot expiry:
- Policy — "৭ দিনের চেয়ে পুরোনো snapshot expire".
- Expired snapshot-এর দ্বারা reference না-হওয়া file delete.
- Storage reclaim.
CALL system.expire_snapshots(
table => 'daraz.orders',
older_than => TIMESTAMP '2025-05-02 00:00:00'
);
Cost implication (BD context):
- ১০ TB warehouse + ৬ মাস retention without expiry → ১০০+ TB.
- S3 cost: ১০ TB × $0.023/GB/মাস × ১২ মাস = ~$2,800. অথবা bloated 100 TB → $28,000.
- BD ব্যাংক/fintech-এ এই difference yearly কোটি টাকা scale-এ।
Compliance angle:
- GDPR/Data Protection Act — right to erasure:
- Customer X-এর data delete করলেও — পুরোনো snapshot-এ X এখনো reachable.
- Snapshot expiry না করলে — legally non-compliant.
- Retention policy: "DELETE-এর পর ৩০ দিন expire" required.
- BB regulation:
- ৭ বছর transaction history retain করতে হবে।
- কিন্তু intermediate snapshot না।
- Production policy: "আজকের state ৭ বছর; intermediate snapshot ৩০ দিন"।
- Audit:
- "কখন কোন data deleted হলো" — metadata log immutable.
- Compliance officer-কে snapshot history demonstrate করা যায়।
Operational best practices:
- Tiered retention: production critical table 30 দিন; staging 7 দিন; dev 1 দিন।
- Compaction job: ছোট ফাইল মার্জ — query performance ভাল।
- Orphan file cleanup: reference-হীন file periodically delete.
- Monitoring: snapshot count, total storage, query latency dashboard.
Pitfall:
- Aggressive expiry — "৩ দিন" — কোনো ML reproducibility টিম "৭ দিন আগের training data" পাবে না।
- Stakeholder সাথে retention policy align করা data engineer-এর কাজ।
মূল উপলব্ধি: Lakehouse "click-and-run" না। Day-2 operations — expiry, compaction, monitoring — warehouse-এর than চেয়ে বেশি কাজ। যিনি এই lifecycle thinking করেন — তিনি production-grade system বানান।
অনুশীলন
-
চিনুন: নিচের প্রতিটি use case-এর জন্য lake / warehouse / lakehouse — কোনটি best fit?
- (ক) BTRC monthly subscriber count report
- (খ) Pathao rider GPS log archive (৩ বছরের)
- (গ) Daraz user-product image embedding for ML model
- (ঘ) bKash daily fraud detection feature pipeline
- (ক) Warehouse: structured, regulatory, dashboard-friendly. Snowflake বা BigQuery.
- (খ) Lake: বিশাল, semi-structured, archive. S3 + Parquet.
- (গ) Lakehouse: mixed image + tabular, ML team Spark চালায়। Delta বা Iceberg.
- (ঘ) Lakehouse: streaming + batch, ACID দরকার, ML model serve. Delta/Iceberg + Spark Streaming.
-
হিসাব করুন: ১০ TB warehouse-এ Snowflake Storage cost $40/TB/মাস। S3 cost $23/TB/মাস। Lakehouse-এ ৭০% data S3-এ archive (cold), ৩০% warehouse-এ active. Pure warehouse vs lakehouse-এর মাসিক cost কত?
- Pure warehouse: $40 × ১০ = $400/মাস।
- Lakehouse: S3 cold ৭ TB × $23 = $161; warehouse hot ৩ TB × $40 = $120. Total $281.
- সাশ্রয়: $119/মাস (~৩০%). বছরে $1,428.
১০০ TB scale-এ এই savings কোটি টাকা/বছর।
-
ভাবুন: আপনি একটি BD insurance company-র data architect. Customer claim history + medical document (PDF) + dashcam video (motor claim) সব রাখতে হবে। Storage architecture কী হবে?
প্রস্তাবিত:
- Object lake (S3): medical PDF, dashcam video raw. Compliance-grade encryption.
- Lakehouse (Iceberg on S3): claims tabular — structured + ACID + history.
- Warehouse (Snowflake): regulatory report, BI dashboard.
- Vector DB: medical document embedding RAG-এর জন্য।
প্রতিটি layer-এর cost-fit-purpose.
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পাঠ ০৪ · ETL বনাম ELT পরবর্তী পাঠ এই storage বেছে নেওয়ার পর pipeline-এ Transform কোথায় হবে — সেটাই ETL/ELT-র মূল প্রশ্ন।
- পাঠ ০২ · OLTP বনাম OLAP আগের পাঠ এই পাঠের warehouse ধারণার মৌলিক ভিত্তি — transactional ও analytical workload-এর পার্থক্য।
- পাঠ ২৪ · Delta Lake ও Iceberg এই পাঠের সাথে সম্পর্কিত Lakehouse format-এর গভীর ডুব — production setup, optimization, snapshot policy.
- সব AI Courses দেখুন ABCL TECH Python, ML, DL, NLP, CV, GenAI, RL, MLOps — সব AI কোর্স একসাথে।