AWS Türkçe Blog

AWS Glue DataBrew, AWS Glue ETL ve AWS Step Functions kullanarak verilerinizi hazırlayın, dönüştürün ve düzenleyin

Orijinal makale: Link (Durga Mishra, Jay Palaniappan ve Narendra Gupta)

Kurumlardaki veri hacimleri benzeri görülmemiş bir oranda artıyor, terabaytlardan petabaytlara ve bazı durumlarda eksabaytlar mertebelerine doğru hızla bir artış söz konusu. Veri hacmi arttıkça, veriyi birçok farklı şekilde kullanmak isteyen kullanıcı ve uygulama sayısı da buna paralel olarak artıyor – hatta bazıları bunu “veri yerçekimi” olarak adlandırıyor. Verilerin hacmi, üretilme hızı ve çeşitliliğindeki artıştan dolayı büyük miktarda veriyi kolaylıkla hazırlayıp işlememize ve çeşitli uygulamalar ve kullanıcılar tarafından tüketilmeye hazır hale getirmemize imkan sağlayan araçlar ve hizmetler bulmamız gerekiyor. Bu yazıda veri hazırlama ve dönüştürme iş akışının orkestrasyonunu basitleştirmek için AWS Glue DataBrew ve AWS Glue kullanarak çıkarma (extract), dönüştürme (transform) ve yükleme (load) yani bilinen kısaltma haliyle ETL işlemlerinin nasıl yapılacağını ve iş akışını yürütmek için AWS Step Functions‘ın nasıl kullanılacağını anlatmaya çalışacağız.

DataBrew, veri analistlerinin ve veri bilimcilerinin herhangi bir satır kod yazmadan verileri analitik ve makine öğrenimi (ML) uygulamalarının kullanımına hazırlamak için verilerin zenginleştirmesini, temizlemesini ve normalleştirmesini kolaylaştırıp, verileri elektronik tablo benzeri görünümlerde listeleyen görsel bir veri hazırlama aracıdır. 250’den fazla kullanıma hazır dönüşüm fonksiyonu ile geleneksel veri hazırlama yaklaşımlarına kıyasla verileri hazırlamak için gereken süreyi yaklaşık %80 oranında azaltmaya yardımcı olur.

AWS Glue verilerinizi kategorilere ayırmayı, temizlemeyi, zenginleştirmeyi ve çeşitli veri depoları ve veri akışları arasında güvenilir bir şekilde taşımayı basit ve uygun maliyetli hale getiren, tam olarak yönetilen bir ETL hizmetidir. AWS Glue, AWS Glue Veri Kataloğu olarak bilinen merkezi bir meta-veri deposundan, otomatik olarak Python veya Scala kodu oluşturan bir ETL motorundan ve bağımlılık çözümleme, iş izleme ve yeniden denemeleri yöneten esnek bir zamanlayıcıdan oluşur. AWS Glue sunucusuzdur, bu nedenle kurulacak veya yönetilecek bir sunucu altyapısına ihtiyacınız yoktur.

Step Functions, AWS’in diğer servislerinden olan AWS Glue, DataBrew, AWS Lambda, Amazon EMR ve daha fazlasını birleştirerek bir uygulama iş akışı oluşturmayı kolaylaştıran sunucusuz bir orkestrasyon servisidir. Step Functions’ın grafik konsolu uygulamanızın iş akışını bir dizi olaya dayalı (event-driven) adımlar olarak görmenizi sağlar. Step Functions durum makinelerine (state machines) ve görevlere (tasks) dayalıdır. Durum makinesi bir iş akışıdır; görev ise, başka bir AWS hizmetinin gerçekleştirdiği tek bir işi temsil eden iş akışındaki bir durumdur. Bir iş akışındaki her adım bir durumu (state) temsil eder.

Çözüme Genel Bakış

DataBrew, self servis veri hazırlama alanında AWS Re:invent 2020’de anons ettiğimiz yeni bir servistir ve veri analisti, veri bilimci ve self servis kullanım ihtiyacı olan hedef kitleye odaklanmıştır. Bazı kurumların gelişmiş veri dönüşümü ve operasyonel nedenlerle self servis veri hazırlığının standart bir kurumsal veri hattıyla entegre edilmesi gereken kullanım ihtiyaçları olabileceğini görüyoruz. Bu yazı veri analistleri ve veri bilimcileri tarafından gerçekleştirilen veri hazırlığını Step Functions kullanarak standart AWS Glue ETL ardışık düzenine entegre etmek için bir mekanizma arayan müşteriler için bir çözüm sunar. Aşağıdaki diyagram bu iş akışını göstermektedir.

Mimari Genel Bakış

Çözümü göstermek için bisiklet kullanım şablonlarını analiz etmek için açık kaynaklı olarak sunulan “New York Citi Bike” bisiklet kiralama verilerini hazırlayıp ve dönüştüreceğiz. Veri setimiz aşağıdaki özelliklere sahip.

Field Name Description
starttime Bisiklet turuna başlama zamanı
stoptime Bisiklet turunu bitirme zamanı
start_station_id Bisiklet turunun başladığı istasyon ID’si
start_station_name Bisiklet turunun başladığı istasyon adı
start_station_latitude Bisiklet turunun başladığı istasyon enlemi
start_station_longitude Bisiklet turunun başladığı istasyon boylamı
end_station_id Bisiklet turunun bittiği istasyon ID’si
end_station_name Bisiklet turunun bittiği istasyon adı
end_station_latitude Bisiklet turunun bittiği istasyon enlemi
end_station_longitude Bisiklet turunun bittiği istasyon boylamı
bikeid Bisiklet turunda kullanılan bisikletin ID’si
usertype Kullanıcı türü (customer [müşteri] = 24 saatlik geçiş veya 3 günlük geçiş kullanıcısı; subscriber [abone] = yıllık üye)
birth_year Bisiklet turundaki kullanıcının doğum yılı
gender Bisiklet turundaki kullanıcının cinsiyeti (sıfır=bilinmiyor; 1=erkek; 2=kadın)

En güncel verileri hazırlamak ve temizlemek için DataBrew kullanacağız. Ardından AWS Step Functions kullanarak AWS Glue ETL’de gelişmiş veri dönüşümlerini yapacağız .

DataBrew adımları için veri setini temizlememiz gerekiyor ve bunun için başlangıç veya bitiş zamanının eksik olduğu ya da bisiklet kullanıcısının cinsiyetinin belirtilmediği geçersiz turları veri setinden çıkartacağız.

DataBrew’da verileri hazırladıktan sonra, AWS Glue ETL kullanarak tripduration (tur süresi) adında yeni bir sütun eklemek üzere başlangıç zamanını (starttime) bitiş zamanından (stoptime) çıkararak, çıkan değeri tripduration alanına yazacağız.

ETL dönüşümlerini gerçekleştirip hazırladığımız verileri Amazon Simple Storage Service (Amazon S3) hedef lokasyonda depolayacağız. Amazon Athena üzerinde interaktif sorgular çalıştırarak bisikletlerin bakım zamanlarını planlamak üzere en çok kullanılan bisikletleri belirleyeceğiz. Ayrıca turlarda en çok kullanılan başlangıç istasyonlarını belirleyip bu istasyonlarda yeterli bisiklet bulunduğundan emin olmak için de yine Amazon Athena kullanarak sorgulama yapacağız.

Ayrıca, farklı bisiklet kullanıcılarının yaş grupları ve kullanıcı türüne göre tur sayısını karşılaştırıp öngörüler elde etmek ve verileri görselleştirmek için Amazon QuickSight‘ı kullanarak etkileşimli bir pano oluşturacağız.

Aşağıdaki diyagram çözüm mimarimizi göstermektedir.

Önkoşullar

Aşağıda adım adım anlatılan akışı takip etmek için bir AWS hesabınızın olması gerekir. Hesabınızın çözüm mimarisinde belirtilen servisleri oluşturmak için AWS CloudFormation kodu çalıştırma yetkisi olmalıdır.

AWS hesabınızın işlenmiş verileri kullanarak görselleştirme oluşturması için aktif bir QuickSight aboneliği olması gerekir. Quicksight hesabınız yoksa yeni bir hesap oluşturabilirsiniz.

AWS CloudFormation kullanarak gerekli altyapıyı oluşturma

İlk olarak aşağıdaki adımları tamamlayacağız.

  1. AWS hesabınızda gerekli kaynakları yapılandırmak üzere CloudFormation yığınını başlatmak için Launch Stack’i tıklayın.
  2. Create Stack sayfasında değişiklik yapmadan Next’i tıklayın.
  3. Specify stack details sayfasında Stack name ve Parameters alanlarını aşağıdaki gibi doldurun ve Next’i tıklayın. SolutionS3BucketNameSuffix alanına verdiğiniz değer, S3 Bucket isimlendirme kuralları gereği benzersiz olmalıdır. Örneğin isminizin baş harflerini eklemeyi deneyebilirsiniz (“ab-data-script-store” gibi).
  4. Tüm varsayılan değerleri kullanarak kalan adımları Next ile ilerletin. Son gözden geçirme (Review) ekranında en altta bulunan “I acknowledge that AWS CloudFormation might create IAM resources with custom names.” işaretleyin ve Create Stack butonuna tıklayın.
    CloudFormation yığınının tamamlanması yaklaşık 2-3 dakika sürecektir.
  5. CloudFormation yığının statüsü CREATE_COMPLETE durumundayken, yığının Resources sekmesine gidin ve 18 yeni kaynağınız olduğunu doğrulayın.

Aşağıdaki bölümlerde bu kaynaklardan birkaçı hakkında daha fazla ayrıntıya gireceğiz.

Kaynak veri ve komut dosyalarının saklandığı S3 Bucket

Yığın, adı <Stack name>-<SolutionS3BucketNameSuffix> olacak şekilde bir S3 Bucket oluşturdu.

Amazon S3 konsolunda S3 Bucket’ın aşağıdaki klasörlerle oluşturulduğunu doğrulayın:

  • scripts – Temizlenen verileri işlemek için kullanılacak ETL görevinin Python kodunu içerir.
  • source – DataBrew ve ETL görevi tarafından işlenecek kaynak CitiBike verilerini içerir.

DataBrew veri seti, proje, reçete ve görevi

CloudFormation yığını ayrıca çözümde kullanılmak üzere DataBrew veri setini, projesini, reçetesini ve görevini oluşturdu. Bu kaynakların kullanılabilir olduğunu doğrulamak için aşağıdaki adımları tamamlayın:

  1. DataBrew konsolunda projelerin listesini görmek için Projects’i seçin.Projeler listesinde yeni bir proje, ilişkili veri seti, ekli reçete ve görevi görmelisiniz.
  2. Kaynak verileri incelemek için yeni oluşturalan veri setinin adını tıklayın.Dataset preview sayfasına yönlendirileceksiniz.
    DataBrew, özel parametre ve koşulları kullanarak dinamik bir veri seti oluşturmanızı sağlar. Bu özellik S3 Bucket’ınıza en son eklenen dosyaları kullanıcı dostu bir arayüzle otomatik olarak işlemenize yardımcı olur. Örneğin, dinamik veri setinize otomatik olarak dahil edilmek üzere belirli koşullarla eşleşen en son eklenen 10 dosyayı ya da son 24 saat içinde değişen dosyaları seçebilirsiniz.
  3. Veri profilini çalıştırarak verileriniz hakkındaki istatistiklerin özetlerini incelemek ve toplamak için Data profile overview sekmesini seçin.
  4. Veri profili hazırlama görevi oluşturmak ve çalıştırmak için Run Data Profile tıklayın.
  5. Kaynak verilerin profilini hazırlamak için gerekli görevi oluşturmak ve çalıştırmak için talimatları takip edin.Görevin tamamlanması yaklaşık 2-3 dakika sürecektir.Profil oluşturma görevi tamamlandığında, Data profile overview sekmesinde veri kalitesi de dahil olmak üzere veriler hakkında daha fazla detaylı istatistikleri içeren Summary, Correlations, Compare Value distribution, ve Column Summary bölümlerini görebilirsiniz.
  6. Her bir veri sütunu hakkında daha ayrıntılı istatistikler görmek için Column Statistics sekmesini seçin.DataBrew verilerin soy ağacını hazırlamak, profilini çıkarmak ve görselleştirmek için kullanıcı dostu bir arayüz sağlar. Bu yazının sonundaki Ek A bölümünde DataBrew ile birlikte hazır gelen ve yaygın olarak kullanılan veri profili oluşturma ve istatistiksel özellikler hakkında ayrıntılı bilgiyi bulabilirsiniz.
  7. Verilerin soy ağacı hakkında daha fazla bilgi almak için Data Lineage sekmesini seçin.
  8. Sol taraftaki menuden PROJECTS’i seçin ve projedeki verileri ve reçete üzerinden uygulanan dönüşümü incelemek için proje adını tıklayın.DataBrew veri setini hazırlamak ve dönüştürmek için 250’den fazla dönüştürme fonksiyonu sağlar. Bu yazının sonundaki Ek B en sık kullanılan dönüşümlerden bazılarını göstermektedir.

Bu aşamada DataBrew görevini manuel olarak çalıştırmamıza gerek yok; sonraki adımlarda Step Function durum makinesini kullanarak görevi çalıştıracağız.

AWS Glue ETL Görevi

CloudFormation yığını ayrıca çözümde kullanılmak üzere bir AWS Glue ETL görevi oluşturdu. ETL görevini gözden geçirmek için aşağıdaki adımları tamamlayın:

  1. AWS Glue konsolunda, yeni ETL görevini görmek için menüden Jobs’a tıklayın.
  2. Görevi seçin ve Python kodunu incelemek için Script sekmesinde Edit Script’i tıklayın. Kodda bir değişiklik yapmayacağız.

Bu aşamada ETL görevini manuel olarak çalıştırmamıza gerek yok; sonraki adımlarda Step Function durum makinesini kullanarak görevi çalıştıracağız.

Step Functions Durum Makinesini Çalıştırma

CloudFormation yığını, DataBrew görevini ve AWS Glue ETL görevini çalıştırmayı düzenlemek için bir Step Functions durum makinesi de oluşturdu. Bir Lambda fonksiyonu günlük veri dosyaları S3 Bucket kaynak veri klasörüne her yüklendiğinde durum makinesini tetikleyebilir. Bu yazıda durum makinesini manuel olarak başlatacağız.

  1. Step Functions konsolunda, durum makinelerinin listesini görmek için menüden State Machines’i seçin.
  2. Durum makinesinin detayını görmek için tıklayınız.
  3. Durum makinesini çalıştırmak için Start execution butonuna tıklayınız.
    Durum makinesi çalıştırmasının ayrıntıları Details sekmesinde görüntülenir.
  4. Durum makinesinin farklı statülerini gözlemlemek için Graph inspector bölümünü inceleyin. Her adım tamamlandığında renk yeşile dönecektir.
  5. Durum makinesinin tanımını gözden geçirmek için Definition sekmesini seçin.
    Durum makinesi çalışmasını tamamladığında verileri temizlemek için DataBrew görevi ve temizlenen verileri işlemek için AWS Glue ETL görevi çalıştırılıp tamamlamış olmalıdır.DataBrew görevi, kaynak veri setindeki starttime (başlangıç zamanı) ve stoptime (bitiş zamanı) eksik olan ve gender (cinsiyeti) belirtilmemiş tüm bisiklet turlarını temizledi. Ayrıca temizlenen verileri S3 Bucket’ının cleaned (temizlenmiş) klasörüne kopyaladı. Athena ile sonraki adımlarda temizlenen verileri sorgulayıp göreceğiz.
    ETL görevi, cleaned klasöründeki verileri işleyerek, tripduration (tur süresi) sütununu eklemek üzere starttime alanını stoptime alanından çıkararak hesapladı. Ayrıca işlenen verileri analitik işleme için daha optimize edilmiş sütun bazlı formata (Parquet) dönüştürdü ve processed (işlenmiş) klasörüne kopyaladı. Athena ile sonraki adımlarda işlenen verileri sorgulayıp ayrıca bisiklet kullanıcısının davranışı hakkında bilgi edinmek için QuickSight ile görselleştireceğiz.

Veri Kataloğu’nda tablo oluşturmak için AWS Glue Crawler çalıştırma

CloudFormation yığını verilerin depolandığı source (kaynak), cleaned ve processed klasörlerini taramak için üç AWS Glue Crawler ekledi. Bir Crawler (tarayıcı), tek bir çalıştırmada birden çok veri deposunu tarayabilir. Tarayıcı tamamlandığında AWS Glue Data Catalog’da (Veri Kataloğu’nuzda) bir veya daha fazla tablo oluşturur veya günceller. S3 klasörlerinin her birinde AWS Glue tabloları oluşturmak üzere bu tarayıcıları çalıştırmak için aşağıdaki adımları tamamlayın.

  1. AWS Glue konsolunda CloudFormation yığını tarafından oluşturulan tarayıcıların listesini görmek için menüden Crawlers‘ı seçin. Bu çözümü uyguladığınız AWS Bölgesinde AWS Lake Formation‘ı etkinleştirdiyseniz, Lake Formation yetki hatası alabilirsiniz. Citibike veritabanında tablo oluşturmak için Glue Crawler tarafından kullanılan IAM rolüne gerekli izni tanımlamak için lütfen Ek C‘deki adımları izleyin.
  2. Her bir tarayıcıyı tek tek seçin ve her birisi için Run crawler’ı tıklayın.
    Tarayıcılar başarıyla çalıştırıldıktan sonra her tarayıcı tarafından eklenen bir tablo göreceksiniz.
    Bu yazıda tarayıcıları manuel olarak çalıştırdık fakat ilgili S3 Bucket klasörüne yeni bir dosya eklendiğinde tarayıcıları AWS Lambda fonksiyonu kullanarak tetikleyebilirsiniz.
  3. AWS Glue veritabanı citibike‘ın CloudFormation yığını tarafından oluşturulduğunu doğrulamak için menüden Databases‘i seçin.
  4. citibike veritabanını işaretleyin ve View tables’ı tıklayın.Tarayıcılar tarafından oluşturulan üç tabloyu görüyor olmalısınız.

Athena ile analitik sorguları çalıştırma

Aşağıdaki adımlarda Glue Data Catalog’da processed_citibike tablosundaki temizlenmiş ve işlenmiş veriler üzerinde analiz sorguları için Athena’yı kullanacağız. Bu yazıda düzenli bakımlarını planlamak için en çok kullanılan 20 bisikleti ve istasyonunda yeterli sayıda bisiklet bulunduğundan emin olmak için en çok tura çıkılan ilk 20 başlangıç istasyonunu bulacağız.

  1. Athena konsolda Query Editor ekranında, Data Source listesinden AwsDataCatalog’u seçin.
  2. Database listesinde citibike seçin.Tables altında listede 3 yeni tablo görüntülenir.
    Athena’yı AWS hesabınızda daha önce kullanmadıysanız Athena’nın sorgu sonuçlarını depolaması için bir sorgu sonucu konumu ayarlamanız gerektiğine dair bir mesaj görebilirsiniz.
  3. En çok kullanılan 20 bisikleti bulmak için New query1 sekmesinde aşağıdaki sorguyu çalıştırın:
    SELECT bikeid as BikeID, count(*) TripCount FROM "citibike"."processed_citibike" group by bikeid order by 2 desc limit 20;
    SQL

    Bu çözümü uyguladığınız AWS Bölgesinde AWS Lake Formation’ı etkinleştirdiyseniz, sorguları çalıştırırken (aşağıdaki hataya benzer) hata alabilirsiniz. Yetki sorunlarını çözmek üzere Lake Formation kullanarak oturum açmış kullanıcıya citibike veritabanındaki tüm tablolara “Select” yetkisi vermek için lütfen Ek D‘deki adımları izleyin.

  4. En çok tura sahip ilk 20 başlangıç istasyonunu bulmak için New query1 sekmesinde aşağıdaki sorguyu çalıştırın:
    SELECT start_station_name, count(*) trip_count FROM "citibike"."processed_citibike" group by start_station_name order by 2 desc limit 20;
    SQL

İşlenen verileri bir QuickSight Panosunda görselleştirme

Son adım olarak, bir QuickSight panosu kullanarak aşağıdaki verileri görselleştireceğiz:

  • Farklı bisiklet kullanıcılarının yaş gruplarına göre bisiklet turu sayısını karşılaştırın
  • Kullanıcı tipine göre bisiklet turu sayısını karşılaştırın (customer (müşteri) = 24 saatlik geçiş veya 3 günlük geçiş kullanıcısı; subscriber (abone) = yıllık üye)

AWS hesabınızın, işlenmiş veriler üzerinde görselleştirme yapabilmek için aktif bir QuickSight aboneliği olması gerekir. Quicksight hesabınız yoksa, yeni bir hesap oluşturabilirsiniz.

  1. QuickSight konsolunda, veri kaynağı olarak Athena seçip ile bir veri seti oluşturun.
  2. Veri seti oluşturma işleminizi tamamlamak için aşağıdaki adımları tamamlayın.
  3. Aşağıdaki formülü kullanarak hesaplanan rider_age alanını ekleyin:
    dateDiff(parseDate({birth_year},"YYYY"), truncDate( "YYYY", now() ) ,"YYYY")
    SQL


    Veri setiniz aşağıdaki ekran görüntüsü gibi görünmelidir.


    Artık kullanıcı türüne göre haftalık yolculuk sayısını ve bisiklet kullanıcısı yaş grubuna göre toplam yolculuk sayısını karşılaştırmak için görselleştirmeler oluşturabilirsiniz.

Oluşturulan kaynakların silinmesi

Şu ana kadar örnek çözüm için oluşturulan kaynakların ileride maliyet oluşturmaması için silinmesi gerekmektedir.

  1. Kaynak verilerin profilini çıkarmak için oluşturulan DataBrew profil görevini silin.
  2. Yığın tarafından oluşturulan tüm kaynakları silmek için CloudFormation yığınını silin.

Sonuç

Bu yazıda verilerinizi hazırlamak için DataBrew’u nasıl kullanacağınızı ve ardından verilerinizden daha fazla anlam çıkartma amacıyla standart bir operasyonel ETL akışına entegre etmek için AWS Glue ETL ile verileri nasıl işleyeceğinizi anlatmaya çalıştık.

Ayrıca veri seti üzerinde SQL analizi yapmak ve QuickSight aracılığıyla iş zekası raporlarını görselleştirmek ve oluşturmak için Athena’yı nasıl kullanabileceğinizi de anlattık.

Bu yazı ile mevcut ve yeni oluşturacağınız ETL ile veri işleme akışlarınızın Databrew görevleri ile orkestrasyonu için iyi bir başlangıç noktası olmasını umut ediyoruz.

DataBrew’un Step Functions ile birlikte kullanılması hakkında daha fazla bilgi için Step Functions ile AWS Glue DataBrew Görevlerini Yönetme bölümüne bakmanızı tavsiye ediyoruz.

DataBrew görevleri hakkında daha fazla bilgi için AWS Glue DataBrew görevlerini oluşturma, çalıştırma ve planlama bölümüne bakabilirsiniz.

EK A

Aşağıdaki tablo, DataBrew ile bilrlikte hazır olarak gelen ve sıkça kullanılan veri profili oluşturma ve istatistiksel fonksiyonları listeler.

Type Data type of the column
missingValuesCount Eksik değerlerin sayısı. Null veya boş alanlar eksik olarak kabul edilir.
distinctValuesCount Değeri en az bir kere olan alanların sayısı.
entropy İşlenmekte olan verideki rastgeleliğin ölçüsü. Entropi ne kadar yüksek olursa, bu bilgiden herhangi bir sonuç çıkarmak o kadar zor olur.
mostCommonValues En yaygın 50 değerin listesi.
mode Sütunda en sık görünen değer.
min/max/range Sütundaki minimum, maksimum ve aralık değerleri.
mean Sütunun ortalama değeri
kurtosis Verilerin normal dağılıma göre heavy-tailed mi yoksa light-tailed mi olduğunun ölçüsü. Yüksek basıklığa (kurtosis) sahip bir veri seti, düşük basıklığa sahip bir veri setine kıyasla daha fazla aykırı değere sahiptir.
skewness Gerçek değerli bir rastgele değişkenin ortalamasına göre olasılık dağılımının asimetrisinin bir ölçüsü.
Correlation Pearson korelasyon katsayısı. Bu, bir sütunun değerlerinin başka bir sütunun değerleriyle korelasyonunun bir ölçüsüdür.
Percentile95 Listedeki 95. yüzdeliği temsil eden öğe (sayıların %95’i bunun altına düşer ve sayıların %5’i bunun üstüne düşer).
interquartileRange Sayıların yüzde 25’i ile yüzde 75’i arasındaki aralık.
standardDeviation Sütundaki değerlerin tarafsız örnek standart sapması.
min/max Values Bir sütundaki beş minimum ve maksimum değerin listesi.
zScoreOutliersSample En büyük veya en küçük Z puanına sahip ilk 50 aykırı değerin listesi. -/+3 varsayılan eşiktir.
valueDistribution Değerlerin aralığa göre dağılımının ölçüsü.

EK B

DataBrew, 250’den fazla dönüşüm kullanarak veri setinizi hazırlama ve dönüştürme imkanı sağlar. Bu bölümde en sık kullanılan dönüşümlerden bazılarını aktaracağız:

  • Combine datasets: Veri setlerini aşağıdaki şekillerde birleştirebilirsiniz:
    • Join: Birkaç veri setini iç birleştirme (inner join), dış birleştirme (outer join) veya dışarıda tutarak birleştirme (excluding join) gibi bir yöntemi kullanarak diğer veri setleriyle birleştirin.
    • Union: Union işlemi kullanarak birkaç veri setini birleştirin.
    • Multiple files for input datasets: Veri setini oluştururken parametrik bir Amazon S3 Bucket veya dinamik parametre kullanabilir ve birden çok dosya seçebilirsiniz.
  • Aggregate data: Bir “group by” cümlesi kullanarak veri setini toplayabilir ve Toplam (Sum), Sayı (Count), Min, Max, mod (mode), standart sapma (standard deviation), varyans (variance), çarpıklık (skewness), basıklık (kurtosis) gibi standart ve gelişmiş toplama işlevlerinin yanı sıra kümülatif toplam ve kümülatif sayı gibi kümülatif fonksiyonları kullanabilirsiniz.
  • Pivot a dataset: Veri setini aşağıdaki şekillerde özetleyebilirsiniz.
    • Pivot: Tüm satırları sütunlara dönüştürür.
    • Unpivot: Tüm sütunları satırlara dönüştürür.
    • Transpose: Seçili tüm satırları sütunlara ve sütunları satırlara dönüştürür.
  • Unnest top level value: Değerleri dizilerden satırlara ve sütunlardan satırlara çıkarabilirsiniz. Bu yalnızca üst düzey değerlerde çalışır.
  • Outlier detection and handling: Bu dönüşüm verilerinizdeki aykırı değerlerle çalışır ve bunlar üzerinde aykırı değerleri işaretleme, aykırı değerleri yeniden ölçeklendirme ve aykırı değerleri değiştirme veya kaldırma gibi karmaşık dönüştürmeler gerçekleştirir. Aykırı değerleri tespit etmek için ZScore, değiştirilmiş ZScore ve çeyrekler arası aralık (interquartile range – IQR) gibi çeşitli stratejiler kullanabilirsiniz.
  • Delete duplicate values: Veri setindeki daha önceki bir satırla tam olarak eşleşen herhangi bir satırı silebilirsiniz.
  • Handle or impute missing values: Aşağıdaki seçenekleri kullanabilirsiniz:
    • Remove invalid records: Eğer ilgili satırın bir sütununda geçersiz bir değerle karşılaşılırsa tüm satırı siler.
    • Replace missing values: Eksik değerleri özel değerler, en sık kullanılan değer, son geçerli değer veya sayısal toplam değerlerle değiştirir.
  • Filter Data: Veri setini özel bir koşula, bir sütunun geçerliliğine veya eksik değerlere göre filtreleyebilirsiniz.
  • Split or Merge Columns: Özel bir karaktere dayalı olarak bir sütunu birden çok sütuna bölebilir veya birden çok sütunu tek bir sütunda birleştirebilirsiniz.
  • Create columns based on functions: Matematiksel fonksiyonlar, toplama dayalı fonksiyonlar, tarih fonksiyonları, metin fonksiyonlar, sonraki ve önceki gibi pencere fonksiyonlar gibi farklı fonksiyonlar ve yuvarlanan toplam, yuvarlanan sayı ve yuvarlanan ortalama gibi fonksiyonları kullanarak yeni sütunlar oluşturabilirsiniz.

EK C

Bu çözümü uyguladığınız AWS Bölgesinde AWS Lake Formation‘ı etkinleştirdiyseniz Lake Formation yetki hatası alabilirsiniz.

Tarayıcının gerekli tabloyu oluşturması için lütfen GlueDatabase’de (citibike) GlueCrawlersRole’a (CloudFormation Resource bölümündeki ARN’yi bularak) tablo oluşturma izni verin.

EK D

Bu çözümü uyguladığınız AWS Bölgesinde AWS Lake Formation etkinse “citibike” veritabanında tablolar üzerinde sorgu çalıştırırken aşağıdaki hataya benzer bir hata alabilirsiniz.

Çözüm tarafından oluşturulan tabloları seçip kullanıcıya yetki vermek için lütfen CloudFormation’da oturum açmış kullanıcıya Glue Database’deki (citibike) tüm tablolara “Select” izni verin.