techspace

20:02

Serverless Data Lake üçün AWS məsləhətləri: S3, Glue, Athena və Lambda necə birləşdirilir?

Əvvəlki məqalədə Data Lake'in nə olduğunu və niyə bu qədər vacib olduğunu danışmışdıq. İndi isə əlləri bir az kirletməyin vaxtıdır – AWS serverless xidmətlərindən istifadə edərək necə tam funksional bir Data Lake qura biləcəyimizə baxırıq.

Beş əsas sütun

Serverless Data Lake beş əsas komponent üzərində qurulur: yaddaş (storage), emal (processing), kataloq (catalog), təhlükəsizlik (security) və istifadə (exploitation). Bu beş sütun birlikdə işləyərək miqyaslana bilən və qənaətcil bir həll yaradır.

Ən kritik hissə S3-dəki qovluq quruluşudur. Data Lake üçün standart struktur belədir:

  • raw/ – işlənməmiş xam məlumatlar (tarixə görə bölünmüş)
  • processed/ – təmizlənmiş və transformasiya olunmuş məlumatlar (bronze, silver, gold olaraq üç qatda)
  • athena-results/ – sorğu nəticələrinin saxlandığı qovluq

Qeyd edək ki, bütün məlumatları bir S3 bucket'də saxlamaq tövsiyə olunur. Çünki AWS hesabı üçün bucket limiti 100-dür.

Glue, Athena və Lambda üçlüyü

AWS Glue serverless data xidmətləri dəstidir. O, həm sxem kəşfini (Glue Crawlers), həm də məlumat transformasiyasını (Glue Jobs) idarə edir. Glue Jobs PySpark ilə işləyir və paralel, serverless emal imkanı verir.

Athena isə S3-dəki məlumatları birbaşa ANSI SQL ilə sorğulamağa imkan verir. Heç bir server provayder etməyə ehtiyac yoxdur. Ödəniş yalnız skan edilən məlumat həcminə görədir. Parquet formatı ilə sorğu xərclərini 90%-ə qədər azaltmaq mümkündür.

Lambda isə bütün bu xidmətləri bir-birinə bağlayan “yapışqan” rolunu oynayır. Məsələn, S3'ə yeni fayl düşəndə Lambda trigger olur, Glue Job işə salır və ya məlumat keyfiyyətini yoxlayır.

Performans və təhlükəsizlik məsləhətləri

Data Lake'in səmərəli işləməsi üçün bir neçə qızıl qayda var: heç vaxt “SELECT * FROM” istifadə etməyin (ən bahalı sorğudur); Parquet və Snappy/GZIP sıxışdırması ilə yaddaş və hesablama xərclərini optimallaşdırın; S3 Lifecycle policy ilə köhnə məlumatları Glacier'ə köçürün; hər bir xidmət üçün minimum icazə prinsipi ilə IAM rolları təyin edin.

CDK ilə bütün infrastrukturu Python kodu kimi idarə etmək mümkündür. Bu, versiyalama və təkrarlana bilən deploy'i təmin edir.

Növbəti yazıda isə Glue Jobs'un böyük həcmli məlumatlar üçün optimallaşdırılması, test və debug üsulları, CI/CD inteqrasiyası kimi praktik mövzulara toxunacağıq. Sizin Data Lake təcrübəniz hansı olub? Rəylərinizi gözləyirik.



Mənbə: Dev.to (https://dev.to/alvarongg/introduccion-a-los-data-lakes-parte-2-4ca0)