Gerçek Zamanlı Veri Akışı İçin AWS Kinesis

Ümmügülsüm Çağlayan
3 min readJun 26, 2024

--

AWS Kinesis, Amazon tarafından sunulan gerçek zamanlı veri akışlarını toplamak, işlemek ve analiz etmek için kulanılan bir servistir.AWS Kinesis, büyük veri analitiği, IoT , makine öğrenimi ve gerçek zamanlı uygulamalar gibi senaryolar için tasarlanmıştır.

  • Kinesis, çeşitli kaynaklardan (örneğin, IoT cihazları, mobil uygulamalar, web siteleri, sunucular) veri akışlarını toplar ve depolar.
  • Toplanan veri akışlarını anında işleyerek, verinin anlamlı bilgiye dönüştürülmesini sağlar. Bu, gerçek zamanlı analizler ve hızlı karar alma süreçleri için kritik öneme sahiptir.
  • Kinesis, işlenen verilerin analiz edilmesine ve görselleştirilmesine olanak tanır. Bu, iş zekası ve operasyonel verimlilik için önemli bir avantaj sağlar.
  • Kinesis, işlenen verileri AWS’nin diğer hizmetlerine (S3, Redshift, Elasticsearch) veya harici veri ambarlarına yönlendirebilir. Böylece verilerin uzun süreli depolanması ve analiz edilmesi mümkün olur.

Kinesis Servisinin Üç Temel Bileşeni vardır;

Kinesis Data Streams, Kinesis Firehose, Kinesis Analytics

KİNESİS DATA STREAMS

Kinesis Data Streams, sürekli olarak üretilen büyük veri akışlarını gerçek zamanlı olarak toplar ve işler.Veri akışları ölçeklenebilir olup, verilerin büyüklüğüne göre kolayca ayarlanabilir.Veriler Kinesis Data Streams içinde, belirli bir süre boyunca (varsayılan olarak 24 saat) dayanıklı bir şekilde saklanır.Kinesis Data Streams, diğer AWS hizmetleriyle kolayca entegre edilebilir. Özellikle Kinesis Data Firehose, AWS Lambda ve Kinesis Data Analytics gibi hizmetlerle birlikte kullanılarak daha karmaşık veri işleme iş akışları oluşturulabilir.

Temel Bileşenler

  • Shards: Kinesis Data Streams’in temel bileşeni olan shard, veri akışlarını paralel olarak işlemek için kullanılır. Her bir shard saniyede 1 MB veri yazma ve 2 MB veri okuma kapasitesine sahiptir.
  • Producers: Veriyi Kinesis Data Streams’e yazan uygulamalar veya cihazlardır.
  • Consumers: Veriyi Kinesis Data Streams’ten okuyan uygulamalar veya sistemlerdir.

Kinesis Data Streams kullanırken verimliliği artırmak ve olası sorunları önlemek için aşağıda belirteceğim noktalar işinize yarayabilir;

1. Shard Yönetimi

  • Shard Kapasitesini İyi Ayarlayın: Shard’lar veri işleme kapasitenizi belirler. İş yükünüz arttığında yeni shard ekleyerek kapasiteyi artırabilir, iş yükü azaldığında shard sayısını azaltarak maliyetleri düşürebilirsiniz.
  • Partition Key Kullanımı: Veri dağılımını optimize etmek için uygun partition key kullanın. İyi bir partition key, verinin shard’lar arasında dengeli bir şekilde dağıtılmasını sağlar.
  • Shard Splitting ve Merging: Performans veya maliyet gereksinimlerine göre shard’ları bölerek veya birleştirerek akış kapasitesini dinamik olarak yönetebilirsiniz.

2. Veri Üretimi ve Tüketimi

  • Büyük Mesajları Bölme: Kinesis, 1 MB’den büyük veri kayıtlarını desteklemez. Daha büyük verileri parçalara bölerek gönderin ve tüketici tarafında birleştirin.
  • Veri Sıkıştırma: Verimliliği artırmak için veri gönderiminde sıkıştırma kullanın. Bu, veri gönderim maliyetlerini azaltır ve performansı artırır.
  • Batched Writes: Birden fazla kaydı tek bir put_records çağrısı ile göndererek performansı optimize edin.

Data Stream oluştururken karşımıza çıkıp ayarlamamız gerekn bir diğer özellik data stream in kapasitesidir.İki seçeneğimiz var on-demand ve provisioned kapasite modları.

  1. Provisioned Mode: Bu modda, parça sayısını manuel olarak seçersiniz ve API’yi kullanarak bunları gerektiği gibi ayarlayabilirsiniz.Fiyatlandırma, saat başına sağlanan parça sayısına göre belirlenir.
  2. On-Demand Mode: Bu daha yeni modda, parça kapasitesini manuel olarak yönetmenize gerek yoktur. Sistem, kapasiteyi son 30 günde gözlemlenen üretim artışlarına göre ayarlar.Fiyatlandırma, akışın saatlik kullanımına ve gigabayt başına veri giriş/çıkışına göre belirlenir.

KİNESİS FİREHOSE

Kinesis Data Firehose, sürekli olarak üretilen büyük veri akışlarını alıp, onları gerçek zamanlı olarak analiz etmek veya depolamak için çeşitli hedeflere yönlendiren bir hizmettir. Bu hizmet, veri akışlarının yönetimini ve entegrasyonunu kolaylaştırarak, büyük veri işleme süreçlerini otomatikleştirir ve optimize eder.

Log ve event verilerinin toplanması ve analizinde, Web sitesi tıklama akışlarının, sosyal medya akışlarının veya finansal işlemlerin gerçek zamanlı olarak izlenmesi ve analiz edilmesinde, büyük veri setlerinin uzun süreli depolanması ve analitik işleme için Amazon S3 veya Amazon Redshift’e yönlendirilmesi gibi senaryolarda Data Firehose kullanıyoruz.

KİNESİS ANALYTICS

Amazon Kinesis Data Analytics, gerçek zamanlı veri akışlarını analiz etmenize olanak tanıyan, yüksek performanslı ve ölçeklenebilir bir hizmettir. Kinesis Data Analytics, verileri sürekli olarak analiz ederek anlık içgörüler elde etmenizi sağlar ve bu içgörüleri iş süreçlerinize veya uygulamalarınıza entegre etmenize yardımcı olur.

  • Kinesis Data Analytics, tanıdık SQL sorgu dilini kullanarak gerçek zamanlı veri analizleri yapmanızı sağlar. Bu, mevcut SQL bilgilerinizi kullanarak veri analizlerini kolayca yapmanızı mümkün kılar.
  • Veri hacmi arttıkça otomatik olarak ölçeklenir ve böylece büyük veri setlerini rahatlıkla işleyebilir.
  • Veriler sürekli olarak analiz edilir ve anlık sonuçlar elde edilerek hızlı kararlar almanızı sağlar.
  • Amazon Kinesis Data Streams, Amazon Kinesis Data Firehose, Amazon S3 ve diğer AWS hizmetleriyle sorunsuz bir şekilde entegre olur.

--

--