Ana İçeriğe Atla

Apache Iceberg nedir?

Apache Iceberg, veri göllerinde depolanan büyük veri kümelerinde veri işlemeyi basitleştirmeye yardımcı olan dağıtılmış, topluluk odaklı, Apache 2.0 lisanslı, %100 açık kaynaklı bir veri tablosu biçimidir. Veri mühendisleri her ölçekte hızlı, verimli ve güvenilir olan ve veri kümelerinin zamansal değişiminin kayıtlarını tutan Apache Iceberg'i kullanıyor. Apache Iceberg, Apache Spark, Apache Flink, Apache Hive, Presto ve daha fazlası gibi popüler veri işleme çerçeveleriyle kolay entegrasyonlar sunar.

İşlemsel veri gölü nedir?

Veri lü, tüm yapılandırılmış ve yapılandırılmamış verilerinizi herhangi bir ölçekte depolamanıza olanak tanıyan merkezi bir depodur. Veri işlemi, tek bir işlem sırasında gerçekleştirilen bir dizi veri alışverişidir. Örneğin, bir müşteri bir banka hesabından para çektiğinde banka, hesabın yeterli bakiyeye sahip olduğunu doğrulamak, kimliği doğrulamak ve hesaptan çekilen paranın borçlandırılması dahil olmak üzere birkaç veri alışverişi gerçekleştirir. İşlemsel veri gölü, verileri yalnızca geniş ölçekte depolamakla kalmayıp aynı zamanda işlemsel operasyonları da destekleyen ve verilerin doğru, tutarlı olmasını sağlayan ve veri ile veri yapısının zaman içinde nasıl değiştiğini izlemenize olanak tanıyan bir veri gölü türüdür. Bu özellikler toplu olarak Atomiklik, Tutarlılık, İzolasyon ve Dayanıklılık (ACID) olarak bilinir:

  • Atomicity, her işlemin tamamen başarılı veya başarısız olan tek bir olay olduğunu garanti eder; yarı yol durumu yoktur.

  • Tutarl ılık, yazılan tüm verilerin veri gölünün tanımlanmış kurallarına göre geçerli olmasını sağlayarak verilerin doğru ve güvenilir olmasını sağlar.

  • İzolasyon, birbirlerine müdahale etmeden aynı anda birden fazla işlemin gerçekleşmesini sağlayarak her işlemin bağımsız olarak yürütülmesini sağlar.

  • Dayanıklılık, bir işlem gönderildikten sonra verilerin kaybolmaması veya bozulmaması anlamına gelir. Elektrik kesintisi gibi bir sistem arızası durumunda veriler kurtarılabilir.

Apache Iceberg'i kullanmanın avantajları nelerdir?

İşlemsel veri gölleri için Apache Iceberg'i kullanmanın temel avantajlarından bazıları şunlardır:

  • SQL'e aşinalık: Yapılandırılmış sorgu dili (SQL) , her tür uygulamada sıklıkla kullanılan popüler bir sorgu dilidir. Farklı programlama dilleriyle iyi entegre olduğundan ve ayrıca ifadelerinde yaygın İngilizce anahtar kelimeler kullandığı için öğrenmesi oldukça kolay olduğundan veri analistleri ve geliştiriciler SQL'yi öğrenir ve kullanır. Apache Iceberg, yapılandırılmış sorgu diline (SQL) aşina olan herkesin veri gölleri oluşturmasına ve çoğu veri gölü işlemini yeni bir dil öğrenmeye gerek kalmadan gerçekleştirmesine olanak tanır.

  • Veri Tutarlılığı: Apache Iceberg, verileri okuyan ve yazan herhangi bir kullanıcının aynı verileri görmesini sağlamak için veri tutarlılığı sağlar.

  • Veri yapısı: Apache Iceberg, veri yapınızda şema evrimi olarak da bilinen kolay değişiklikler yapmanıza olanak tanır ve bu da kullanıcıların temel verileri bozmadan bir veri tablosundaki sütunları ekleyebileceği, yeniden adlandırabileceği veya kaldırabileceği anlamına gelir.

  • Veri Sürümü: Apache Iceberg, kullanıcıların verilerdeki değişiklikleri fazla zaman izlemesine olanak tanıyan veri sürümü oluşturma desteği sağlar. Bu, kullanıcıların verilerin geçmiş sürümlerine erişmesine ve sorgulamasına ve güncellemeler ile silme arasındaki verilerde yapılan değişiklikleri analiz etmesine olanak tanıyan zaman yolculuğu özelliğini etkinleştirir.

  • Çapraz platform desteği: Apache Iceberg, Apache Spark, Apache Hive ve Presto dahil olmak üzere çeşitli farklı depolama sistemlerini ve sorgu motorlarını destekler. Bu, Iceberg'i çeşitli farklı veri işleme ortamlarında kullanmayı kolaylaştırır.

  • Artımlı işleme: Iceberg, kullanıcıların yalnızca CDC (Değiştirme Veri Yakalama) olarak da bilinen son çalıştırmadan bu yana değişen verileri işlemesine olanak tanıyan artımlı işlemeyi destekler. Bu, veri işleme verimliliğini ve performansını artırmaya yardımcı olabilir.

Apache Iceberg için yaygın kullanım örnekleri nelerdir?

Apache Iceberg, aşağıdakiler dahil olmak üzere birçok veri gölü kullanım örneği için uygundur:

  • Veri gizliliği yasalarını uygularken olduğu gibi, sık sık silme gerektiren veri göllerindeki veri tabloları.

  • Veri gölünde kayıt düzeyi güncellemeleri gerektiren veri tabloları. Bu, veri yerleşiminden sonra veri kümenizde müşteri iadeleri gibi sonraki olaylar nedeniyle değişebilecek satış verileri benzeri sık güncellemeler gerektiren durumlarda faydalı olacaktır. Iceberg, tüm veri setini yeniden yayınlamaya gerek kalmadan tek tek kayıtları güncelleme yetenekleri sağlar.

  • Yavaş Değişen Boyut (SCD) tabloları gibi öngörülemeyen değişikliklere sahip veri göllerindeki veri tabloları. SCD'ye bir örnek, bilinmeyen aralıklarla zaman içinde değişebilen ad, konum ve iletişim bilgilerini içeren bir müşteri kayıt tablosudur.

  • Veri gölü ile yapılan işlemler için garantili veri geçerliliği, dayanıklılık ve güvenilirlik gerektiğinde bölünmez, tutarlı, izole ve dayanıklı işlemler için Apache Iceberg tabloları devreye alınabilir.

  • Trend analizi gerçekleştirmek, belirli bir süre boyunca verilerde yapılan değişiklikleri analiz etmek veya sorunları düzeltmek için önceki bir sürüme geri yüklemek ya da geri almak için verilerin geçmiş sürümlerini sorgulamak üzere zamanda geriye gitmeye ihtiyaç duyulması.

Apache Iceberg'i kimler kullanır?

Veri mühendisleri, veri yöneticileri, veri analistleri ve veri bilimcileri Apache Iceberg'i kullanan kişiler arasındadır.  Veri mühendisleri ve yöneticileri, ölçeklenebilir veri depolama sistemleri tasarlamak ve oluşturmak için Apache Iceberg'i kullanabilir.  Veri analistleri ve veri bilimcileri, büyük veri kümelerini verimli bir şekilde analiz etmek için Apache Iceberg'i kullanabilir.

Neden Apache Iceberg'i seçmelisiniz?

Apache Iceberg, büyük veri kümelerini ölçekte işlemek için hızlı ve verimli bir yol sunar. Aşağıdaki faydaları sağlar:

  1. Açık kaynak: Apache Iceberg açık kaynaklı bir projedir, yani kullanımı ücretsizdir ve özel ihtiyaçlarınızı karşılamak için özelleştirilebilir. Ayrıca, sürekli olarak geliştiren ve projeye yeni özellikler ekleyen aktif bir geliştirici topluluğuna sahiptir.

  2. Ölçeklenebilirlik: Apache Iceberg, büyük veri kümelerini verimli bir şekilde işlemek için tasarlanmıştır. Verileri birden çok düğümde bölümleyebilir ve düzenleyebilir, bu da iş yükünü dağıtmaya ve veri işlemeyi hızlandırmaya yardımcı olur.

  3. Performans: Apache Iceberg, sütunlu depolama ve yüklem indirme ve şema gelişimi gibi sıkıştırma teknikleri de dahil olmak üzere sorgu performansını optimize etmek için çeşitli özelliklere sahiptir.

  4. Esneklik: Apache Iceberg, verilerinizin düzenlenme şeklini değiştirmenize olanak tanır, böylece sorgularınızı yeniden yazmanıza veya veri yapılarınızı yeniden oluşturmanıza gerek kalmadan zaman içinde gelişebilir. Ayrıca, mevcut sistemlerle entegrasyonu kolaylaştıran birden fazla veri formatını ve veri kaynağını destekler.

  5. Güvenilirlik: Apache Iceberg, işlem desteği sayesinde veri tutarlılığı ve güvenilirliği sağlar. Verilerin zaman içinde nasıl değiştiğini izleyebilir ve sorunları düzeltmenize yardımcı olmak için geçmiş sürümlere geri dönebilirsiniz.

Hangi AWS hizmetleri Iceberg'i destekliyor?

Apache Iceberg, Apache Spark, Apache Flink, Apache Hive ve Presto gibi popüler veri işleme çerçevelerini destekler. Amazon Redshift, Amazon Athena, Amazon EMR , AWS Glue ve Amazon Data Firehose gibi AWS hizmetleri, yerel destek içerir Apache Iceberg dahil işlemsel veri gölü çerçeveleri. Apache Iceberg, desteklenen AWS hizmetleriyle birlikte, genellikle S3'teki depolamaya dayalı bir işlemsel veri gölü sağlar.

  • Amazon Redshift, müşteriler için iş kararları vermeyi hızlı ve uygun maliyetli bir şekilde yönlendiren, tamamen yönetilen, yapay zeka destekli, SQL analitiği ve veri ambarı hizmetidir. Amazon Redshift, veri paylaşımı ile neredeyse gerçek zamanlı analiz ve AI/ML kullanım örnekleri sağlayan sıfır ETL özellikleriyle Yüksek Hacimli Paralel İşleme (MPP), çok kümeli ve sunucusuz mimari sunar. Müşteriler, AWS Glue Data kataloğundan erişilen veri gölündeki Apache Iceberg tablolarını sorgulamak için Amazon Redshift'i kullanabilir ve kapsamlı analizler için veri ambarındaki tablolarıyla birleştirebilir.

  • Amazon Athena açık kaynak çerçeveleri üzerine kurulmuş, açık tablo ve dosya formatlarını destekleyen sunucusuz, etkileşimli bir analiz hizmetidir. Athena, petabaytlarca veriyi bulunduğu yerde analiz etmenin basit ve esnek bir yolunu sunar. Athena, veriler için Apache Parquet biçimini ve metastorları için AWS Glue kataloğunu kullanan Apache Iceberg tabloları için okuma, zaman yolculuğu, yazma ve DDL sorguları için yerel destek sağlar.

  • Amazon EMR, Apache Spark, Hadoop, Presto ve Hive gibi açık kaynaklı çerçeveleri kullanarak petabayt ölçekli veri işleme, etkileşimli analitik ve makine öğrenimi için büyük bir veri çözümüdür. Amazon EMR 6.5.0'dan başlayarak, Amazon EMR kümelerinde Iceberg tablo biçimiyle Apache Spark 3'ü kullanabilirsiniz. Spark, Trino, Flink ve Hive gibi EMR çerçeveleri Apache Iceberg'i destekler.

  • AWS Glue, analitik, makine öğrenimi (ML) ve uygulama geliştirme için birden fazla kaynaktan gelen verileri keşfetmeyi, hazırlamayı, taşımayı ve entegre etmeyi kolaylaştıran sunucusuz bir veri entegrasyon hiz metidir.  AWS Glue 3.0 ve sonraki sürümleri, veri gölleri için Apache Iceberg çerçevesini destekler. Amazon S3'teki Iceberg tablolarında okuma ve yazma işlemleri gerçekleştirmek için AWS Glue'yu kullanabilir veya AWS Glue Veri Kataloğu'nu kullanarak Iceberg tablolarıyla çalışabilirsiniz. Ekleme, güncelleme ve tüm Spark sorguları dahil olmak üzere ek işlemler, Spark yazmaları da desteklenir.

  • Amazon Data Firehose, Amazon Simple Storage Service (Amazon S3), Amazon Redshift, Amazon OpenSearch Service, Amazon OpenSearch Service, Amazon OpenSearch Serverless, Splunk, Snowflake, Apache Iceberg Tables ve Datadog, Dynatrace, LogicMonitor, MongoDB, New Relic dahil olmak üzere desteklenen üçüncü taraf hizmet sağlayıcılarının sahip olduğu herhangi bir özel HTTP uç nokta veya HTTP uç noktaları gibi hedeflere gerçek zamanlı akış verilerini sunmak için tam olarak yönetilen, sunucusuz bir hizmettir. Alogix ve Elastic. Amazon Data Firehose ile uygulama yazmanıza veya kaynakları yönetmenize gerek yoktur. Veri üreticilerinizi, Amazon Data Firehose'a veri gönderecek şekilde yapılandırmanız yeterlidir. Firehose bu verileri belirttiğiniz hedefe otomatik olarak teslim eder. Ayrıca Amazon Data Firehose'u verilerinizi teslim etmeden önce dönüştürecek şekilde yapılandırabilirsiniz.