Zephyrnet Logosu

Amazon Kinesis Data Streams kullanılarak gerçek zamanlı analize yönelik mimari desenler, bölüm 1 | Amazon Web Hizmetleri

Tarih:

Düşük gecikmeli veri akışı uygulamalarının sağladığı gerçek zamanlı veri ve öngörüler çağında yaşıyoruz. Günümüzde herkes her uygulamada kişiselleştirilmiş bir deneyim beklemektedir ve kuruluşlar iş operasyonlarını ve karar verme hızlarını artırmak için sürekli olarak yenilikler yapmaktadır. Yeni işletmelerde ve müşteri kullanım durumlarında farklı veri formatlarının kullanıma sunulmasıyla birlikte üretilen zamana duyarlı verilerin hacmi hızla artıyor. Bu nedenle kuruluşların gerçek zamanlı iş uygulamaları ve daha iyi müşteri deneyimleri sunmak için düşük gecikme süreli, ölçeklenebilir ve güvenilir bir veri akışı altyapısını benimsemeleri kritik öneme sahiptir.

Bu, çok çeşitli kullanım durumları için Kinesis Veri Akışlarını kullanarak gerçek zamanlı veri akışı altyapıları oluşturmaya yönelik ortak mimari modeller sunan bir blog serisinin ilk yazısıdır. kullanarak AWS Bulut üzerinde düşük gecikme süreli akış uygulamaları oluşturmak için bir çerçeve sağlamayı amaçlamaktadır. Amazon Kinesis Veri Akışları ve AWS amaca yönelik oluşturulmuş veri analizi hizmetleri.

Bu yazıda iki kullanım senaryosunun ortak mimari kalıplarını inceleyeceğiz: Zaman Serisi Veri Analizi ve Olay Odaklı Mikro Hizmetler. Serimizdeki bir sonraki gönderide, gerçek zamanlı BI gösterge tabloları, iletişim merkezi aracısı, defter verileri, kişiselleştirilmiş gerçek zamanlı öneri, günlük analitiği, IoT verileri, Veri Yakalamayı Değiştir ve gerçek için akış işlem hatları oluşturmanın mimari modellerini inceleyeceğiz. -zaman pazarlama verileri. Tüm bu mimari kalıpları Amazon Kinesis Data Streams ile entegredir.

Kinesis Data Streams ile gerçek zamanlı akış

Amazon Kinesis Data Streams, gerçek zamanlı verilerin her ölçekte yakalanmasını, işlenmesini ve saklanmasını kolaylaştıran, bulutta yerel, sunucusuz bir veri akışı hizmetidir. Kinesis Data Streams ile yüz binlerce kaynaktan saniyede yüzlerce gigabayt veriyi toplayıp işleyebilir, bilgileri gerçek zamanlı işleyen uygulamaları kolayca yazmanıza olanak tanır. Toplanan veriler, gerçek zamanlı kontrol panelleri, gerçek zamanlı anormallik tespiti ve dinamik fiyatlandırma gibi gerçek zamanlı analitik kullanım durumlarına olanak sağlamak için milisaniye cinsinden sunulur. Varsayılan olarak Kinesis Veri Akışı içindeki veriler, veri saklama süresini 24 güne çıkarma seçeneğiyle birlikte 365 saat süreyle saklanır. Müşteriler aynı verileri birden fazla uygulamayla gerçek zamanlı olarak işlemek isterlerse Gelişmiş Yayma (EFO) özelliğini kullanabilirler. Bu özellikten önce, akıştan veri tüketen her uygulama 2 MB/saniye/parça çıkışını paylaşıyordu. Akış tüketicilerini gelişmiş yayma kullanacak şekilde yapılandırarak, her veri tüketicisi, veri alımındaki gecikmeyi daha da azaltmak için parça başına ayrılmış 2 MB/saniyelik okuma verimi alır.

Yüksek kullanılabilirlik ve dayanıklılık için Kinesis Veri Akışları, akışlı verileri bir AWS Bölgesindeki üç Erişilebilirlik Alanında eş zamanlı olarak çoğaltarak yüksek dayanıklılık elde eder ve size verileri 365 güne kadar saklama seçeneği sunar. Kinesis Veri Akışları, güvenlik amacıyla sunucu tarafı şifreleme sağlar; böylece, Amazon VPC'niz ile Kinesis Veri Akışları arasındaki trafiği gizli tutmak için kullanımda olmayan verilerinizi ve Amazon Sanal Özel Bulut (VPC) arayüz uç noktalarını şifreleyerek katı veri yönetimi gereksinimlerini karşılayabilirsiniz.

Kinesis Data Streams'in aşağıdakiler gibi diğer AWS hizmetleriyle yerel entegrasyonları vardır: AWS Tutkal ve Amazon EventBridge AWS'de gerçek zamanlı akış uygulamaları oluşturmak için. Ek ayrıntılar için Amazon Kinesis Data Streams entegrasyonlarına bakın.

Kinesis Data Streams ile modern veri akışı mimarisi

Kinesis Data Streams'e sahip modern bir akış verisi mimarisi, beş mantıksal katmandan oluşan bir yığın olarak tasarlanabilir; her katman, aşağıdaki diyagramda gösterildiği gibi, belirli gereksinimleri karşılayan, amaca yönelik olarak oluşturulmuş birden fazla bileşenden oluşur:

Mimari aşağıdaki temel bileşenlerden oluşur:

  • Akış kaynakları – Akış verisi kaynağınız, tıklama akışı verileri, sensörler, sosyal medya, Nesnelerin İnterneti (IoT) cihazları, web ve mobil uygulamalarınızı kullanarak oluşturulan günlük dosyaları ve sürekli akışlar olarak yarı yapılandırılmış ve yapılandırılmamış veriler üreten mobil cihazlar gibi veri kaynaklarını içerir. yüksek hızda.
  • Akış alımı – Akış besleme katmanı, verileri akış depolama katmanına almaktan sorumludur. On binlerce veri kaynağından veri toplama ve gerçek zamanlı olarak alma olanağı sağlar. Şunu kullanabilirsiniz: Kinesis SDK'sı API'ler aracılığıyla akış verilerini almak için Kinesis Yapımcı Kitaplığı yüksek performanslı ve uzun süreli yayın yapımcıları oluşturmak için veya Kinesis ajanı bir dizi dosyayı toplamak ve bunları Kinesis Veri Akışlarına aktarmak için. Ek olarak, aşağıdakiler gibi birçok yapım öncesi entegrasyonları kullanabilirsiniz: AWS Veritabanı Geçiş Hizmeti (AWS DMS), Amazon DinamoDB, ve AWS IoT Çekirdeği verileri kodsuz bir şekilde almak için. Ayrıca Apache Spark ve Apache Kafka Connect gibi üçüncü taraf platformlardan da veri alabilirsiniz.
  • Akış depolama – Kinesis Veri Akışları, veri akışını desteklemek için iki mod sunar: İsteğe Bağlı ve Tedarik Edilen. Artık varsayılan seçim olan İsteğe Bağlı mod, değişken çıktıları absorbe edecek şekilde esnek bir şekilde ölçeklenebilir, böylece müşterilerin kapasite yönetimi konusunda endişelenmelerine ve veri çıktısına göre ödeme yapmalarına gerek kalmaz. İsteğe Bağlı mod, veri alımındaki beklenmedik ani artışlara karşı yeterli kapasite sağlamak için akış kapasitesini geçmiş maksimum veri alımına göre otomatik olarak 2 kat artırır. Alternatif olarak, akış kaynakları üzerinde ayrıntılı kontrol isteyen müşteriler, Tedarik modunu kullanabilir ve üretim gereksinimlerini karşılamak için Parça sayısını proaktif olarak artırabilir ve azaltabilir. Ek olarak Kinesis Veri Akışları, akış verilerini varsayılan olarak 24 saate kadar depolayabilir ancak kullanım senaryolarına bağlı olarak 7 güne veya 365 güne kadar uzayabilir. Birden fazla uygulama aynı akışı tüketebilir.
  • Akış işleme – Akış işleme katmanı, veri doğrulama, temizleme, normalleştirme, dönüştürme ve zenginleştirme yoluyla verileri tüketilebilir bir duruma dönüştürmekten sorumludur. Akış kayıtları, üretildikleri sıraya göre okunur; bu, gerçek zamanlı analitiklere, olay odaklı uygulamalar oluşturmaya veya ETL akışına (çıkarma, dönüştürme ve yükleme) olanak tanır. Kullanabilirsiniz Apache Flink için Amazon Yönetilen Hizmeti karmaşık akış verilerinin işlenmesi için, AWS Lambda durum bilgisi olmayan akış veri işleme için ve AWS Tutkal & Amazon EMR'si neredeyse gerçek zamanlı hesaplama için. Ayrıca özelleştirilmiş tüketici uygulamaları da oluşturabilirsiniz. Kinesis Tüketici Kütüphanesi, dağıtılmış bilgi işlemle ilgili birçok karmaşık görevi halledecek.
  • Hedef - Hedef katmanı, kullanım durumunuza bağlı olarak amaca yönelik oluşturulmuş bir hedef gibidir. Verileri doğrudan şuraya aktarabilirsiniz: Amazon Kırmızıya Kaydırma veri ambarı için ve olay odaklı uygulamalar oluşturmak için Amazon EventBridge. Ayrıca kullanabilirsin Amazon Kinesis Veri İtfaiyesi AWS Lambda ile akış işlemeyi kolaylaştırabileceğiniz ve ardından işlenmiş akışı aşağıdaki gibi hedeflere iletebileceğiniz akış entegrasyonu için Amazon S3 veri gölü, operasyonel analitik için OpenSearch Hizmeti, Redshift veri ambarı, Amazon DynamoDB gibi SQL olmayan veritabanları ve aşağıdaki gibi ilişkisel veritabanları Amazon RDS'si gerçek zamanlı akışları iş uygulamalarına aktarmak için. Hedef, gerçek zamanlı kontrol panelleri, işlenmiş akış verilerine dayalı otomatik kararlar, gerçek zamanlı değiştirme ve daha fazlası için olay odaklı bir uygulama olabilir.

Zaman serileri için gerçek zamanlı analitik mimarisi

Zaman serisi verileri, zaman içinde değişen olayları ölçmek için bir zaman aralığı boyunca kaydedilen bir dizi veri noktasıdır. Örnekler, zaman içindeki hisse senedi fiyatları, web sayfası tıklama akışları ve zaman içindeki cihaz günlükleridir. Müşteriler, zaman içindeki değişiklikleri izlemek için zaman serisi verilerini kullanabilir; böylece anormallikleri tespit edebilir, kalıpları belirleyebilir ve belirli değişkenlerin zaman içinde nasıl etkilendiğini analiz edebilirler. Zaman serisi verileri genellikle birden fazla kaynaktan yüksek hacimlerde üretilir ve maliyet etkin bir şekilde neredeyse gerçek zamanlı olarak toplanması gerekir.

Tipik olarak müşterilerin zaman serisi verilerini işlerken ulaşmak istediği üç temel hedef vardır:

  • Sistem performansına ilişkin gerçek zamanlı bilgiler edinin ve anormallikleri tespit edin
  • Trendleri takip etmek ve bu öngörülerden görselleştirmeleri sorgulamak/oluşturmak için son kullanıcı davranışını anlayın
  • Hem arşiv hem de sık erişilen verileri alıp depolamak için dayanıklı bir depolama çözümüne sahip olun.

Kinesis Data Streams ile müşteriler, temizleme, zenginleştirme, depolama, analiz ve görselleştirme için binlerce kaynaktan terabaytlarca zaman serisi verisini sürekli olarak yakalayabilir.

Aşağıdaki mimari modeli, Kinesis Veri Akışları ile Zaman Serisi verileri için gerçek zamanlı analizlerin nasıl elde edilebileceğini göstermektedir:

Zaman serisi verileri için sunucusuz bir akış veri hattı oluşturun

İş akışı adımları aşağıdaki gibidir:

  1. Veri Alma ve Depolama – Kinesis Data Streams, binlerce kaynaktan terabaytlarca veriyi sürekli olarak yakalayıp depolayabilir.
  2. Akış İşleme – İle oluşturulan bir uygulama Apache Flink için Amazon Yönetilen Hizmeti Zaman serisi verilerindeki hataları tespit etmek ve temizlemek için veri akışındaki kayıtları okuyabilir ve operasyonel analitiği optimize etmek için verileri belirli meta verilerle zenginleştirebilir. Ortada bir veri akışının kullanılması, zaman serisi verilerinin aynı anda diğer süreçlerde ve çözümlerde kullanılması avantajını sağlar. Daha sonra bu olaylarla birlikte bir Lambda işlevi çağrılır ve bellekte zaman serisi hesaplamaları gerçekleştirebilir.
  3. En Popüler – Temizleme ve zenginleştirme sonrasında işlenen zaman serisi verileri şuraya aktarılabilir: Amazon Zaman Akışı Gerçek zamanlı kontrol paneli ve analiz için veritabanı veya son kullanıcı sorgusu için DynamoDB gibi veritabanlarında saklanır. Ham veriler arşivleme için Amazon S3'e aktarılabilir.
  4. Görselleştirme ve İçgörü Kazanma – Müşteriler aşağıdakileri kullanarak uyarıları sorgulayabilir, görselleştirebilir ve oluşturabilir: Grafana için Amazon Yönetilen Hizmeti. Grafana, zaman serisi verileri için depolama arka uçları olan veri kaynaklarını destekler. Verilerinize Timestream'den erişmek için Grafana için Timestream eklentisini yüklemeniz gerekir. Son kullanıcılar DynamoDB tablosundaki verileri şu şekilde sorgulayabilir: Amazon API Ağ Geçidi vekil olarak hareket ediyor.

Bakın Amazon Kinesis, Amazon Timestream ve Grafana ile Gerçek Zamana Yakın İşleme Cihaz telemetri IoT verilerini Amazon Timestream gibi zaman serisi için optimize edilmiş bir veri deposunda işleyip depolamak için sunucusuz bir akış hattını sergiliyor.

Olay kaynağı sağlayan mikro hizmetler için verileri gerçek zamanlı olarak zenginleştirme ve yeniden oynatma

Mikro hizmetler, yazılımın iyi tanımlanmış API'ler üzerinden iletişim kuran küçük bağımsız hizmetlerden oluştuğu yazılım geliştirmeye yönelik mimari ve organizasyonel bir yaklaşımdır. Müşteriler, olaya dayalı mikro hizmetler oluştururken, 1. gelen olayların hacmini yönetmek için yüksek ölçeklenebilirlik ve 2. olay işlemenin güvenilirliğini elde etmek ve arızalar karşısında sistem işlevselliğini sürdürmek ister.

Müşteriler, inovasyonu hızlandırmak ve yeni özelliklerin pazara çıkış süresini hızlandırmak için mikro hizmet mimarisi modellerinden yararlanır; çünkü bu, uygulamaların ölçeklendirilmesini kolaylaştırır ve geliştirmeyi hızlandırır. Ancak başka bir mikro hizmete yapılan ağ çağrısındaki verileri zenginleştirmek ve yeniden oynatmak zordur çünkü bu, uygulamanın güvenilirliğini etkileyebilir ve hataların ayıklanmasını ve izlenmesini zorlaştırabilir. Bu sorunu çözmek için olay kaynağı oluşturma, zenginleştirme ve yeniden yürütme amacıyla tüm durum değişikliklerinin geçmiş kayıtlarını merkezileştiren ve okuma iş yükünü yazma iş yüklerinden ayıran etkili bir tasarım modelidir. Müşteriler, olay kaynağı sağlayan mikro hizmetler için merkezi olay deposu olarak Kinesis Data Streams'i kullanabilirler; çünkü KDS, yüksek ölçeklenebilirlik ve neredeyse gerçek zamanlı gereksinimleri karşılamak için akış başına saniyede gigabaytlarca veri çıkışını 1/ işleyebilir ve milisaniyeler içinde veri akışını gerçekleştirebilir. gecikme, 2/ mikro hizmetlerden tamamen ayrılırken veri zenginleştirme ve elde etme için Flink ve S3 ile entegre olur ve 3/ daha sonraki bir zamanda yeniden denemeye ve eşzamansız okumaya izin verir, çünkü KDS veri kaydını varsayılan olarak 24 saat boyunca saklar ve isteğe bağlı olarak 365 güne kadar.

Aşağıdaki mimari model, Kinesis Veri Akışlarının Olay Kaynaklı Mikro Hizmetler için nasıl kullanılabileceğinin genel bir örneğidir:

İş akışındaki adımlar aşağıdaki gibidir:

  1. Veri Alma ve Depolama – Mikro hizmetlerinizden gelen girdileri depolama için Kinesis Veri Akışlarınıza toplayabilirsiniz.
  2. Akış işleme - Apache Flink Durum Bilgili İşlevler Dağıtılmış durum bilgisi olan olay odaklı uygulamalar oluşturmayı basitleştirir. Olayları bir giriş Kinesis veri akışından alabilir ve elde edilen akışı bir çıkış veri akışına yönlendirebilir. Uygulamanızın iş mantığına dayalı olarak Apache Flink ile durum bilgisi olan bir işlevler kümesi oluşturabilirsiniz.
  3. Amazon S3'te durum anlık görüntüsü – İzleme amacıyla durum anlık görüntüsünü Amazon S3'te saklayabilirsiniz.
  4. Çıkış akışları – Çıkış akışları, API Ağ Geçidi aracılığıyla HTTP/gRPC protokolü aracılığıyla Lambda uzak işlevleri aracılığıyla tüketilebilir.
  5. Lambda uzaktan işlevleri – Lambda işlevleri, iş uygulamalarına ve mobil uygulamalara hizmet vermek üzere çeşitli uygulama ve iş mantığı için mikro hizmetler olarak hareket edebilir.

Diğer müşterilerin olay tabanlı mikro hizmetlerini Kinesis Data Streams ile nasıl oluşturduklarını öğrenmek için aşağıdakilere bakın:

Temel hususlar ve en iyi uygulamalar

Aşağıda akılda tutulması gereken hususlar ve en iyi uygulamalar yer almaktadır:

  • Veri keşfi, modern veri akışı uygulamaları oluşturmanın ilk adımı olmalıdır. İstenilen iş sonuçlarına ulaşmak için iş değerini tanımlamanız ve ardından akış veri kaynaklarınızı ve kullanıcı kişiliklerinizi tanımlamanız gerekir.
  • Buharlı veri kaynağınıza göre akış verileri alma aracınızı seçin. Örneğin, şunları kullanabilirsiniz: Kinesis SDK'sı API'ler aracılığıyla akış verilerini almak için Kinesis Yapımcı Kitaplığı yüksek performanslı ve uzun süreli yayın yapımcıları oluşturmak için Kinesis ajanı bir dizi dosyayı toplamak ve bunları Kinesis Veri Akışlarına aktarmak için, AWS BYS CDC akışı kullanım durumları için ve AWS IoT Çekirdeği IoT cihaz verilerini Kinesis Veri Akışlarına aktarmak için. Düşük gecikme süreli akış uygulamaları oluşturmak için akış verilerini doğrudan Amazon Redshift'e alabilirsiniz. Akış verilerini Kinesis Data Streams'e almak için Apache Spark ve Apache Kafka gibi üçüncü taraf kitaplıkları da kullanabilirsiniz.
  • Akış veri işleme hizmetlerinizi özel kullanım durumunuza ve iş gereksinimlerinize göre seçmeniz gerekir. Örneğin, birden fazla akış hedefi ve karmaşık durum bilgisi olan akış işleme içeren gelişmiş akış kullanım durumları için veya iş ölçümlerini gerçek zamanlı olarak (örneğin her saat başı) izlemek istiyorsanız Amazon Kinesis Managed Service for Apache Flink'i kullanabilirsiniz. Lambda, olaya dayalı ve durum bilgisi olmayan işlemler için iyidir. Kullanabilirsiniz Amazon EMR'si favori açık kaynaklı büyük veri çerçevelerinizi kullanmak amacıyla veri işleme akışı için. AWS Glue, ETL akışı gibi kullanım durumları için neredeyse gerçek zamanlı akış verisi işleme için iyidir.
  • Kinesis Data Streams isteğe bağlı mod, kullanıma göre ücretlendirilir ve kaynak kapasitesini otomatik olarak ölçeklendirir; böylece ani akış iş yükleri ve eller serbest bakım için idealdir. Tedarik edilen mod, kapasiteye göre ücretlendirilir ve proaktif kapasite yönetimi gerektirir; dolayısıyla öngörülebilir akış iş yükleri için iyidir.
  • Sen kullanabilirsiniz Kinesis Paylaşımlı Hesap Makinesi Sağlanan mod için gereken parça sayısını hesaplamak için. İsteğe bağlı modda parçalar konusunda endişelenmenize gerek yok.
  • İzinleri verirken kimin hangi Kinesis Data Streams kaynakları için hangi izinleri alacağına siz karar verirsiniz. Bu kaynaklarda izin vermek istediğiniz belirli eylemleri etkinleştirirsiniz. Bu nedenle yalnızca bir görevi gerçekleştirmek için gereken izinleri vermelisiniz. Ayrıca, kullanımda olmayan verileri KMS müşteri tarafından yönetilen anahtarı (CMK) kullanarak da şifreleyebilirsiniz.
  • Yapabilirsin saklama süresini güncelle Kinesis Veri Akışları konsolu aracılığıyla veya Yayını Tutma Süresini Artırın ve Yayını Tutma Süresini Azaltın özel kullanım durumlarınıza dayalı işlemler.
  • Kinesis Veri Akışları destekleri yeniden parçalama. Bu işlev için önerilen API: GüncellemeShardCountBu, akış boyunca veri akışı hızındaki değişikliklere uyum sağlamak için akışınızdaki parça sayısını değiştirmenize olanak tanır. Yeniden parçalama API'leri (Bölme ve Birleştirme) genellikle etkin parçaları işlemek için kullanılır.

Sonuç

Bu gönderide Kinesis Data Streams ile düşük gecikmeli akış uygulamaları oluşturmaya yönelik çeşitli mimari modeller gösterildi. Bu gönderideki bilgileri kullanarak Kinesis Data Streams ile kendi düşük gecikmeli buharlama uygulamalarınızı oluşturabilirsiniz.

Ayrıntılı mimari modeller için aşağıdaki kaynaklara bakın:

Bir veri vizyonu ve stratejisi oluşturmak istiyorsanız şuraya göz atın: AWS Veriye Dayalı Her Şey (D2E) programı.


Yazarlar Hakkında

Raghavarao Sodabathina AWS'de Veri Analitiği, AI/ML ve bulut güvenliğine odaklanan Baş Çözüm Mimarıdır. Müşterilerin iş sorunlarına yönelik yenilikçi çözümler oluşturmak ve AWS hizmetlerinin benimsenmesini hızlandırmak için müşterilerle etkileşim halindedir. Raghavarao boş zamanlarında ailesiyle vakit geçirmekten, kitap okumaktan ve film izlemekten hoşlanıyor.

Zuo'yu asmak Amazon Web Services'ta Amazon Kinesis Data Streams ekibinde Kıdemli Ürün Yöneticisidir. Karmaşık müşteri sorunlarını çözen ve müşterilerin iş hedeflerine ulaşmasını sağlayan sezgisel ürün deneyimleri geliştirme konusunda tutkulu.

Shwetha Radhakrishnan Veri Analitiğine odaklanan bir AWS Çözüm Mimarıdır. Bulutun benimsenmesini destekleyen ve kuruluşların kamu sektöründe veriye dayalı kararlar almasına yardımcı olan çözümler geliştiriyor. İş dışında dans etmeyi, arkadaşları ve ailesiyle vakit geçirmeyi ve seyahat etmeyi seviyor.

Brittany Ly AWS'de Çözüm Mimarıdır. Kurumsal müşterilere bulutu benimseme ve modernizasyon yolculuklarında yardımcı olmaya odaklanmıştır ve güvenlik ve analiz alanına ilgi duymaktadır. İş dışında köpeğiyle vakit geçirmeyi ve turşu oynamayı çok seviyor.

spot_img

En Son İstihbarat

spot_img