Apache Flink nedir?
Apache Flink, sınırlandırılmamış (akışlar) ve sınırlandırılmış (toplu) veri kümeleri üzerinde durum bilgili işleme için açık kaynaklı ve dağıtılmış bir altyapıdır. Akış işleme uygulamaları, minimum kesinti süresiyle sürekli çalışacak ve verileri alındığında işleyecek şekilde tasarlanmıştır. Apache Flink, düşük gecikmeli işleme, bellek içinde hesaplamalar yapma, yüksek kullanılabilirlik, tek hata noktasını ortadan kaldırma ve yatay ölçeklendirme amacıyla tasarlanmıştır.
Apache Flink'in özellikleri arasında tam olarak bir kere tutarlılık garantili gelişmiş durum yönetimi, gelişmiş düzensiz ve geç veri işleme ile olay zamanı işleme semantiği yer alır. Apache Flink, öncelikle akış için geliştirilmiştir ve hem akış hem de toplu işleme için birleşik bir programlama arabirimi sunar.
Neden Apache Flink kullanıyorsunuz?
Apache Flink, geniş özellikler kümesi sayesinde birçok farklı akış ve toplu uygulama türü oluşturmak için kullanılır.
Apache Flink tarafından desteklenen yaygın uygulama türlerinden bazıları şunlardır:
- Bir veya daha fazla olay akışından olayları alan ve hesaplamalar, durum güncellemeleri veya harici eylemler yürüten olay odaklı uygulamalar. Durum bilgili işleme, sonuçların alınan olayların geçmişine bağlı olduğu Tek Mesaj Dönüşümünün ötesinde bir mantık uygulanmasına izin verir.
- Verilerden bilgi ve öngörüler çıkaran Veri Analizi uygulamaları. Geleneksel olarak sınırlı veri kümelerini sorgulayarak ve sorguları yeniden çalıştırarak veya yeni verileri dahil etmek için sonuçları değiştirerek yürütülür. Apache Flink ile analiz, sürekli güncelleme, akış sorguları veya alınan olayları gerçek zamanlı olarak işlenmesi yoluyla, sonuçları sürekli olarak yayarak ve güncelleyerek yürütülebilir.
- Veri işlem hatları uygulamaları, bir veri deposundan diğerine taşınacak verileri dönüştürür ve zenginleştirir. Geleneksel olarak, ayıkla-dönüştür-yükle (ETL) modeli düzenli aralıklarla gruplar halinde yürütülür. Apache Flink ile süreç sürekli çalışabilir ve verileri düşük gecikmeyle hedeflerine taşıyabilir.
Apache Flink nasıl çalışır?
Flink, yüksek verimli, düşük gecikmeli bir akış işleme altyapısıdır. Bir Flink uygulaması, akışlardan ve dönüşümlerden oluşan, rastgele, karmaşık, döngüsel olmayan bir veri akışı grafiğinden oluşur. Veriler bir veya daha fazla veri kaynağından alınır ve bir veya daha fazla hedefe gönderilir. Kaynak ve hedef sistemler akışlar, mesaj kuyrukları veya veri depoları olabilir ve dosyaları, popüler veritabanı ve arama altyapılarını içerebilir. Dönüşümler, zaman aralıklarındaki birleştirmeler veya karmaşık örüntü algılama gibi durum bilgili olabilir.
Hata toleransı iki ayrı mekanizmayla sağlanır: arıza durumunda otomatik kurtarmaya izin vermek için kalıcı bir depolamaya kopyalanan uygulama durumunun otomatik ve periyodik olarak denetim noktasının belirlenmesi; Flink işinizi durdurup sürdürmeye, güncellemeye veya çatallamaya izin vermek amacıyla uygulama durumunu duraklamalar ve yeniden başlatmalar boyunca koruyarak yürütme durumunun tutarlı bir görüntüsünü kaydeden isteğe bağlı kaydetme noktaları. Denetim noktası ve kaydetme noktası mekanizmaları zaman uyumsuzdur; uygulama, olayları işlemeye devam ederken "dünyayı durdurmadan" durumun tutarlı bir anlık görüntüsü alınır.
Apache Flink'in avantajları nelerdir?
Hem sınırlandırılmamış (akışlar) hem de sınırlandırılmış (toplu) veri kümelerini işleyin
Apache Flink, hem sınırlandırılmamış hem de sınırlandırılmış veri kümelerini, yani akışları ve toplu verileri işleyebilir. Sınırlandırılmamış akışların bir başlangıcı vardır ancak neredeyse sonsuzdurlar ve hiçbir zaman bitmezler. İşleme, teorik olarak hiçbir zaman durmaz.
Tablolar gibi sınırlandırılmış veriler, bir sona sahiptir ve sonu olan bir zamanda baştan sona kadar işlenebilir.
Apache Flink, aynı programlama arabirimi üzerinden hem sınırlandırılmış hem de sınırlandırılmamış işlemeyi desteklemek için algoritmalar ve veri yapıları sağlar. Sınırlandırılmamış verileri işleyen uygulamalar sürekli olarak çalışır. Sınırlandırılmış verileri işleyen uygulamalar, giriş verileri kümelerinin sonuna ulaştığında yürütmelerini sonlandırır.
Uygulamaları geniş ölçekte çalıştırın
Apache Flink, durum bilgili uygulamaları hemen hemen her ölçekte çalıştırmak için tasarlanmıştır. İşleme, binlerce göreve paralelleştirilir ve aynı anda birden fazla makineye dağıtılır.
Durum, ayrıca yatay olarak bölümlenip dağıtılarak birden fazla makinede birkaç terabayt korunmasına olanak tanır. Durum, kalıcı bir depolama için aşamalı olarak kontrol noktasından geçirilir.
Bellek içi performans
Uygulama ve durum boyunca akan veriler, birden fazla makinede bölümlenir. Bu nedenle hesaplama, genellikle bellekte olan yerel verilere erişilerek tamamlanabilir.
Tam olarak bir kere durum tutarlılığı
Tek mesaj dönüşümlerinin ötesindeki uygulamalar durum bilgisine sahiptir. İş mantığının olayları veya ara sonuçları hatırlaması gerekir. Apache Flink, hata durumunda ve uygulama boyunca durdurma ve yeniden başlatma olduğunda bile dahili durumun tutarlılığını garanti eder. Her mesajın dahili durum üzerindeki etkisi, uygulamanın kurtarma veya yeniden başlatma durumunda veri kaynağından kopyaları alabilmesine bakılmaksızın her zaman tam olarak bir kez uygulanır.
Çok çeşitli bağlayıcılar
Apache Flink, popüler mesajlaşma ve akış sistemleri, veri depoları, arama altyapıları ve dosya sistemi için kanıtlanmış çeşitli bağlayıcıya sahiptir. Bu bağlayıcılara örnek olarak Apache Kafka, Amazon Kinesis Veri Akışları, Amazon SQS, Active MQ, Rabbit MQ, NiFi, OpenSearch ve ElasticSearch, DynamoDB, HBase ve JDBC istemcisi sağlayan herhangi bir veritabanı verilebilir.
Birden fazla soyutlama seviyesi
Apache Flink, programlama arabirimi için birden fazla soyutlama seviyesi sunar. Daha yüksek seviyeli akış SQL ve Tablo API'sinden tablo, birleşmeler ve gruplar gibi bilindik soyutlamaları kullanır. DataStream API'si, akışların semantiği, zaman aralığı ve eşleme ile daha düşük bir soyutlama seviyesi ve aynı zamanda daha fazla kontrol sunar. Son olarak ProcessFunction API'si, her mesajın işlenmesi ve durumun doğrudan kontrolü üzerinde detaylı kontrol sağlar. Tüm programlama arabirimleri, hem sınırlandırılmamış (akışlar) hem de sınırlandırılmış (tablolar) tarih kümeleriyle sorunsuz şekilde çalışır. Her sorunu çözmek için doğru araç olarak aynı uygulamada farklı soyutlama seviyeleri kullanılabilir.
Çoklu programlama dilleri
Apache Flink, yüksek seviyeli akış SQL'sinden Python, Scala ve Java'ya ve ayrıca Kotlin gibi diğer JVM dillerine kadar birden fazla dilde programlanabilir.
Apache Flink kullanım örnekleri nelerdir?
Apache Flink kullanım örnekleri şunları içerir:
-
Dolandırıcılık algılama, anormallik algılama, kural tabanlı uyarı, gerçek zamanlı kullanıcı deneyimi kişiselleştirme, olay odaklı uygulamaya yönelik kullanım örnekleridir. Flink; olay akışlarının durum bilgisi içerecek şekilde işlenmesini, zaman içindeki gelişimin dikkate alınmasını, karmaşık modellerin algılanmasını veya beklenen eşik değerlerinden sapmaların algılanması için zaman aralıklarında istatistiklerin hesaplanmasını gerektiren tüm bu kullanım örnekleri için ideal bir seçimdir.
-
Kalite izleme, canlı verilerin geçici analizi, tıklama akışı analizi, ürün deneyimleme değerlendirmesi, Flink'in verimli bir şekilde destekleyebileceği akış analizi kullanım örnekleridir. SQL veya Tablo API'si programlama arabiriminin yüksek soyutlama seviyesinden yararlanarak, aynı analizi hem canlı veri akışında hem de toplu geçmiş verilerde çalıştırabilirsiniz.
-
Dosya sistemini izlemek ve verileri bir günlüğe yazmak, bir olay akışını bir veritabanına geçirmek, bir arama dizinini aşamalı olarak oluşturmak ve iyileştirmek, sürekli ETL tarafından verimli bir şekilde desteklenen kullanım örnekleridir. Geniş bağlayıcı setinden yararlanan Flink, çeşitli veri deposu türlerinden doğrudan okuyabilir, değişiklik olayı akışlarını alabilir ve hatta değişiklikleri doğrudan yakalayabilir. Flink, değişiklikleri sürekli olarak alıp işleyerek ve hedef sistemleri doğrudan güncelleyerek veri eşitleme gecikmesini saniyelere veya daha kısa bir süreye düşürebilir.
Apache Flink'i kimler kullanıyor?
NortonLifeLock
NortonLifeLock, milyonlarca müşteriye cihaz güvenliğinin yanı sıra ev ve aile için kimlik ve çevrimiçi gizlilik hizmetleri sunan küresel bir siber güvenlik ve internet gizliliği şirketidir.
NortonLifeLock, kullanıcılara ücretsiz bir premium hizmet olarak bir VPN ürünü sunar. Bu nedenle, ücretsiz premium kullanıcıları kullanım sınırını aştığında hizmeti kullanmalarını engellemek için gerçek zamanlı olarak kullanım sınırları uygulamaları gerekir. NortonLifeLock'un karşılaştığı zorluk, bunu güvenilir ve uygun fiyatlı bir şekilde yapmaktır.
NortonLifeLock, Apache Flink'i benimseyerek kullanıcı ve cihaz düzeyinde toplama uygulamasını basitleştirdi.
Samsung SmartThings
Samsung'un bağımsız bir yan kuruluşu olan SmartThings, dünyanın önde gelen IoT ekosistemlerinden biridir ve herkesin akıllı bir ev yaratması için en zahmetsiz yolu oluşturur.
Samsung SmartThings, kaynakların bireysel uygulamalara ayrılması gibi sorunlarla karşılaşıyordu. Bu, verileri işlerken gecikmeye ve performans düşüşüne neden oldu. Sonunda, operasyonlardaki iş yüklerini sürdürmede yüksek maliyetli ek yüklere yol açtı. Veri platformunu yeniden tasarlamak zorunda kaldılar.
Apache Spark'tan Apache Flink'e geçiş yaptılar.
BT Group
BT Group, Birleşik Krallık'ın önde gelen telekomünikasyon ve ağ sağlayıcısı olmanın yanı sıra lider küresel iletişim hizmetleri ve çözümleri sağlayıcısıdır ve180 ülkede müşterilerine hizmet vermektedir. Birleşik Krallık'taki başlıca faaliyetleri arasında tüketici, işletme ve kamu sektörü müşterilerine, birleşik sabit ve mobil ağlar üzerinden sabit ses, mobil, geniş bant, TV (Spor dahil) ve bir dizi ürün ve hizmetin sağlanması bulunmaktadır.
BT, Birleşik Krallık geniş bant ağı üzerinden yüksek çözünürlüklü sesli arama sağlayan yeni tüketici ürünü olan Digital Voice'un piyasaya sürülmesini desteklemek için bir hizmet izleme uygulamasına ihtiyaç duyuyordu.
BT, hizmet verilerini almak, işlemek ve görselleştirmek için Apache Flink kullanarak olay odaklı bir analiz hizmeti oluşturdu.
Autodesk
3D tasarım ve mühendislik yazılımlarının lider sağlayıcısı Autodesk, yazılım üretmek ve sunmaktan daha fazlasını yapmak istiyor. Ayrıca milyonlarca küresel kullanıcısının bu yazılımı çalıştırırken en iyi deneyimi yaşamasını sağlamak istiyor.
Autodesk, ürün yapan kişiler için yazılımlar geliştirmektedir. 200 milyondan fazla müşteriye hizmet vermektedir. Müşteri sorunlarını daha hızlı bulmak ve düzeltmek için siloları ortadan kaldırmaları gerekiyordu. Maliyetleri artırmadan veya veri kilidi oluşturmadan küçük bir operasyon ekibiyle ölçümleri toplamak ve hesaplamak için tutarlı bir yol istediler.
NHL
Ulusal Hokey Ligi, Kuzey Amerika'daki dört büyük profesyonel takım sporları ligi arasından ikinci en eski ligdir. Bugün NHL, her biri Lig'in uluslararası yapısını yansıtan ve takım kadrolarında 20'den fazla ülkeden oyuncunun yer aldığı 32 Üye Kulüpten oluşmaktadır.
NHL, büyük miktarda belirsizliğe sahip bir olayı tahmin etmek için gerekli özellikleri ve modelleme yöntemlerini belirlemek ve ayrıca yüzlerce milisaniye içinde bir karşılaşmanın nerede gerçekleştiğini, dahil olan oyuncuları ve her oyuncunun karşılaşmayı kazanma olasılığını belirlemek için PPT sensör verileri akışının nasıl kullanılacağını belirlemek gibi çeşitli teknik zorluklarla karşı karşıyaydı.
Apache Flink'ten yararlanan NHL, yalnızca bir karşılaşmanın kazananını tahmin etmekle kalmadı, aynı zamanda bir dizi benzer sorunu gerçek zamanlı ve uygun maliyetli bir şekilde çözmek için bir temel oluşturmayı başardı.
Poshmark
Poshmark; kadınlar, erkekler, çocuklar, evcil hayvanlar, ev ve daha fazlası için yeni ve ikinci el ürünlerin yer aldığı lider bir sosyal pazardır. ABD, Kanada, Avustralya ve Hindistan'da 80 milyondan fazla kişiden oluşan Poshmark topluluğu, alışverişin geleceğini basit, sosyal ve sürdürülebilir olacak şekilde şekillendiriyor.
Poshmark, kişiselleştirme ve kullanıcı deneyimini geliştirme yoluyla üst düzey büyümeye odaklanıyor. Kişiselleştirme ve güvenlik için toplu işlemeyi kullanmaya ilişkin ilk yaklaşım, müşteri deneyimini iyileştirme beklentilerini karşılamadı.
Poshmark, Apache Flink ile gerçek zamanlı veri zenginleştirmeyi kullanarak gerçek zamanlı kişiselleştirme tasarladı.
AWS, Apache Flink uygulamalarını bulutta çalıştırmaya nasıl yardımcı olabilir?
Apache Flink İçin Amazon Yönetilen Hizmet, Apache Flink uygulamalarını çalıştırmak için tam olarak yönetilen bir çözümdür. Apache Flink İçin Amazon Yönetilen Hizmet, Apache Flink uygulamalarını oluşturma, yönetme ve diğer AWS hizmetleriyle entegre etmenin karmaşıklığını azaltır. Apache Flink İçin Amazon Yönetilen Hizmet ile yönetilecek sunucu, minimum ücret veya kurulum maliyeti yoktur. Kurulum, varsayılan olarak yüksek oranda erişilebilirdir. Uygulama durumu tam olarak yönetilir ve hata toleransı için yüksek dayanıklılığa sahip bir arka uçta depolanır. Uygulama, uygulamayı durdurmak, başlatmak, yapılandırmak ve ölçeklendirmek için basit bir API ile kontrol edilir.
Apache Flink İçin Amazon Yönetilen Hizmet, Apache Flink için interaktif bir dizüstü bilgisayar arabirimi sunar. Apache Zeppelin not defterini kullanarak geliştirme ve deneme, veri denetimi veya görselleştirme için Apache Flink'te SQL, Python ve Scala kodlarını çalıştırabilirsiniz.
Ayrıca Amazon EMR, kümedeki diğer uygulamaları çalıştırmanın yanı sıra kaynakları yönetebilmeniz için bir YARN uygulaması olarak Apache Flink'i destekler.
Apache Flink, yerel olarak Kubernetes'i destekler. Apache Flink'i Amazon Esnek Kubernetes Hizmeti (Amazon EKS) gibi container içeren bir ortamda kendi kendinize barındırabilir veya Amazon Esnek İşlem Bulutu (Amazon EC2) kullanarak tamamen kendiniz yönetebilirsiniz.
Hemen bir hesap oluşturarak AWS'de Apache Flink'i kullanmaya başlayın.
AWS'de Sonraki Adımlar
AWS Ücretsiz Kullanım için anında erişim elde edin.
AWS Yönetim Konsolu'nda oluşturmaya başlayın.