AWS Kinesis nedir? Tasarım Modeli, Kullanım Örnekleri ve Karşılaştırma

Yayınlanan: 2022-07-01

Çapraz uygulama entegrasyonları, anında bildirim ve anlık veri güncellemeleri çağında yaşıyoruz. Böyle bir senaryoda, gerçek zamanlı sistemleri oluşturmak, sürdürmek ve değiştirmek daha önemli hale gelir.

Yıllar boyunca, bu tür platformlar arası sistemleri oluşturmaya ve sürdürmeye yardımcı olmak için geliştirilmiş çeşitli faydalı araçlar olmuştur. RabbitMQ, Kafka ve AWS Kinesis, geliştiricilerin ve mühendislerin gerçek zamanlı verilerle sorunsuz çalışmasına yardımcı olan bu tür üç araçtır. Bu sistemlerin tümü, farklı amaçlar göz önünde bulundurularak oluşturuldu ve sürdürüldü. Bu nedenle, eldeki işe dayalı olarak farklı yararları ve sınırlamaları ile gelirler.

Bu makale, AWS Kinesis ve nasıl çalıştığı hakkında ayrıntılı olarak konuşacaktır.

Kinesis, AWS üzerine kurulmuş bir akış hizmetidir. Günlüklerden, IoT verilerinden, video verilerinden, temelde herhangi bir veri biçiminden her türlü veriyi işlemek için kullanılabilir. Bu, sisteminizde akarken veriler üzerinde gerçek zamanlı olarak farklı makine öğrenimi modelleri ve süreçleri çalıştırmanıza olanak tanır. Bu nedenle, genel verimliliği arttırırken geleneksel veritabanlarından geçme zorluğunu azaltır.

İçindekiler

Popüler MBA Kurslarımızı Keşfedin

Golden Gate Üniversitesi'nden İşletme Yüksek Lisansı İşletme Yüksek Lisansı (MBA) Liverpool İşletme Okulu Deakin Business School'dan MBA
Dekin Üniversitesi'nden Dijital Pazarlamada MBA SSBM'den Executive MBA Tüm MBA Kurslarını Görüntüle

Pub/Sub Tasarım Kalıbı

Kinesis'in tam olarak nasıl kullanılabileceğine daha derine dalmadan önce, kullandığı tasarım modeli hakkında biraz daha fazla bilgi sahibi olmak önemlidir. Bu durumda, genellikle pub/alt tasarım kalıbı olarak adlandırılan yayıncı ve abone tasarımından bahsediyoruz. Bu tasarım modeli, mesajın göndericisi olan Publisher'ın olayları Kinesis'e itmesi için bir olay veriyolu olması için geliştirilmiştir. Ardından, bu olay veri yolu, giriş verilerini tüm abonelere başarıyla dağıtır.

Burada akılda tutulması gereken önemli bir unsur, yayıncıların esasen herhangi bir abonenin varlığından haberdar olmamasıdır. Tüm mesajlaşma ve mesajlaşma işlemleri tamamen AWS Kinesis tarafından yönetilir.

Başka bir deyişle, pub/sub tasarım modeli, çok bağlantılı bir tasarım oluşturmadan mesajların verimli bir şekilde iletilmesi için kullanılır. Bunun yerine Kinesis, bağımsız bileşenleri kullanmaya ve bundan genel olarak dağıtılmış bir iş akışı oluşturmaya odaklanır.

Özünde, AWS Kinesis, özellikle diğer gerçek zamanlı akış araçlarına kıyasla belirgin avantajlar sunan güçlü bir akış aracıdır. Bu avantajlardan biri, yönetilen bir hizmet olmasıdır, bu nedenle geliştiricilerin sistem yönetimini üstlenmesi gerekmez. Bu, geliştiricilerin kodlarına ve sistemlerine daha fazla ve idari görevlere daha az odaklanmasına olanak tanır.

Şimdi, Kinesis'in bazı kullanım durumlarına bakalım.

AWS Kinesis Kullanım Örneği – Veri Akışı

AWS Kinesis, verilerini farklı platformlarda yönetmek ve entegre etmek isteyen büyük ve küçük şirketler için kullanışlıdır. Kinesis, verilerini platformlar arasında yönetmek ve entegre etmek isteyen kuruluşlar için büyük ve küçük senaryolarda faydalıdır.

Şirketlerin büyük miktarda gerçek zamanlı veriyi sorunsuz bir şekilde yönetmek için AWS Kinesis'i kullandığı iki büyük kullanım örneğine bakalım.

Netflix

Netflix, her gün birden çok TB günlük verisini işlemek için AWS Kinesis'i kullanır. Netflix, tüm verileri gerçek zamanlı olarak kaydeden merkezi bir uygulamaya ihtiyaç duyar. Netflix, Kinesis'i kullanarak, içeriği meta verilerle gerçek zamanlı olarak zenginleştiren Dredge'i geliştirdi. Böylece veriler Kinesis'ten geçerken anında işlenir. Bu, gelecekteki işlemler için bir veritabanına veri yüklemenin sıkıcı bir adımını ortadan kaldırır.

veriton

Veriton, yapay zeka ve makine öğrenimi hizmetleri sağlar. Müşteri verilerini işlemek için AWS Kinesis video akışlarını kullanır. Veriton ayrıca, metrikler ve meta verilerle iyileştirmek için içeriğe gerçek zamanlı olarak ML modelleri ve AI uygular. Bu ek bilgileri kullanarak Veritone, ses, yüz tanıma, etiketlenmiş veriler vb. bakarak Kinesis video akışlarını aramayı kolaylaştırır.

Bunlar, günümüzde şirketlerin gerçek zamanlı akış verileriyle daha verimli çalışmak için AWS Kinesis'ten nasıl yararlandığına dair sayısız örnekten sadece ikisi.

AWS Kinesis akışının teknik özelliklerine ve temel bileşenlerine geçelim.

Dünyanın en iyi Üniversitelerinden AI ve ML kursları öğrenin. Kariyerinizi hızlandırmak için Master, Executive PGP veya Gelişmiş Sertifika Programları kazanın.

Streams vs Firehose

AWS Kinesis, geliştiricilere iki ana ürün sunar: Kinetic Streams ve Kinesis Firehose.

Kinesis Stream ile çalışmak için Kinesis Producer Library'yi kullanmanız gerekecek. Tüm gerçek zamanlı verileri akışınıza koymanıza olanak tanır. Ayrıca, bu kütüphaneyi hemen hemen her uygulamaya veya işleme bağlayabilirsiniz. Ancak Kinesis Streams, %100 yönetilen bir hizmet değildir. Bu nedenle, geliştirici ekibin gerektiğinde manuel olarak ölçeklendirmesi gerekecektir. Ayrıca, akışa beslenen veriler yedi gün boyunca orada kalacaktır.

Kinesis Firehose'un uygulanması biraz daha basittir. Kinesis Firehose'a beslenen veriler, tümü AWS Kinesis motorunu kullanarak Amazon Redshift, Amazon S3 ve hatta Elasticsearch'e gönderilir. Bundan sonra, gereksinimlerinize göre işleyebilirsiniz. Veriler Amazon S3'te veya başka bir AWS depolama sisteminde depolanıyorsa, istediğiniz kadar orada bırakabilirsiniz.

Kinesis'te Akış Ayarlama

Kinesis'e erişmeye başlamadan önce AWS CLI'ye erişerek bir akış ayarlamanız gerekir. Komut kabuğunda, DataProcessingStream adlı bir akış oluşturmak için aşağıdaki komutu girin

–akış-adı DataProcessingStream \

–shard-count 1 \

–bölge ab-batı-1

Python ile Akış İşlem Hattı Oluşturma

Kinesis'te bir akış kurduktan sonra, üretici ve tüketiciyi oluşturmaya başlamalısınız. Kinesis'in temel bileşenleri, diğer sistemleri, yazılımları ve uygulamaları entegre etmek için bir erişim katmanı oluşturmanıza yardımcı olur.

Bu derste, Kinesis'e bağlanmak için boto3 Python kütüphanesi ile çalışacağız.

Yapımcı Yaratmak

Üreticiyi Python programlama dilini kullanarak oluşturmak için aşağıda belirtilen kodu kullanın:

boto3'ü içe aktar

json'u içe aktar

ithalat günlüğü

logging.basicConfig(seviye = logging.INFO)

oturum = boto3.Session(region_name='eu-west-1')

müşteri = session.client('kinesis')

test_data = {'data_tag': 'DataOne', 'score': '10', 'char': 'Veritabanı Savaşçısı'}

yanıt = client.put_record(

StreamName='DataProcessingStream',

Veri=json.dumps({

"data_tag": test_data['data_tag'],

"puan": test_data['score'],

"char": test_data['char']

}),

PartitionKey='a01'

)

logging.info(“Yeni Veri Puanını Girin: %s”, test_data)

Verileri çekmek için, üreticilere beslenen verileri dinlemek için başka bir komut dosyasına ihtiyacınız var. Bunun için Kinesis'e beslenen tüm verilere erişmek için ShardIterator'ı kullanabilirsiniz. Bu sayede Kinesis'te gerçek zamanlı ve gelecekteki kayıtlara ulaşabilirsiniz.

Tüketiciyi Yaratmak

Bir Python tüketicisi oluşturmak için aşağıda belirtilen kodu kullanın:

boto3'ü içe aktar

json'u içe aktar

ithalat sistemi

ithalat günlüğü

logging.basicConfig(seviye = logging.INFO)

oturum = boto3.Session(region_name='eu-west-1')

müşteri = session.client('kinesis')

aws_kinesis_stream = client.describe_stream(StreamName='DataProcessingStream)

shard_id = aws_kinesis_stream['StreamDescription']['Shards'][0]['ShardId']

stream_response = client.get_shard_iterator(

StreamName='DataProcessingStream',

ShardId=shard_id,

ShardIteratorType='TRIM_HORIZON'

)

yineleyici = stream_response['ShardIterator']

Doğru iken:

denemek:

aws_kinesis_response = client.get_records(ShardIterator=yineleyici, Limit=5)

yineleyici = aws_kinesis_response['NextShardIterator']

aws_kinesis_response['Records'] içindeki kayıt için:

eğer kayıtta 'Veri' ve len(record['Data']) > 0 ise:

logging.info(“Alınan Yeni Veri Puanı: %s”, json.loads(record['Data']))

KeyboardInterrupt hariç:

sistem.çıkış()

Yukarıdaki örnekte, yalnızca verileri yazdırıyoruz.

Kinesis Boru Hatları ile İlgili Sorunlar

Kinesis gerçekten faydalıdır, ancak zorluklar ve eksiklikler olmadan gelmez. Kinesis ile çalışırken karşılaşacağınız önemli zorluklardan biri 'gözlemlenebilirlik' olarak adlandırılabilir.

Birkaç AWS bileşeniyle çalışırken oluşturduğunuz sistem giderek daha karmaşık hale gelecektir. Örneğin Lambda işlevlerini üretici ve tüketici olarak kullanır ve farklı AWS depolama sistemlerine bağlarsanız, bağımlılıkları ve hataları yönetmek ve izlemek çok zor olacaktır.

MBA İle İlgili Popüler Makalelerimizi Okuyun

Finansal Analist Maaşı - Yeni ve Deneyimli İK için En Önemli Mülakat Soruları ve Cevapları ABD'de MBA Pazarlama Kariyer Seçenekleri
İnsan Kaynaklarında MBA'den Sonra ABD'deki En İyi Kariyer Seçenekleri Satışta En İyi 7 Kariyer Seçeneği ABD'de En Yüksek Ödeme Yapan Finans İşleri: Ortalamadan En Yüksek'e
ABD'de Finansta En İyi 7 Kariyer Seçeneği: Okunmalı 2022'de En İyi 5 Pazarlama Trendi 2022'de ABD'de MBA Maaşı [Tüm Uzmanlıklar]

Sonuç olarak

Veri akışının ve gerçek zamanlı verilerle çalışmanın günün ihtiyacı olduğuna şüphe yok ve dünyamız giderek daha fazla veri ürettikçe artacak. Bu nedenle, Kinesis'in püf noktalarında uzmanlaşmakla ilgileniyorsanız, profesyonel bir kurs yardımcı olabilir.

upGrad'ın IIIT-B ve LJMU işbirliğiyle sunulan Makine Öğrenimi ve Yapay Zeka Yüksek Lisansı, veri keşfinin temelleri ile başlamanıza ve NLP'nin tüm kritik kavramlarına, Deep'e ulaşmanıza yardımcı olmak için tasarlanmış 18 aylık kapsamlı bir kurstur. Öğrenme, Takviyeli Öğrenme ve daha fazlası. Dahası – Makine Öğrenimi ve Yapay Zekada uzmanlaşmanıza yardımcı olacak endüstri projeleri, 360 derece kariyer desteği, kişiselleştirilmiş mentorluk, akran ağı oluşturma fırsatları ve çok daha fazlası üzerinde çalışabilirsiniz.

1. AWS Kinesis veri çekebilir mi?

Amazon Kinesis, binlerce kaynaktan sürekli olarak GB'larca veriyi gerçek zamanlı olarak yakalayarak çalışan, ölçeklenebilir ve dayanıklı bir gerçek zamanlı veri akışı çözümüdür.

2. Bir Kinesis akışının birden fazla tüketicisi olabilir mi?

Evet, parça yineleyicileri kullanarak bir Kinesis akışında birden çok tüketici sağlayabilirsiniz.

3. AWS Kinesis hangi tür kuyruklarla çalışır?

AWS Kinesis, operasyonlarında ve veri süreçlerinde FIFO'dur - İlk Giren İlk Çıkar.