Apache Nifi Bölüm 1: Nedir ve Core Terminoloji

Apache Nifi

Nifi Nedir?

Nifi, noktadan noktaya veri taşımak, çeşitli transformasyon işlemleri yapmak ve düzenli çalışması gereken işleri otomatize etmek için kullanılan Data Pipeline aracıdır.

NSA (National Security Agency) tarafından geliştirilmiş ve sonrasında open source dünyaya verilmiş projlerden biridir. NSA’in günlük yaptığı veri işlemlerini kolaylaştırmak için sürükle bırak şeklinde akışlar tasarlayabileceğimiz bir yapı sağlamakta ve bu sayede ETL gibi süreçlerimizi oldukça kolaylaştırmaktadır.

Fakat baştan söyleyeyim, çok yüksek seviyede işler yapmak için yeterli olgunlukta değildir. Bu sebeple orta seviye ihtiyaçları karşılamak için idealdir. Eğer çok yüksek seviyeli akışlara sahipseniz bunun için Nifi çok fazla kaynak tüketimi yapacak ve gerekli performansı sağlamak konusunda yeterli olamayabilecektir.

Nifi Core Terminoloji

FBP (Flow Based Programming)

Nifi, FBP temelli bir çalışma şekline sahiptir.

FBP, uygulamaları, connection’ların işlemlere harici olarak belirlendiği, önceden tanımlanmış connection’lar arasında mesaj geçişi yoluyla veri alışverişi yapan “black box” işlem ağları olarak tanımlayan bir programlama paradigmasıdır.

Bu black box süreçleri, dahili olarak değiştirilmeye gerek kalmadan farklı uygulamalar oluşturmak için sonsuz bir şekilde yeniden bağlanabilir. FBP bu nedenle doğal olarak bileşen odaklıdır.

Nifi Nasıl Çalışıyor?

  • Nifi, bir data flow oluşturmak için gruplar halinde birleştirilebilen atomik elemanlardan oluşur.
  • Nifi, Processor ve Process gruplarından oluşur.

Processor Nedir?

Processor, Nifi’de bazı basit görevleri yerine getirebilen atomik elemanlardır. Nifi’ın 280+ Processor’ü var. Her Processor kendine özgü bir çalışma şekli vardır. Nifi’ın neredeyse her şey için Processor’ü vardır.

Birçok Data Source ve Data Sink’imiz olur. Bu Source ve Sink herhangi bir şey olabilir, ör: SQL, NoSQL, Cache Server, Search Engine vb. Source ve Sink arasındaki verinin akışı için Processor’ler kullanılır. Bunun dışında kendi Processor’lerinizi de geliştirebilirsiniz ve Nifi bunu destekler.

FlowFile Nedir?

FlowFile = Gerçek Veri -> csv, json, xml, düz metin vb. FlowFile – Nifi’de verilerin soyutlanmasını temsil eder. Bir Processor, mevcut bir FlowFile’ı işleyerek veya herhangi bir kaynaktan yeni verileri alarak yeni FlowFile oluşturabilir.

FlowFile Bileşenleri

FlowFile verileri tutar. İki komponentten oluşur: Content ve Attributes.

Content: FlowFile’ın asıl içeriği budur. GetFile, GetHTTP vb. kullanarak okuyacağınız bir dosyanın gerçek içeriğidir.

Attributes: Bunlar, FlowFile’daki meta data’lardır. İçerikle ilgili bilgileri içerir: Ne zaman oluşturuldu, adı, nereden geliyor, neyi temsil ediyor. Key – Value çiftlerinden oluşur.

Bir Processor şunları yapabilir:

– Bir FlowFile’a attribute ekleyebilir, güncelleyebilir veya silebilir.

– Bir FlowFile’ın content’ini değiştirebilir.

DataFlow’u tasarlamak için Nifi’de bulunan çeşitli Processor’leri kullanarak Attributes veya Content veya her ikisini de güncelleyebilirsiniz.

FlowFile Yaşam Döngüsü

FlowFile’lar diskte kalıcı olarak saklanırlar.

FlowFile’lar başvuruya göre aktarılır (passed-by-reference).

Mevcut FlowFile içeriği modifier ise veya yeni veriler kaynaktan besleniyorsa (data ingestion) yeni bir FlowFile oluşturulacaktır.

Mevcut FlowFile’ın attribute’ları değiştirilirse yeni FlowFile oluşturulmayacaktır.

Connection Nedir?

Nifi’de tüm Processor’ler, bir data flow oluşturmak için birbirine bağlanabilirler. Processor’ler connection’larla birbirine bağlanırlar. Her connection, FlowFiles için bir kuyruk görevi görür.

Process Group Nedir?

Bir grup Processor, bir Process Group oluşturmak için Nifi’de birleştirilebilir. Process Group’ları, gecikmeli ve karmaşık data flow’ların korunmasına yardımcı olur. Input ve Output port’ları, verileri Process Group’lar arasında taşımak için kullanılır.

Controller Service Nedir?

Bir Controller Service, bir Processor tarafından kullanılabilen paylaşımlı bir hizmettir. DB bağlantısı ayrıntılarını tutabilir. CSV Reader, JSON Writer ve daha fazlası için Cotroller Servce oluşturabiliriz.

0
0

Patreon

üzerinden bize destek olabilirsiniz!

.

Birlikten kuvvet doğar! Sizde #patreon üzerinden bizim yanımızda olabilirsiniz. Yaptığımız gönüllü çalışmaları arttırmak için bize destek olun.

Ücretli ve Ücretsiz Eğitimler

Türkiye'nin en büyük veri bilimi topluluğu ile kariyerinizi inşa edin.

Data Science Earth

Data Science Earth ekibi, üst düzey Veri Bilim çözümleri üretmek amacı ile toplanmış akademisyenler ve uzmanlardan oluşmaktadır. Öncelikli olarak veri bilincini geliştirmeyi ve küreselleşen rekabet ortamında verinin gücünün doğru kullanılmasını sağlamayı amaçlamaktadır.

Sponsor

QuestionPro 35 farklı soru seçim özelliği ile anket çalışmalarımıza güç katmaktadır.