Ravindra BagaleCourses & study guides English Track your progress

AWS Glue आणि Athena: S3 Data Lakes वर ETL आणि SQL सोप्या भाषेत

S3 lake = CSV/Parquet. Glue = catalog + transform; Athena = SQL on S3. Broom + notebook.

या chapter मध्ये तुम्ही काय शिकाल

  • Catalog का
  • Crawler/job/catalog
  • Athena SQL + cost
  • Partitions + formats
  • Lab, errors, FAQ, interview

1. आधी रोजचं उदाहरण

Retail: daily Parquet → S3. Glue crawler table update. Analyst Athena SQL; pay per scan — partitions महत्त्वाच्या.

2. Glue + Athena का?

हे का लागतं?

Catalog नसेल तर hard-coded paths. Serverless SQL नसेल तर warehouse वाट. Glue Catalog = metastore; Athena query; Glue ETL = heavy clean.

3. प्रत्येक piece काय करते

हे काय आहे?

Pieceकाम
CatalogS3 वर schema
CrawlerFiles पासून schema
Glue JobETL Spark/Ray
AthenaSQL; pay per scan
S3 → Catalog → Athena/GlueRaw → answers
Catalog → query/ETL

4. Cost कसा आटोक्यात

कसं करायचं (step by step)

  1. Parquet/ORC.
  2. Partition by date.
  3. Workgroup limits.
  4. Needed columns.
  5. Compress; avoid tiny files.
  6. Lifecycle junk.
-- Athena mental model
-- SELECT store_id, SUM(amount) AS sales
-- FROM sales
-- WHERE date = '2026-10-27'
-- GROUP BY 1;
-- Partition column in WHERE → less data scanned

5. Industries

  • Retail sales lakes
  • Adtech clicks
  • Healthcare analytics
  • Finance reconcile

6. Lab: Athena sample / paper SQL

Org block नसेल तर ap-south-1 (Mumbai). आधी budget alert.

कसं करायचं (step by step)

  1. Tiny sample prefix.
  2. Crawler/manual table.
  3. COUNT(*).
  4. Partition filter compare.
  5. IAM note.

Cleanup (billing थांबवा)

  1. Drop lab tables/prefixes.
  2. Crawler schedule off.

7. सामान्य errors आणि fixes

प्रत्येक row = खरी चूक. Panic करण्याआधी fix वाचा.

Error / लक्षणFix
CSV billsParquet.
No partition filterFilter.
Schema overwriteLock schema.
Small filesCompact.
No limitsScan caps.
Public lakeBlock public.
IAM starScope buckets.
JSON chaosFlatten.
Open resultsPrivate.
TZ partitionsUTC.

8. Troubleshooting checklist

  1. Path/partition.
  2. IAM glue+s3.
  3. Bad files.
  4. Classify/exclude.
  5. DPU/workers.
  6. Workgroup metrics.

9. FAQ

प्र. Redshift vs?

SQL-on-S3 vs warehouse.

प्र. Only Spark?

Spark common; check current.

प्र. Crawlers always?

No; manual/IaC OK.

प्र. Iceberg?

Verify current support.

प्र. Fail cost?

May scan; use limits.

10. Interview Q&A

प्र. Glue Catalog?

Central metastore.

प्र. Athena price?

Bytes scanned.

प्र. Parquet का?

Columnar less scan.

प्र. Crawler?

Infer schema.

प्र. Partition projection?

Advanced partition trick.

प्र. Lake vs WH?

Files vs curated.

11. Tips — English, मराठी आणि हिंदी

Ravindra Bagale's Tip (EN)

Partitions are a cost feature, not decoration. Put date filters in every habit query.

Ravindra Bagale's Tip (MR)

Partitions = cost feature. प्रत्येक query मध्ये date filter सवय.

Tip (HI)

Partitions सजावट नहीं — cost feature है; हर query में date filter डालो।

घरी करून बघा

  1. Bad vs good SQL.
  2. CSV→Parquet idea.
  3. IAM list.

थोडक्यात सांगायचं तर

  1. Glue catalog/ETL; Athena SQL.
  2. Parquet + partitions.
  3. Workgroups.
  4. No public lakes.

उजळणी, मुलाखत आणि तुलना cards

हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.

उजळणी card: Glue + Athena. S3 CSV ≠ queryable warehouse. Glue=ETL/catalog; Athena=SQL on S3. Crawl → Athena → Parquet jobs. GMV SQL; Parquet partitions.
उजळणी card: Glue + Athena · PNG download करा · Card page उघडा
उजळणी card: Glue Data Catalog. Catalog नसेल = schema drift. Hive metastore on S3 paths. Crawler/IaC; intentional evolve. One catalog → many engines.
उजळणी card: Glue Data Catalog · PNG download करा · Card page उघडा
उजळणी card: Glue ETL jobs. Raw JSON = slow/expensive. Spark/Python → Parquet partitions. Partition; compress; schedule. date= partition Parquet.
उजळणी card: Glue ETL jobs · PNG download करा · Card page उघडा
उजळणी card: Athena cost control. SELECT * TB = bill shock. Pay per scan; Parquet+partitions. Columns + partitions + workgroup limits. 120GB → 2GB scanned.
उजळणी card: Athena cost control · PNG download करा · Card page उघडा
उजळणी card: Workgroups आणि governance. Shared open Athena = overspend. Workgroups = isolate + enforce. Split workgroups; encrypt; IAM. Interns 1GB limit.
उजळणी card: Workgroups आणि governance · PNG download करा · Card page उघडा
तुलना: AWS Glue ETL vs Amazon Athena. AWS Glue ETL: Jobs → Parquet + catalog. Amazon Athena: Catalog वर serverless SQL.
तुलना: AWS Glue ETL vs Amazon Athena · PNG download करा · Card page उघडा
तुलना: Amazon Athena vs Amazon Redshift. Amazon Athena: S3 scan प्रमाणे पैसे; cluster नाही. Amazon Redshift: Heavy joins साठी warehouse.
तुलना: Amazon Athena vs Amazon Redshift · PNG download करा · Card page उघडा
मुलाखत card: Glue vs Athena?. Glue=ETL/catalog; Athena=SQL. Lake + Parquet + SQL. Crawl→Parquet→SQL.
मुलाखत card: Glue vs Athena? · PNG download करा · Card page उघडा
मुलाखत card: Athena billing कसे?. Per scan; Parquet+partitions. Workgroup limits. Scan drop example.
मुलाखत card: Athena billing कसे? · PNG download करा · Card page उघडा
मुलाखत card: Data Catalog का?. Shared metastore. Schema reinvent थांबते. Athena+EMR same table.
मुलाखत card: Data Catalog का? · PNG download करा · Card page उघडा
मुलाखत card: Partition tables का?. Prune prefixes; less scan. WHERE columns = partition keys. date+region partitions.
मुलाखत card: Partition tables का? · PNG download करा · Card page उघडा

अजून cards: Ravi Sir's Cards.

सराव Tasks

या scenario बद्दल

Shivneri Schools हा जुन्नर मधला शिक्षण व्यवसाय आहे. Kavita Shinde त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 16

सोपं Glue DBs

का: Catalog.

काय करायचं: Glue databases.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

सोपं Tables

का: Tables.

काय करायचं: shivnerischool_lake tables.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

सोपं Workgroups

का: Cost.

काय करायचं: Athena workgroups.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

सोपं Scan billing

का: Bytes.

काय करायचं: Athena scan billing तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

सोपं Parquet

का: Columnar.

काय करायचं: Parquet > CSV तर 1.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

सोपं Public lake

का: Public नको.

काय करायचं: Public lake OK? 0.

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

मध्यम Table get

का: Schema.

काय करायचं: shivnerischool_lake sales.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Crawler

का: Infer.

काय करायचं: shivnerischool-sales crawler.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Query status

का: State/scanned.

काय करायचं: qid-123 get.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Results put

का: Results write.

काय करायचं: arn:aws:s3:::shivnerischool-ath-results/* PutObject.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

मध्यम Partition

का: Cost.

काय करायचं: date 2026-10-27.

कसं करायचं:
  1. Task मधल्या top-level keys पासून सुरू करा.
  2. Child keys 2 spaces ने indent करा (tabs नकोत).
  3. प्रत्येक property मध्ये task मधली value भरा.
  4. Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.

मध्यम WG limit

का: Bill cap.

काय करायचं: WG limit GB?

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

अवघड Start crawler

का: Catalog refresh.

काय करायचं: shivnerischool-sales start.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड Start query

का: SQL on S3.

काय करायचं: SELECT 1 workgroup primary.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड Glue S3 read

का: GetObject.

काय करायचं: arn:aws:s3:::shivnerischool-lake/* GetObject.

कसं करायचं:
  1. { "Version": "2012-10-17", "Statement": [ ... ] } ने सुरू करा.
  2. प्रत्येक statement मध्ये Effect, Action व Resource लिहा.
  3. Task ला लागेल तेवढंच द्या (least privilege).
  4. Double quotes व commas नीट वापरा. Check answer दाबा.

अवघड Query meta

का: Partition filter.

काय करायचं: sql with date filter.

कसं करायचं:
  1. Task मधल्या top-level keys पासून सुरू करा.
  2. Child keys 2 spaces ने indent करा (tabs नकोत).
  3. प्रत्येक property मध्ये task मधली value भरा.
  4. Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.