Published on

AWS-də data həlləri üçün istifadə olunan əsas servislər #1

6 min read

Authors
banner

Bu gün AWS 200-ə yaxın müxtəlif servis təklif edir ki, onların içində data engineerlər tərəfindən data pipelinelar qurmaq üçün istifadə edilə bilən bir sıra analitik servislər də mövcuddur. Praktikada, bir problemin həlli üçün istifadə edilə bilən çoxsaylı AWS servisləri var və mütəxəssis problem üçün ən yaxşı servisi müəyyən etməzdən əvvəl onları müxtəlif perspektivlərdən qiymətləndirməli, hər bir servisin müsbət və mənfi tərəflərinə hakim olmalıdır.

Bu məqalədə AWS-də data həlləri yaratmaq üçün istifadə edilən bir neçə AWS servisindən bəhs edəcəm.

Bu məqalə seriyası 2 hissədən ibarət olacaq, siz oxuduqdan sonra aşağıdakı mövzular haqqında məlumat əldə edəcəksiniz:

• Dataların AWS-ə daşınması üçün istifadə olunan AWS servisləri
• Dataların transformasiya edilməsi üçün istifadə olunan AWS servisləri
• Böyük data pipelineların təşkili üçün istifadə olunan AWS servisləri
• Dataların istifadə olunması üçün istifadə olunan AWS servisləri

1. Dataların AWS-ə daşınması üçün istifadə olunan AWS servisləri

Data həllərinin yaradılmasında ilk addım müxtəlif mənbələrdən məlumatları AWS-ə “çəkib gətirməkdir”. İndi mən bu məqsəd üçün hazırlanmış bəzi əsas AWS servislərindən bəhs edəcəm.

Amazon Database Migration Service (DMS)

Ümumiyyətlə, burada ən çox qarşılaşacağınız use case dataları ənənəvi verilənlər bazası sistemindən Amazon S3-ə, ya da Amazon Redshift kimi məlumat anbarına sinxronizasiya etməkdir. Amazon DMS mövcud verilənlər bazası sistemlərini yeni verilənlər bazası mühərrikinə köçürmək üçün istifadə edilə bilən çox yönlü bir vasitədir, məsələn, siz şirkətinizdəki mövcud Oracle verilənlər bazasını Amazon Aurora-ya keçid etdirə bilərsiniz. Lakin analitik nöqteyi-nəzərdən Amazon DMS, həmçinin bir sıra ümumi verilənlər bazası mühərriklərindən Amazon S3 məlumat gölünə davamlı replikasiyanı həyata keçirmək üçün də istifadə edilə bilər.

Amazon DMS bir verilənlər bazası mühərrikindən fərqli verilənlər bazası mühərrikinə keçid etməyi və ya mövcud verilənlər bazasında olan dataları davamlı olaraq Amazon S3 ilə sinxronizasiyanı asanlaşdırır.

Amazon Kinesis

Amazon Kinesis reatime və ya reatime-a yaxın streaming dataların qəbulu və emalı prosesini asanlaşdıran servisdir. Kinesis-in təklif etdiyi servislər:

  • Amazon Kinesis Firehose: Sizə streaming dataların mənbəyindən dataları asanlıqla qəbul etmək və həmin dataları Amazon S3, Amazon Redshift, Amazon Elasticsearch, eləcə də üçüncü tərəf xidmətləri (məsələn, Splunk, Datadog və Yeni Relikt) kimi hədəflərə köçürmək imkanı verir.
  • Kinesis Data Streams: Aşağı gecikmə ilə realtime data axınlarını qəbul və emal edir.
  • Kinesis Data Analytics: Bu servisdən istifadə edərək, streaming data üzərində analitika aparmaq üçün SQL sorğuları yaza bilərik.
  • Kinesis Video Streams: Video və ya audio axınları, həmçinin termal görüntülər və RADAR görüntüləri kimi dataları emal edir.

Amazon DataSync

Çox vaxt mövcud on-promise serverlərdə olan verilənləri AWS-ə daşımaq tələb olunur və Amazon DataSync məlumat ötürülməsi üçün yüksək performans və sabitlik təklif etməklə bu prosesi asanlaşdırır.

DataSync Amazon S3 daxil olmaqla, dataları AWS daxilində çoxsaylı hədəflərə daşıya bilər. Məsələn, əgər sizdə end of day əməliyyatlarını fayl serverinə yazan bir həlliniz varsa, DataSync bu dataların S3-ə sinxronizasiyasını təmin edə bilər.

AWS Snow

AWS-ə daşınmalı olan data çox böyük olduqda və ya yaxşı şəbəkə bağlantısı olmadıqda, ya da dataların sadəcə ölçüsünün şəbəkə bağlantısı vasitəsilə ötürülməsini qeyri-mümkün etdiyi hallarda AWS Snow qurğuları istifadə edilə bilər.

AWS Snow qurğuları, fiziki olaraq sizə göndərilir və yerli şəbəkə bağlantısına qoşularaq dataları qəbul edir. Data yerli şəbəkə üzərindən qurğuya ötürülür və qurğu daha sonra məlumatların Amazon S3-ə ötürülməsi üçün AWS-ə geri göndərilir. Bütün qurğular yolda dataların şifrələnməsini təmin edir. Burada bir çox qurğu mövcuddur:

• AWS Snowcone: 8 TB istifadə edilə bilən yaddaşa malik yüngül (2,1 kq) qurğu
• AWS Snowball Edge Optimized (məlumatların ötürülməsi üçün): 80 TB istifadə edilə bilən yaddaşa malik orta çəki (22,5 kq) qurğu
• AWS Snowmobile: Yarımqoşqulu yük maşını ilə çəkilmiş yük konteyneri, 100 PB-ə qədər tutum

2. Dataların transformasiya edilməsi üçün istifadə olunan AWS servisləri

Datalarınız Amazon S3 kimi hansısa AWS servisinə daşındıqdan sonra, növbəti mərhələ verilənləri analitika üçün optimallaşdırmaq və məlumat end-userə təqdim etmək üçün onları transformasiya etməkdir.

Əvvəlki bölmədə məlumatların AWS-yə daxil edilməsi üçün müzakirə etdiyimiz bəzi servislər sadə transformasiyalar həyata keçirə bilər. Məsələn, Amazon DMS məlumatları Kinesis Firehose kimi Parket formatında (analitika üçün optimallaşdırılmış format) yaza bilər. Bununla belə, müxtəlif analitik tapşırıqlar və müxtəlif end userlər üçün məlumatlarınızı tam optimallaşdırmaq üçün tez-tez daha ağır transformasiyalar tələb olunur və bu bölmədə bunun üçün istifadə oluna biləcək bəzi əsas AWS servislərini nəzərdən keçirəcəyik.

AWS Lambda

AWS Lambda kodun icrası üçün serversiz mühit təmin edir və AWS-nin ən populyar xidmətlərindən biridir. 140-dan çox digər AWS xidmətləri ilə inteqrasiya da daxil olmaqla, kodunuzu müxtəlif yollarla icra etmək üçün Lambda funksiyanızı işə sala bilərsiniz və siz yalnız kodunuzun icra etdiyi müddətə görə ödəniş edirsiniz.

Lambda əsasən daxil olan dataların çevrilməsi və sadə transformasiyalar üçün istifadə olunur. Əlbəttə, 15 dəqiqəyə qədər işləmə qabiliyyəti və maksimum 10 GB yaddaş konfiqurasiyası ilə daha təkmil emal etmək də mümkündür.

AWS Lambda bir çox fərqli proqramlaşdırma dillərini, o cümlədən data mühəndisliyi ilə bağlı tapşırıqlar üçün ən populyar dillərdən birinə çevrilmiş Python dilini dəstəkləyir.

AWS Glue

AWS Glue bir neçə ayrı servisə bölünə bilən çoxsaylı komponentlərə malikdir, lakin bu komponentlər hamısı birlikdə işləyə bilər. Buna görə də AWS onları AWS Glue ailəsində qruplaşdırıb.

AWS Glue-un mərkəzində dataların transformasiyası və işlənməsi üçün Python mühərriki və ya Apache Spark mühərriki təmin edən serversiz mühit dayanır. Python kiçik və orta verilənlər bazalarında transformasiyaları həyata keçirmək üçün istifadə oluna bilər, Apache Spark isə çox böyük verilənlər topluları üçün optimal emal etməyə imkan verir.

Hər iki mühərrik Amazon S3-də olan datalarla və AWS Glue Data Catalog ilə işləyə bilər. Bundan əlavə, hər iki mühərrik istifadəçi baxımından serversizdir, yəni istifadəçinin serverləri yerləşdirməsi və ya idarə etməsinə ehtiyac yoxdur, istifadəçi sadəcə işini gücləndirmək istədikləri Məlumat Emalı Vahidlərinin (DPU) sayını göstərməlidir. Glue ETL işləri konfiqurasiya edilmiş DPU-ların sayına, eləcə də əsas kodun mühitdə icra etdiyi vaxta əsasən ödənilir.

AWS Glue bəzi ümumi ETL tapşırıqlarını sadələşdirmək üçün əlavə Spark kitabxanaları və funksionallıq təmin etsə də, onların istifadəsi istəyə bağlıdır, AWS Glue həmçinin canlı məlumat axınlarını emal etmək üçün nəzərdə tutulmuş əsas Spark API-nin genişləndirilməsi olan Spark Streaming-i dəstəkləyir.

Amazon EMR

Amazon EMR, Apache Spark, Apache Hive, Apache Hudi, Apache HBase, Presto, Pig və s. kimi məşhur open source big data emalı alətlərini işə salmaq üçün idarə olunan platforma təqdim edir.

Soruşa bilərsiniz ki, Amazon EMR Apache Spark-ı işə salmaq üçün istifadə oluna bilirsə, AWS nə üçün eyni big data emal mühərrikini effektiv şəkildə həyata keçirən iki xidmət təklif edir? Hər iki xidmət Apache Spark mühərrikindən istifadə edərək böyük məlumatların emalı üçün istifadə oluna bilsə də, mühüm fərqlər var.

Başlanğıc üçün onu deyək ki, AWS Glue Apache Spark-ı işə salmaq üçün serversiz mühit təklif edir, halbuki Amazon EMR ilə siz Apache Spark-ı işə salmaq istədiyiniz klasterin ətraflı konfiqurasiyasını təyin etməlisiniz. Və bu, servislər arasındakı ən böyük fərqlərdən biridir.

Həmçinin, AWS Glue-da siz eyni ölçülü server üçün Amazon EMR ilə müqayisədə bir qədər yüksək pul ödəyirsiniz, lakin AWS Glue Apache Spark mühitinin idarə edilməsi və konfiqurasiya etməklə bağlı daha az anlayış və ya təcrübə tələb edir.

Xülasə, Apache Spark mühitlərini idarə etmək təcrübəniz varsa, Amazon EMR ideal seçim ola bilər. Yox, əgər minimal konfiqurasiya ilə datalarınızı emal etmək istəyirsinizsə, AWS Glue ən uyğun seçimdir.

Digər mühüm fərq odur ki, Amazon EMR böyük verilənlərin emalı üçün çoxlu əlavə alətlər təklif edir. Məsələn, əgər siz Apache Hive, Presto və ya EMR-də dəstəklənən digər alət dəstlərindən istifadə edən bir mühitə köçürsünüzsə, Amazon EMR çox uyğundur.

Bu günlük bu qədər, növbəti məqalədə:

  • Böyük data pipelineların təşkili üçün istifadə olunan AWS servisləri
  • Dataların istifadə olunması üçün istifadə olunan AWS servisləri

Oxuduğunuz üçün təşəkkür edirəm!

© 2023 Nijat Zeynalov