AWS Glue, farklı kaynaklardaki verileri keşfetmek, hazırlamak, dönüştürmek ve birleştirmek için kullanılan, Amazon Web Services (AWS) tarafından yönetilen sunucusuz bir veri entegrasyonu hizmetidir. Hizmet; Apache Spark tabanlı ETL işlerini, merkezi bir metaveri kataloğunu (AWS Glue Data Catalog) ve veri kalitesi kontrollerini bir arada sunar. Sunucu altyapısı AWS tarafından yönetilir. Veri akışlarının tasarımı ve işletilmesi ise ekiplerin sorumluluğunda kalır. (AWS Glue dokümantasyonu)
Kısaca AWS Glue
AWS Glue, dağınık kaynaklardaki verileri analize hazır, ortak bir yapıya dönüştürür. Kurumsal veriler çoğunlukla farklı veritabanlarında, uygulamalarda ve dosyalarda tutulur. Bu verilerin birlikte analiz edilebilmesi için tek bir standarda getirilmesi gerekir.
AWS Glue bu süreçte üç adımı üstlenir: verinin kaynaktan alınması, dönüştürülmesi ve hedef sisteme yüklenmesi. Bu süreç ETL (Extract, Transform, Load — Çıkar, Dönüştür, Yükle) olarak adlandırılır. Örneğin farklı kaynaklardan gelen satış kayıtlarının tarih formatları standartlaştırılabilir, alanları eşleştirilebilir ve raporlamaya uygun bir veri kümesi oluşturulabilir. (AWS sunucusuz ETL rehberi)
AWS Glue beş temel bileşenden oluşur: Data Catalog, Crawler, ETL işleri, Glue Studio ve Glue Data Quality. Her bileşen, veri entegrasyonu sürecinin farklı bir adımını yönetir.
AWS Glue Data Catalog
Veri kümelerinin konum, şema ve veri türü bilgilerini tutan merkezi metaveri deposu
AWS Glue Crawler
Veri kaynaklarını tarayarak şemayı belirleyen ve katalog tablolarını oluşturan/güncelleyen keşif aracı
ETL işleri
Verinin dönüştürülmesini ve hedef sisteme yüklenmesini sağlayan Spark veya Python tabanlı işler
AWS Glue Studio
ETL işlerinin görsel arayüzle veya not defteri (notebook) ortamında geliştirilmesini sağlayan araç
AWS Glue Data Quality
Eksik, güncelliğini yitirmiş veya hatalı veriyi kurallarla ölçen ve izleyen modül
AWS Glue Data Catalog, veri kümelerinin nerede bulunduğunu ve nasıl yorumlanacağını tanımlayan merkezi bir metaveri kataloğudur. Tablo şemaları, sütunlar, veri türleri ve bölümleme (partition) bilgileri bu katalogda yönetilir. Amazon Athena, Amazon Redshift ve Amazon EMR gibi hizmetler aynı katalog üzerinden sorgu çalıştırabilir.
Data Catalog yalnızca metaveriyi tutar. Verinin kendisi Amazon S3 veya Amazon Redshift gibi depolama katmanlarında kalır. AWS Lake Formation entegrasyonu sayesinde katalog üzerinden tablo, sütun ve satır düzeyinde erişim yetkileri tanımlanabilir. (AWS Glue fiyatlandırma ve Data Catalog)
AWS Glue Crawler, desteklenen veri kaynaklarını tarayarak veri yapısını otomatik olarak belirleyen ve Data Catalog'daki tablo tanımlarını oluşturan bir keşif aracıdır. Crawler kullanımı isteğe bağlıdır; tablo tanımları API veya SQL (DDL) komutlarıyla doğrudan da oluşturulabilir. (Veri keşfi ve kataloglama dokümantasyonu)
AWS Glue ETL işleri, Apache Spark veya Python ile yazılan ve verinin dönüştürülüp hedef sisteme yüklenmesini sağlayan işlem birimleridir. AWS Glue Studio, bu işlerin kod yazmadan görsel olarak tasarlanmasına veya not defteri ortamında etkileşimli olarak geliştirilmesine olanak tanır. AWS Glue ayrıca Amazon Kinesis Data Streams ve Apache Kafka gibi kaynaklardan gelen akış (streaming) verisinin işlenmesini de destekler. (AWS Glue özellikleri)
AWS Glue en çok veri gölü oluşturma, raporlama verisi hazırlama, veri ambarına veri aktarma ve makine öğrenmesi için veri hazırlama senaryolarında kullanılır.
Hizmet seçiminde veri hacmi, kaynak bağlantıları, güncelleme sıklığı ve dönüşüm karmaşıklığı birlikte değerlendirilir. Sunucusuz yapının maliyet ve performans etkisi, iş yükünün karakterine göre farklılaşır. Bu nedenle pilot ölçümler karar sürecinin önemli bir parçasıdır.
Satış ve stok verileri AWS Glue ile beş adımda birleştirilebilir: veri alma, standartlaştırma, kalite kontrolü, hedefe yükleme ve izleme.
Örnek senaryo: Bir şirketin satış kayıtları ilişkisel bir veritabanında tutulmaktadır. Stok kayıtları ise Amazon S3'e yüklenen günlük dosyalarda yer almaktadır. Amaç, ürün bazında satış ve stok durumunun tek bir tabloda izlenmesidir.
Bu senaryo kavramsal bir uygulama örneği olarak hazırlanmıştır. İşlem süresi ve maliyet, kullanılan kaynaklara ve veri yapısına göre ölçülerek belirlenir.
Amazon S3 veriyi saklar, AWS Glue veriyi hazırlar ve kataloglar, Amazon Athena ise veriyi SQL ile sorgular. Üç hizmet aynı mimaride birbirini tamamlayacak şekilde birlikte kullanılır.
Amazon S3
Nesne depolama
Ham ve işlenmiş verinin saklanması
AWS Glue
Veri entegrasyonu, dönüşüm ve metaveri yönetimi
ETL işleri, şema keşfi, veri kalitesi
Amazon Athena
Sunucusuz SQL sorgulama
S3'teki verinin anlık analizi
Örnek bir mimaride veriler S3 üzerinde saklanır, Glue ile hazırlanıp kataloglanır ve Athena üzerinden sorgulanır. (AWS Glue genel bakış)
AWS Glue kullanıma dayalı olarak ücretlendirilir. ETL işleri ve crawler'lar DPU-saat üzerinden saniye bazında faturalandırılır. Data Catalog ise depolanan metaveri nesnesi ve erişim isteği sayısına göre ücretlendirilir. Fiyatlar AWS bölgesine göre değişir. (AWS Glue fiyatlandırma)
Toplam maliyet hesabında Glue'nun yanı sıra Amazon S3 depolama, Athena sorgulama ve veri transferi gibi bağlantılı kalemler de dikkate alınır. Güncel birim fiyatlar için AWS Glue fiyatlandırma sayfası ve AWS Pricing Calculator referans alınır.
Bir AWS Glue projesinde başlangıçta veri kaynakları, hedef sistem, veri hacmi ve güncelleme sıklığı netleştirilir. Ardından veri kalitesi kuralları, erişim yetkileri, hata yönetimi ve maliyet beklentisi tanımlanır.
Küçük bir veri kümesiyle yürütülen pilot çalışma; bağlantıların, dönüşümlerin ve işlem süresinin gerçek koşullarda ölçülmesini sağlar. Pilot sonuçları, üretim ortamına yönelik mimari kararların temelini oluşturur.
AWS Glue kullanıma dayalı olarak ücretlendirilir; yalnızca kullanılan kaynaklar için ödeme yapılır. Data Catalog için her ay ilk 1 milyon metaveri nesnesi ve ilk 1 milyon erişim isteği ücretsizdir. ETL işleri, crawler'lar ve etkileşimli oturumlar ise kullanılan DPU-saat üzerinden saniye bazında faturalandırılır.
DPU (Data Processing Unit), AWS Glue'da işlem kapasitesini ifade eden ölçü birimidir. 1 DPU, 4 vCPU ve 16 GB bellek sağlar. ETL işlerinin, crawler'ların ve veri kalitesi görevlerinin maliyeti, kullanılan DPU sayısı ile çalışma süresinin çarpımıyla (DPU-saat) hesaplanır.
AWS Glue ETL işleri Python (PySpark) ve Scala ile Apache Spark üzerinde geliştirilir. Hafif iş yükleri için Python shell işleri de kullanılabilir. AWS Glue Studio ise görsel arayüz ve SQL dönüşümleri sayesinde kod yazmadan veri akışı tasarlanmasına olanak tanır.
AWS Glue, akış (streaming) ETL işleriyle Amazon Kinesis Data Streams, Apache Kafka ve Amazon MSK gibi kaynaklardan gelen veriyi sürekli olarak işleyebilir. Veri küçük mikro-yığınlar (micro-batch) hâlinde işlendiği için gerçek zamana yakın (near real-time) analitik senaryolarına uygundur.
AWS Glue, altyapı yönetimi gerektirmeyen sunucusuz bir ETL hizmetidir. Amazon EMR ise Apache Spark, Hive ve Presto gibi açık kaynak büyük veri çerçevelerini yönetilen kümeler üzerinde çalıştırır ve yapılandırma üzerinde daha fazla kontrol sunar. Standart ETL için Glue, yüksek özelleştirme gerektiren büyük ölçekli iş yükleri için ise EMR öne çıkar.
Evet. AWS Glue ETL işleri Apache Iceberg tablolarını okuyup yazabilir ve Data Catalog bu tabloları yönetebilir. Data Catalog ayrıca Amazon S3'teki Iceberg tabloları için küçük dosyaları birleştiren yönetilen sıkıştırma (compaction) özelliği sunar. Bu özellik sorgu okuma performansını iyileştirir.
AWS Glue Data Catalog; Amazon Athena, Amazon Redshift, Amazon EMR ve AWS Lake Formation ile entegre çalışır. Bu sayede aynı tablo tanımı farklı analitik hizmetlerden sorgulanabilir ve erişim yetkileri tek bir merkezden yönetilir.
AWS Glue Data Quality, veri göllerinde ve veri akışlarında eksik, güncelliğini yitirmiş veya hatalı veriyi tanımlanan kurallarla ölçen ve izleyen bir özelliktir. Kurallar Data Catalog tablolarında veya doğrudan ETL işlerinin içinde çalıştırılabilir. Anomali tespiti sayesinde beklenmeyen veri değişimleri de yakalanabilir.
Zero-ETL, belirli kaynaklardan Amazon Redshift ve Amazon SageMaker Lakehouse'a veri aktarımını ETL hattı kurmadan otomatikleştiren yönetilen entegrasyonlar bütünüdür. Basit veri alma ve çoğaltma senaryolarında kullanılır. Karmaşık dönüşüm, birleştirme ve veri kalitesi gerektiren süreçlerde ise AWS Glue ETL işleri tamamlayıcı bir rol üstlenir.