Pic
BİG DATA
Apache Ranger Nedir ve Nasıl Kullanılır
APACHE RANGER NEDİR? Apache Ranger, Hadoop ekosistemindeki veri güvenliği, erişim denetimi ve denetim logları sağlamak için kullanılan açık kaynaklı bir güvenlik framework'üdür. Çeşitli büyük veri projeleriyle entegrasyon sağlayarak, kullanıcıların veriye kimlerin erişebileceğini kontrol eder ve denetler. Ranger, kullanıcıları ve grupları doğrulamak, veri erişimi üzerinde ayrıntılı denetimler yapmak ve bu erişimleri merkezi bir noktadan yönetmek için geliştirilmiştir. Apache Ranger, veri güvenliğini sağlamak için bir dizi güçlü özellik sunar: - Politika Tabanlı Erişim Kontrolü: Kullanıcılar ve gruplar için ayrıntılı erişim kontrol politikalarıoluşturulabilir. Bu politikalar, hangi kullanıcıların hangi verilere erişebileceğini ve hangi eylemleri gerçekleştirebileceğini belirler. Apache Ranger, RBAC (Role-Based Access Control - Rol Tabanlı Erişim Kontrolü) ile çalışır ve kullanıcıların rol ve izinlerini yönetmeyi kolaylaştırır. - Hassas Veri Koruma: Ranger, verilerin hassasiyetine göre farklı erişim seviyeleri tanımlanabilir.Özellikle sağlık, finans gibi sektörlerdeki hassas verilere yönelik ek güvenlik önlemleri uygulanabilir. - Entegre Denetim ve İzleme: Apache Ranger, her veri erişim işlemi için detaylı loglar oluşturur. Bu loglar, kimlerin ne zaman, hangi verilere eriştiğini ve hangi işlemleri gerçekleştirdiğini gösterir. Bu, güvenlik denetimleri ve uyum raporlaması için kritik öneme sahiptir. - Şifreleme ve Anahtar Yönetimi: Apache Ranger KMS, verilerin şifrelenmesini ve şifreleme anahtarlarının yönetilmesini sağlar. Şifreleme, verinin yetkisiz erişime karşı korunmasına yardımcı olur. - Yetkilendirme ve Kimlik Doğrulama: Apache Ranger, LDAP, Active Directory ve diğer kimlik doğrulama servisleriyle entegre çalışabilir. Ayrıca, kullanıcıların kimlik doğrulama bilgilerini doğrulamak için Kerberos gibi güvenlik protokollerini de destekler. RANGER ÜZERİNDE USER VE POLICY OLUŞTURMA Arayüzdeki Settings sekmesinden Users seçildiği takdirde gelen arayüzden oluşturulmuş olan kullanıcılar yönetilebilir veya yeni bir kullanıcı oluşturulabilir.

8/30/2025 6:44:09 PM
Pic
BİG DATA
Clickhouse-Postgresql Arasında Change Data Capture ve Trino Entegrasyonu - Overview

Change Data Capture - CDC

Change Data Capture, bir veritabanında yapılan veri değişikliklerini (insert, update, delete gibi) gerçek zamanlı olarak tespit edip bu değişiklikleri başka bir sisteme aktarma yöntemidir.

CDC, özellikle mikro hizmet mimarilerinde, veri analitiği platformlarında ve veri eşitleme senaryolarında kritik bir rol oynar.

Bu raporda CDC'nin temel mantığı ve PostgreSQL, Kafka, Debezium, ClickHouse ve Trino gibi teknolojiler kullanılarak nasıl gerçekleştirilebileceği açıklanmaktadır.

CDC’nin Amacı

CDC, büyük ve karmaşık sistemlerde veri değişikliklerini izlemek ve bu değişiklikleri başka sistemlere gerçek zamanlı olarak iletmek için kullanılır.

Bu yöntem sayesinde:

Veri tutarlılığı sağlanır.

Gerçek zamanlı analitik yapılabilir.

Sistemler arasında veri entegrasyonu mümkün hale gelir.

Veritabanında yük oluşturmadan veri çoğaltma yapılabilir.

Bu projede CDC Sürecinde Kullanılan Teknolojiler:

  1. PostgreSQL

CDC sürecinin başlangıç noktasıdır. Veriler burada saklanır ve yapılan değişiklikler (örneğin bir kaydın eklenmesi, güncellenmesi veya silinmesi) write-ahead log (WAL) adı verilen bir kayıt mekanizmasıaracılığıyla izlenir. PostgreSQL’in mantıksal çoğaltma (logical replication) özelliği, bu değişikliklerin yakalanmasını sağlar.

Mantıksal çoğaltma, Debezium gibi araçların PostgreSQL’den veri değişikliklerini okumasına olanak tanır. Böylece veritabanında yapılan değişiklikler tespit edilip dış sistemlere iletilebilir.

  1. Debezium

Debezium, veritabanında yapılan değişiklikleri gerçek zamanlı olarak yakalayan bir Change Data Capture (CDC) aracıdır. PostgreSQL'deki mantıksal çoğaltma yuvasını kullanarak değişiklikleri okur ve bu değişiklikleri Apache Kafka’ya aktarır.

Bu değişiklikler genellikle JSON formatında Kafka’ya iletilir.

  1. Apache Kafka

Kafka, CDC sürecinde merkezi bir veri iletim omurgası olarak görev yapar. Debezium’dan gelen veriler, Kafka’da topic adı verilen bölümlerde saklanır. Bu veriler, daha sonra ihtiyaç duyan sistemlere veya uygulamalara dağıtılabilir.

  1. ClickHouse

CDC sürecinde, Kafka’dan gelen veriler hızlı ve performanslı bir şekilde ClickHouse’a yazılabilir. ClickHouse’un kolon bazlı mimarisi, büyük veri kümeleri üzerinde analitik sorguların hızlı bir şekilde yapılmasını sağlar.

Kafka’daki CDC verileri, ETL süreçleri aracılığıyla ClickHouse’a yazılır.

  1. Trino

Trino, birden fazla veri kaynağını birleştirerek sorgulama yapma yeteneği sunar. CDC sürecinde, hem Kafka hem de ClickHouse gibi veri kaynaklarından gelen veriler üzerinde birleşik analizler yapılabilir.

 Zookeeper

Zookeeper, dağıtık sistemlerde koordinasyon hizmeti sağlayan bir araçtır. Kafka gibi sistemlerin birden fazla düğüm üzerinde kararlı bir şekilde çalışmasını sağlamak için kullanılır. Lider seçimi, yapılandırma yönetimi ve durum takibi gibi işlemler için kritik öneme sahiptir.

CDC Süreci

Veri Değişikliği: PostgreSQL üzerinde bir veri eklenir, güncellenir veya silinir.

WAL Kaydı: PostgreSQL, bu değişikliği WAL’e kaydeder.

Debezium’un Yakalaması: Debezium, mantıksal çoğaltma özelliğini kullanarak bu değişikliği okur ve Kafka’ya gönderir.

Kafka’ya Yazma: Kafka, Debezium’dan gelen veriyi uygun bir topic’e kaydeder.

ClickHouse, bu veriyi Kafka’dan okuyarak analitik için saklar.

 



8/30/2025 6:22:13 PM
Pic
BİG DATA
Apache Flink - Overview
Apache Flink Nedir?
Apache Flink, sınırsız ve sınırlı veri akışları üzerinde durum bilgisi hesaplamaları için bir çerçeve ve dağıtılmış işleme motorudur. Flink, tüm yaygın küme ortamlarında çalışacak ve her ölçekte bellek içi hızda hesaplamalar gerçekleştirecek şekilde tasarlanmıştır. Finans, e-ticaret ve telekomünikasyon gibi sektörlerdeki işletmeler için hem toplu hem de akış işlemeyi tek bir birleşik platformda gerçekleştirebilençok yönlü bir araçtır. Apache Flink dolandırıcılık tespiti, kişiselleştirilmiş öneriler, borsa analizi ve makineöğrenimi gibi modern uygulamalar için kullanılabilir.

Her türlü veri bir olay akışı olarak üretilir. Kredi kartı işlemleri, sensör ölçümleri, makine günlükleri veya bir web sitesi veya mobil uygulamadaki kullanıcı etkileşimleri, tüm bu veriler bir akış olarak üretilir.

Veriler, sınırsız veya sınırlı akışlar olarak işlenebilir.
- Sınırsız akışların bir başlangıcı vardır ancak tanımlı bir sonu yoktur. Sonlanmazlar ve üretildikleri anda veri sağlarlar yani sürekli olarak işlenmelidir.
- Sınırlı akışların tanımlanmış bir başlangıcı ve sonu vardır. Sınırlı akışlar, herhangi bir hesaplama yapmadan önce tüm verileri alarak işlenebilir. Sınırlı akışların işlenmesi toplu işleme olarak da bilinir.
Flink'in özellikleri arasında gelişmiş durum yönetimi, kaydetme noktaları, kontrol noktaları, olay zamanıişleme semantiği ve durum bilgisi işleme için tam bir kez (exactly-once) tutarlılık garantileri bulunur. Durum bilgisi akışı işleme özelliği, kullanıcıların sürekli veri akışları üzerinde dağıtılmış hesaplamalar tanımlamasına olanak tanır. Bu, pencereli birleştirmeler, toplamalar ve desen eşleştirme gibi olay akışlarında karmaşık olay işleme analizlerini etkinleştirir.
Hem sınırlı hem de sınırsız akışları işleyebilir, toplu ve akış işlemeyi aynı şemsiye altında birleştirebilir. Bu, her iki veri türünü de işlemeyi gerektiren gerçek zamanlı akış uygulamaları gibi çeşitli veri işleme ihtiyaçları için yararlı hale getirir. Ayrıca, hemen hemen her ölçekte durum bilgisi uygulamalarınıçalıştırmak üzere tasarlanmıştır. Birden fazla makineye dağıtılmış binlerce göreve paralel olarak verileri işleyebilir ve büyük veri kümelerini verimli bir şekilde işleyebilir. Bu, minimum gecikme ve verim kaybıyla binlerce düğüme ölçeklenmesi gereken uygulamalar için idealdir.
Flink, mesajlaşma ve akış sistemleri, veri depoları, arama motorları ve Apache Kafka, OpenSearch, Elasticsearch, DynamoDB, HBase ve JDBC istemcisi sağlayan herhangi bir veritabanı gibi dosya sistemleri için bağlayıcılara sahiptir.
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.
Ayrıca Java, Scala, Python ve Kotlin gibi diğer JVM dilleri dahil olmak üzere birden fazla programlama dilini destekler ve bu da onu geliştiriciler arasında popüler bir seçim haline getirir.

8/30/2013 6:14:20 PM