পাঠ ২৭ · ২৯-এর মধ্যে · মডিউল ৪
Home / AI Courses / Data Engineering / Cost optimization

Cost optimization কৌশল

Cost optimization — storage tiers, query cost, FinOps
৭ মিনিট পড়া মাঝারি · Intermediate FinOps + SQL

এই পাঠে যা শিখবেন

  • Cloud warehouse-এ bill কোথায় খরচ হয় — anatomy of a $50K/month invoice
  • BigQuery slot ও Snowflake credit — কীভাবে কম খরচে একই কাজ
  • Partition + cluster + materialized view — তিন বড় lever
  • FinOps culture — Bangladesh startup-এ runway বাড়ানোর কৌশল

১ · Cost কোথা থেকে আসে — anatomy of a bill

ভাবুন একটি Bangladesh-based fintech — Pathao Pay। তারা BigQueryBigQueryGoogle Cloud-এর serverless data warehouse। বিল হয় storage + processed data (per TB scanned) ভিত্তিতে। Slot reservation মডেলেও available।-এ চলে। মাসিক bill — ৩৮,০০০ USD। CFO প্রশ্ন করেন — "এত কেন?" Engineering team breakdown করে দেখায়:

  • Compute (query) — ২৬,০০০ USD (৬৮%) — প্রতিদিন প্রায় ১,২০০ TB scan। বেশিরভাগই dashboard auto-refresh ও poorly-written ad-hoc।
  • Storage — ৭,৫০০ USD (২০%) — ১৫০ TB hot storage, ৬৪০ TB cold। Old log table যা কেউ দেখেও না।
  • Streaming insert — ২,৫০০ USD (৬%) — Kafka → BigQuery direct, batch হলে ৭৫% সস্তা হত।
  • Egress (cross-region/internet) — ২,০০০ USD (৬%) — Tableau Bangladesh-এ self-hosted, BigQuery US-এ — ক্রস-region transfer।

এই বিশ্লেষণ থেকে — কোথায় optimization-এ সর্বোচ্চ ROI তা স্পষ্ট। শুধু compute optimize করলেই অর্ধেক bill কাটা যায়।

Cost optimization-এর ৪ স্তম্ভ

১) Visibility: "কে কতটা পোড়াচ্ছে?" — query attribution, team-wise dashboard।
২) Right-sizing: "compute ক্ষমতা actual usage-এর সাথে match করছে কি?"
৩) Smart storage: "hot data hot-এ, cold data cold-এ।"
৪) Query efficiency: "একই answer কম scan-এ।"

২ · BigQuery cost model — bytes scanned

BigQuery-এর on-demand pricing — প্রতি TB scanned $৬.২৫ (২০২৫)। এর মানে:

$$\text{Cost per query (USD)} = \frac{\text{bytes scanned}}{2^{40}} \times 6.25$$

একটি ১০ TB table-এ SELECT * একবার = ৬২.৫ USD। ১০০ analyst দিনে ১০ বার চালালে = ৬২,৫০০ USD/দিন। বছরে ২৩ million USD শুধু একটি বদ-অভ্যাসে।

কীভাবে কম scan:

  • Partition pruning: PARTITION BY date + WHERE date = '2025-05-01' → শুধু সেই দিনের bytes scan।
  • Clustering: CLUSTER BY user_id → user-filter query-তে কাছাকাছি bytes একসাথে।
  • Column selection: SELECT * ভুলে যান। শুধু লাগবে এমন column।
  • LIMIT trick: BigQuery-তে LIMIT scan কমায় না — full table scan আগে। Sample চাইলে TABLESAMPLE।
  • Approximate aggregations: APPROX_COUNT_DISTINCT exact-এর চেয়ে ১০০x সস্তা।

৩ · Snowflake — credit ও warehouse sizing

Snowflake-এ bill credit-ভিত্তিক — আপনার warehouse (compute cluster) কত সেকেন্ড চলেছে। T-shirt size — XS, S, M, L, XL, 2XL... 6XL। প্রতি step double — XS ১ credit/hour, S ২, M ৪, L ৮।

মূল সিদ্ধান্ত:

  • Auto-suspend: default ১০ মিনিট। আমাদের অভিজ্ঞতায় ৬০ সেকেন্ড optimal — কেউ query করলে ৩ সেকেন্ড restart।
  • Auto-resume: ON রাখুন। Off রাখলে query fail।
  • Multi-cluster: Spike traffic-এ একই warehouse-এর অনেক cluster auto-spawn। ১ থেকে ১০।
  • Sizing rule: ছোট থেকে শুরু (XS/S)। যদি queue depth বাড়ে — bigger বা multi-cluster। বড় warehouse-এ small query চালালে — পয়সা পুড়ে।

Workload separation:

  • WH_LOAD — ETL job (Medium, 24/7)।
  • WH_BI — dashboard (Small, auto-suspend 1 min)।
  • WH_ADHOC — analyst ad-hoc (XS, strict timeout)।
  • WH_DS — Data scientist heavy queries (Large, manual approve)।
Cloud warehouse ভাড়া দেওয়া যেন উবার চালক — সারা রাত গাড়ি চালু রাখলে ফুয়েল পুড়বে। দরকার হলেই চালু, না হলে বন্ধ। কিন্তু restart-এ ৫ সেকেন্ড লাগলে customer impatient হবে — তাই auto-suspend short কিন্তু paranoid নয়। Bangladesh-এ যেমন CNG ৩-চাকার চালক traffic light-এ engine বন্ধ করেন — সেই mindset।

৪ · Storage tiers — সবচেয়ে সহজ win

AWS S3-এ ৭টি tier:

  • S3 Standard — $0.023/GB/month — hot, frequently accessed।
  • Intelligent-Tiering — auto-move based on access pattern। Default choice।
  • Standard-IA — $0.0125/GB — masik 1-2x access।
  • One Zone-IA — $0.01/GB — re-creatable data।
  • Glacier Instant — $0.004/GB — কম access, মিলিসেকেন্ড retrieval।
  • Glacier Flexible — $0.0036/GB — মিনিট থেকে ঘণ্টা retrieval।
  • Glacier Deep Archive — $0.00099/GB — ১২+ ঘণ্টা retrieval, ৭ বছর+ retention।

Lifecycle policy: "৩০ দিনের পর Standard-IA, ৯০ দিনের পর Glacier" — সম্পূর্ণ automated। ১ TB log-এ ১২ মাসে — Standard-এ $২৭৬, Deep Archive-এ $১২। ৯৬% সাশ্রয়।

Beware retrieval cost: Glacier-এ store সস্তা, কিন্তু restore costly। Deep Archive থেকে ১ TB ফেরাতে $৯০+, এবং ১২ ঘণ্টা wait। তাই — যা ফেরত আনতে হবে এমন data সেখানে রাখবেন না। Compliance-required immutable archive — ideal use case।

৫ · Materialized view ও result cache

Materialized view: একটি query-র result physical-এ store, এবং automatically refresh। ১০০ analyst একই dashboard query চালালে — ১ বার compute, ১০০ বার lookup।

SQL · BigQuery materialized view
-- প্রতি ঘণ্টায় auto-refresh
CREATE MATERIALIZED VIEW analytics.daily_revenue_mv
PARTITION BY date_day
CLUSTER BY country
AS
SELECT
  DATE(placed_at) AS date_day,
  country,
  COUNT(*)        AS orders,
  SUM(amount_bdt) AS gmv_bdt
FROM `daraz-bd.raw.orders`
WHERE placed_at >= '2024-01-01'
GROUP BY 1, 2;

-- query এই MV-তে hit করবে automatic, original table নয়
SELECT date_day, gmv_bdt
FROM `daraz-bd.raw.orders`
WHERE country = 'BD'
  AND DATE(placed_at) BETWEEN '2025-04-01' AND '2025-04-30';

    
Original table ৫ TB, MV ১০ MB। একটি monthly query — বেস টেবিল-এ ৫ TB scan ($৩১), MV-তে ১০ MB ($০.০০)। ১,০০০ query/মাসে — $৩১,০০০ vs $০। এটাই magic।

Result cache: BigQuery ও Snowflake দুটোই — অপরিবর্তিত query ২৪ ঘণ্টা cache করে। Repeat চালালে free। Cache-hit rate dashboard-এ check করুন।

৬ · Partitioning ও clustering — practical guide

Bill কাটার ক্যাসকেড — same data, less spend $38K → $9.5K monthly (real Pathao Pay-style example) 🔥 Baseline SELECT * · no partition $38,000 / mo 🪓 Partition + columns date partition · 4 cols $22,000 / mo 🧊 + Cluster + MV user_id cluster · MV $15,000 / mo 🛌 Auto-suspend WH 10min → 60sec idle $11,500 / mo 📦 Storage tiering old logs → Glacier $10,200 / mo ✅ Slot reservation commit-based pricing $9,500 / mo ৭৫% সাশ্রয় · $28,500/mo savings $342K/year — 2-3 senior engineer salary
প্রতিটি ধাপে cumulative impact। কোনো single tactic না — combined approach-এ ৭৫% drop।

Partition rule of thumb:

  • Time-series data → date column-এ partition (DAY বা MONTH)।
  • Geographic data → region column।
  • Avoid: high-cardinality column (user_id) — too many small partitions।
  • Daraz orders table — PARTITION BY DATE(placed_at) + CLUSTER BY (country, customer_segment)।

৭ · FinOps culture — visibility ছাড়া optimization অসম্ভব

FinOpsFinOps (Financial Operations)Cloud খরচ ব্যবস্থাপনার একটি cross-functional discipline — engineering, finance ও business একসাথে কাজ করে real-time খরচ visibility ও accountability তৈরি করতে। framework-এর ৩ phase:

  • Inform: "কে কত খরচ করছে?" Dashboard প্রতি team-এ। Slack alert "$X exceeded budget"।
  • Optimize: "কীভাবে কম?" — উপরের সব technique।
  • Operate: automation — auto-shutdown weekend dev warehouse, cost-aware CI/CD checks।
SQL · BigQuery cost attribution by team
-- প্রতি team-এর ১৫ দিনের spend
SELECT
  COALESCE(labels.value, 'unlabeled') AS team,
  ROUND(SUM(total_bytes_billed) / POW(1024, 4), 2) AS tb_billed,
  ROUND(SUM(total_bytes_billed) / POW(1024, 4) * 6.25, 2) AS usd_cost,
  COUNT(*) AS query_count
FROM `region-asia-south1`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
LEFT JOIN UNNEST(labels) AS labels
  ON labels.key = 'team'
WHERE creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 15 DAY)
  AND job_type = 'QUERY'
  AND state = 'DONE'
GROUP BY team
ORDER BY usd_cost DESC;

    
প্রতিটি query-তে label (--@@SET LABEL team:risk) থাকলে — এই query-তে team-wise cost। বড় শাস্তি না, transparency কাজ করে। "ohh আমার team-এর ৪২% bill?" — তখন optimize অভ্যাস তৈরি হয়।

৮ · Bangladesh startup-এ cost-conscious patterns

বাংলাদেশের একটি startup-এ মাসিক $৫,০০০ cloud bill — সেটা একজন senior engineer-এর salary-র সমান। তাই FinOps survival।

  • Reserved instance/commitment: Predictable workload-এ ৩-বছরের commit — ৫০-৭০% discount। Snowflake ও AWS দু'টোতেই।
  • Spot instances: Spark batch job-এ — ৭০% সস্তা, কিন্তু evict-able। Resilient pipeline-এ চমৎকার।
  • Open-source self-hosted: ছোট scale-এ Postgres + Metabase — Snowflake-এর চেয়ে ১০x সস্তা। ২০ TB-এর পর scale-এ flip।
  • Local data center hybrid: Bangladesh-এ পক্ষে Robi/Beximco-এর data center-এ co-locate। Cold archive cheap।
  • Egress avoidance: Daraz cross-region না করে — single region-এ rest + compute। Egress bill nuisance।
  • Aggressive sampling: A/B test analysis-এ ১০০% data নয় — ১% sample-এ ৯৯% answer।
Cultural antipattern: "BigQuery is fast and infinite" — junior engineer এই বিশ্বাসে SELECT * আনলিমিটেড চালায়। ২ সপ্তাহ পর CFO-র কাছে surprise bill। Solution — onboarding-এ cost training, slot-reservation hard-cap, query-level cost-estimate UI।

৯ · Sample cost dashboard — yaml configuration

YAML · Snowflake resource monitor
# প্রতি team-এর hard cap
resource_monitors:
  - name: WH_BI_MONITOR
    credit_quota: 1000             # masik 1000 credits = ~$2,500
    frequency: MONTHLY
    notify_at_percentages: [50, 75, 90]
    actions:
      - threshold: 100
        action: SUSPEND             # 100%-এ warehouse off
      - threshold: 110
        action: SUSPEND_IMMEDIATE   # running query-ও kill

  - name: WH_DS_MONITOR
    credit_quota: 500
    frequency: WEEKLY
    actions:
      - threshold: 90
        action: NOTIFY              # শুধু slack alert

    
Resource monitor — Snowflake-এর "kill switch"। Budget overrun হলে automatic suspend। Junior analyst একটি বিরাট cross-join চালালে — runaway নয়, monitor-এ আটকাবে। CFO ঘুম ঠিক রাখতে এই config life-saver।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ আপনার Snowflake bill একদিনে $২০০ থেকে $২,০০০ — ১০x jump। কোথা থেকে শুরু করবেন investigation? কী কী সম্ভব cause?

এটি একটি real "war room" scenario — প্রতিটি data team-এর শুরুতে অন্তত একবার ঘটে। Investigation systematic হতে হবে, panic-driven নয়।

Step 1 — Time slice:

  • SNOWFLAKE.ACCOUNT_USAGE.WAREHOUSE_METERING_HISTORY — কোন warehouse spike?
  • Hourly granularity-তে — exact কখন শুরু? Midnight cron? Business hour?
  • একটি warehouse না multiple? Scope বুঝুন।

Step 2 — Query attribution:

  • QUERY_HISTORY-তে — top ১০ expensive query সেই window-তে।
  • User, role, query_text dump। প্রায়ই — একজন analyst, একটি broken query, infinite loop।

সম্ভাব্য causes — frequency order:

  • (১) Cartesian explosion: JOIN-এ key miss → ১০ million × ১০ million row। সবচেয়ে common। 10x bill instant।
  • (২) Auto-suspend disabled: কেউ accidentally ALTER WAREHOUSE SUSPEND_RESUME = FALSE। Idle-ও running।
  • (৩) Warehouse upsize: কেউ "performance issue" debug করতে XS → XL বানিয়ে ভুলে গেছে।
  • (৪) Multi-cluster spike: max_clusters ১০ — concurrent dashboard load-এ সব ১০ spawned।
  • (৫) Data growth: নতুন large table loaded — clone/CTAS-এ underlying scan ৪০ TB।
  • (৬) ML training: data scientist Snowpark-এ heavy iteration।
  • (৭) Schedule miss: Airflow DAG cron mistake — hourly হয়ে গেছে minutely।
  • (৮) Replication storm: failover/replication lag → bulk re-replicate।

Immediate mitigation:

  • Suspect warehouse-এ ALTER WAREHOUSE SUSPEND — bleeding stop।
  • Resource monitor temporary attach — strict cap।
  • Slack-এ team-কে notify, root cause finding-এ সবাই focused।

Post-mortem actions:

  • Runaway query auto-kill policy — query timeout ৩০ মিনিট default।
  • CI/CD-তে dbt run cost estimate — PR review-এ "this query will scan 12 TB" warning।
  • Anomaly detection — Slack bot "yesterday spend = ১০x avg → check"।
  • Runbook documented — পরের বার বাচ্চাও follow করতে পারবে।

মূল কথা: Bill spike — engineering signal, finance crisis নয়। দ্রুত response, blameless post-mortem, automated guardrails — মূল remedy। প্রতিটি incident future incident-এর insurance।

প্র ০২ BigQuery on-demand বনাম slot reservation — কোনটা কখন? Bangladesh-এ ছোট startup-এর কী choose করা উচিত?

এই decision অনেক CFO ও CTO-কে রাত জাগিয়েছে। ভুল হলে — হয় bill predictable নয়, নয়তো over-provision।

On-demand pricing:

  • $৬.২৫/TB scanned, পেমেন্ট প্রতি query।
  • Pros: No commitment, idle-এ $0, spike-এ unlimited capacity, simple।
  • Cons: Bill unpredictable, runaway query expensive, no cost ceiling default।

Slot reservation (Editions: Standard/Enterprise/Enterprise Plus):

  • Slot = compute unit। ১০০ slots ≈ ১ medium warehouse।
  • Commitment: Annual ৩৪% discount, 3-year ৫২% discount।
  • Pros: Predictable bill, cost ceiling, autoscaling within reservation।
  • Cons: Underutilized হলে wasted, peak load-এ queue।

Decision matrix — মাসিক spend ভিত্তিক:

  • <$২,০০০/মাস: On-demand, simpler accounting।
  • $২,০০০-$১০,০০০: Hybrid — baseline reservation + on-demand spillover।
  • $১০,০০০+: Heavy reservation, ৩-year commitment for predictable workload।
  • $৫০,০০০+: Edition + autoscaler — slot-based fully।

Bangladesh-এ ছোট startup (e.g., ১০-৫০ employee fintech):

  • প্রথম ৬ মাস: on-demand। Pattern বোঝা যাবে।
  • ৬-১২ মাস: pattern stable → annual reservation (baseline 30-40% covered)।
  • Sweet spot: reservation = avg daily slot usage × 0.7। বাকিটা on-demand burst।
  • Quota alert + budget alert আগেই set।

Common pitfalls:

  • "Reservation = always cheap" — ভুল। যদি ৪০% utilization, on-demand cheaper।
  • "3-year commitment safe" — startup pivot করলে stuck।
  • Forget mixing — flex slot (hourly) emergency spike-এ।

Snowflake-এর সাথে comparison:

  • Snowflake পুরো credit-based — slot ও warehouse model একসাথে।
  • Storage Snowflake অত্যন্ত সস্তা ($২৩/TB/মাস) BigQuery-র চেয়ে।
  • Compute concurrency Snowflake-এ multi-cluster — BigQuery-তে slot-pool।

মূল কথা: Pricing একটি spectrum — startup-এ flexibility (on-demand), enterprise-এ predictability (commitment)। Hybrid approach — সবচেয়ে real-world। Quarterly review — workload pattern বদলালে commitment-ও re-evaluate।

প্র ০৩ Materialized view-এর dark side কী? কখন এটা cost বাড়ায়, কমায় না?

MV "magic bullet" না। ভুলভাবে ব্যবহার করলে — bill কমার বদলে বাড়ে। অনেক junior engineer এই trap-এ পড়েন।

MV কখন anti-pattern:

  • (১) Highly volatile base table: প্রতি সেকেন্ডে inserts। MV continuous refresh = compute storm। Update overhead actual benefit ছাড়িয়ে যায়।
  • (২) Low query frequency: MV একবার read-এর জন্য বানানো — refresh cost > query saving। Rule: at least ১০-২০x read-write ratio।
  • (৩) Storage cost ignored: MV একটি extra physical table। ১ TB raw → MV ০.৫ TB → effectively ১.৫ TB stored।
  • (৪) Stale-data tolerance অভাব: Real-time analytics-এ ১ ঘণ্টা lag unacceptable হলে — MV-র async refresh fit না।
  • (৫) Many similar MVs: ৫০ dashboard-এ ৫০টা MV — maintenance hell, schema drift risk।

BigQuery vs Snowflake MV-র subtle difference:

  • BigQuery: smart query rewrite — original table query MV-তে redirect automatic।
  • Snowflake: explicit reference to MV — query rewrite limited (Enterprise feature)।
  • BigQuery MV সব JOIN support করে না — limitations check।
  • Snowflake-এ Dynamic Table — newer alternative, often better।

Better alternatives — কখন?

  • Daily aggregate batch: dbt incremental model + scheduled run। Predictable, debuggable।
  • BI extracts: Tableau extract, Power BI dataset — BI tool-এ caching।
  • Application-level cache: Redis/Memcached — < 100ms response চাইলে।
  • Pre-aggregation in stream: Flink/Spark Streaming → directly write summary table।

MV-এর correct use case:

  • Dashboard-heavy queries — same query ১০০x দিনে।
  • Stable base table — daily batch update।
  • Aggregation + filter — significant compute reduction।
  • "Hot path" SLA queries — millisecond response চাই।

মূল কথা: MV একটি compute-storage trade। Storage সস্তা, compute দামি — তাই সাধারণত win। কিন্তু "always create MV" mindset — reflective, not analytical। প্রতিটি MV-কে treat করুন একটি product feature: clear owner, refresh schedule, deprecation criteria।

প্র ০৪ একটি bKash-style fintech-এ — DAU ১০ million, transaction ৫ million/দিন। আপনি $100K/month cloud bill কে $40K-এ নামাতে চান। কী strategy?

Bangladesh-এর largest MFS-এ এমন কাজ — engineering লidership-এর top 3 priority। ৬০% reduction ambitious কিন্তু realistic — যদি systematically attack করেন।

Phase 1 — Visibility (week 1-2):

  • Cost dashboard team-wise, query-wise — Cloud Cost Anomaly Detection enable।
  • Top 50 expensive query identification — Pareto rule (২০% query = ৮০% cost)।
  • Idle resource audit — orphaned warehouse, unused MV, dormant table।
  • Per-feature cost attribution — "loan disbursement pipeline = $৮K/মাস?"।

Phase 2 — Quick wins (week 3-6):

  • Auto-suspend tighten — 10min → 60sec। Saving estimate: $৮-১২K।
  • Top 50 query partition + cluster + select-column rewrite। Saving: $১৫-২০K।
  • Storage tier audit — ৯০-day-old transaction → Glacier IR। Saving: $৩-৫K।
  • Streaming insert batching — micro-batch 1min instead of real-time। Saving: $২-৩K।
  • Result cache hit-rate optimization — query template normalization। Saving: $২-৩K।

Phase 3 — Architectural (month 2-3):

  • Materialized views top 10 dashboard queries। Saving: $৫-৮K।
  • Reserved capacity / committed-use discount — annual commitment। Saving: $১০-১৫K।
  • Workload separation — ETL/BI/ad-hoc warehouse split। Better right-sizing।
  • dbt incremental models replace full-refresh batch।
  • ML feature store — duplicate computation eliminate।

Phase 4 — Cultural (month 3-6):

  • FinOps team formal — engineering + finance + product 1 representative।
  • Weekly cost review — top 10 spender + improvement plan।
  • Engineer onboarding — cost training mandatory।
  • Internal cost-back chargeback — each team budget।
  • "Cost goal" engineering OKR — feature parity + cost reduction।

Bangladesh-specific tactics:

  • Onshore data center evaluation — BB compliance + cost saving।
  • Off-peak schedule heavy job — Bangladesh business low at midnight, cheap spot।
  • ISP egress negotiation — bulk traffic Bangladesh-based provider সস্তা।
  • Open-source tool migration — managed BigQuery → self-host Trino + Iceberg для some workload।

Realistic timeline:

  • Month 1: $100K → $৭৫K (visibility + quick wins)।
  • Month 3: $৭৫K → $৫৫K (architecture + reservation)।
  • Month 6: $৫৫K → $৪০K (culture + sustained discipline)।
  • Year 1: maintained at $৪০-৪৫K — even with 50% data volume growth।

Risks:

  • Over-optimization → engineer time spent saving $২K/মাস (ROI low)।
  • Performance regression — partition pruning ভুলে latency double।
  • Compliance break — data accidentally moved cross-region।
  • Reservation lock-in — pivot হলে cost stuck।

মূল কথা: Cost optimization একটি systematic discipline — silver bullet নেই। Quick wins early, architectural longer-term, cultural permanent। Bangladesh-এ cloud bill = engineer salary, runway extension, investor confidence — তাই এটি technical work-এর চেয়ে business-critical।

অনুশীলন

  1. Cost calculation: একটি ৫ TB BigQuery table-এ — naive query SELECT * FROM orders WHERE country='BD'। Date partition নেই। মাসে এই query ১,০০০ বার চলে। মাসিক cost কত?

    প্রতি query: ৫ TB scan × $৬.২৫ = $৩১.২৫।

    মাসে: ১,০০০ × $৩১.২৫ = $৩১,২৫০।

    Optimization: PARTITION BY DATE(placed_at) + CLUSTER BY country। ৩০ দিন-এর query-তে scan হবে ~০.০৫ TB → query cost $০.৩১ → মাসে ~$৩১০। ৯৯% সাশ্রয়।

  2. Snowflake warehouse sizing: Daraz-এ একটি analytics dashboard team — ১০ analyst, business hour-এ active, weekend usage low। কী warehouse config recommend করবেন?
    CREATE WAREHOUSE WH_BI_TEAM
      WITH
        WAREHOUSE_SIZE = 'SMALL'      -- শুরু এ small
        AUTO_SUSPEND = 60             -- 1 min idle
        AUTO_RESUME = TRUE
        MIN_CLUSTER_COUNT = 1
        MAX_CLUSTER_COUNT = 3         -- spike-এ scale-out
        SCALING_POLICY = 'STANDARD'
        INITIALLY_SUSPENDED = TRUE
        STATEMENT_TIMEOUT_IN_SECONDS = 1800;  -- 30 min runaway protection

    Resource monitor weekly $৫০০ cap; weekend 90% threshold notify।

  3. Storage tiering plan: ১০ TB transaction log table (BB compliance — ৭ বছর retain)। কীভাবে storage tier করবেন?

    Tiering plan:

    • 0-30 days: Hot (S3 Standard / Snowflake active) — analyst frequently access।
    • 30-90 days: Standard-IA — মাসে কয়েকবার access, ৪৫% সস্তা।
    • 90 days - 1 year: Glacier Instant Retrieval — fast retrieve, ৭০% সস্তা।
    • 1-7 years: Glacier Deep Archive — rare access, ৯৬% সস্তা।
    • Lifecycle policy: S3 lifecycle config বা Snowflake stage tiering automatic।
    • Estimate: ১০ TB-এ Standard $২৩০/মাস → tiered $৪০-৫০/মাস। Annual saving ~$২,৪০০।
    • Compliance proof: immutable Object Lock, audit trail।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

SQL hands-on practice? BigQuery-এর free tier-এ play করুন (১ TB/মাস free), অথবা Google Colab-এ DuckDB দিয়ে partition + cluster experiment।
পূর্ববর্তী পাঠ
পাঠ ২৬ · Data governance ও lineage