Apaçi Buzdağı zaman içinde geliştikçe ve değiştikçe veri kümelerinin durumu hakkında meta veri bilgilerini yakalayan çok büyük analitik veri kümeleri için açık bir tablo biçimidir. SQL tablosu gibi çalışan yüksek performanslı bir tablo formatı kullanarak Spark, Trino, PrestoDB, Flink ve Hive gibi bilgi işlem motorlarına tablolar ekler. Iceberg, veri göllerindeki ACID işlemlerini desteklemesi ve şema ve bölüm evrimi, zamanda yolculuk ve geri alma gibi özellikleriyle çok popüler hale geldi.
Apache Iceberg entegrasyonu, aşağıdakiler de dahil olmak üzere AWS analitik hizmetleri tarafından desteklenir: Amazon EMR'si, Amazon Atina, ve AWS Tutkal. Amazon EMR, Iceberg'i çalıştırabilen Spark, Hive, Trino ve Flink ile kümeler sağlayabilir. Amazon EMR sürüm 6.5.0'dan başlayarak şunları yapabilirsiniz: Iceberg'i EMR kümenizle kullanın Önyükleme eylemi gerektirmeden. 2022'nin başlarında AWS, Apache Iceberg tarafından desteklenen Athena ACID işlemlerinin genel kullanılabilirliğini duyurdu. Yakın zamanda yayınlanan Athena sorgu motoru sürüm 3 Iceberg tablo formatı ile daha iyi entegrasyon sağlar. AWS Glue 3.0 ve sonrası Apache Iceberg çerçevesini destekler veri gölleri için.
Bu gönderide, müşterilerin modern veri göllerinde ne istediğini ve Apache Iceberg'in müşteri ihtiyaçlarını karşılamaya nasıl yardımcı olduğunu tartışacağız. Ardından, yüksek performanslı ve gelişen bir Iceberg veri gölü oluşturmak için bir çözüm üzerinde ilerliyoruz. Amazon Basit Depolama Hizmeti (Amazon S3) ve SQL deyimlerini ekleme, güncelleme ve silme işlemlerini çalıştırarak artımlı verileri işleyin. Son olarak, okuma ve yazma performansını artırmak için işlemin performansını nasıl ayarlayacağınızı gösteriyoruz.
Apache Iceberg, modern veri göllerinde müşterilerin isteklerini nasıl ele alıyor?
Her geçen gün daha fazla müşteri, birçok kullanıcıyı, uygulamayı ve analiz aracını desteklemek için yapılandırılmış ve yapılandırılmamış verilerle veri gölleri oluşturuyor. ACID işlemleri, kayıt düzeyinde güncellemeler ve silmeler, zamanda yolculuk ve geri alma gibi veritabanı benzeri özellikleri desteklemek için veri göllerine artan bir ihtiyaç vardır. Apache Iceberg, Amazon S3'teki uygun maliyetli petabayt ölçeğindeki veri göllerinde bu özellikleri desteklemek için tasarlanmıştır.
Apache Iceberg, bireysel veri dosyalarının oluşturulduğu sırada veri kümesiyle ilgili zengin meta veri bilgilerini yakalayarak müşteri ihtiyaçlarını karşılar. Bir Iceberg tablosunun mimarisinde üç katman vardır: aşağıdaki şekilde gösterildiği gibi Iceberg kataloğu, meta veri katmanı ve veri katmanı.kaynak).
Iceberg kataloğu, meta veri işaretçisini geçerli tablo meta veri dosyasına kaydeder. Bir seçme sorgusu bir Iceberg tablosunu okurken, sorgu motoru önce Iceberg kataloğuna gider, ardından geçerli meta veri dosyasının konumunu alır. Iceberg tablosunda bir güncelleme olduğunda, tablonun yeni bir anlık görüntüsü oluşturulur ve meta veri işaretçisi geçerli tablo meta veri dosyasına işaret eder.
Aşağıda, AWS Glue uygulamasına sahip örnek bir Iceberg kataloğu yer almaktadır. Veritabanı adını, Iceberg tablosunun konumunu (S3 yolu) ve meta veri konumunu görebilirsiniz.
Meta veri katmanında üç tür dosya bulunur: bir hiyerarşideki meta veri dosyası, bildirim listesi ve bildirim dosyası. Hiyerarşinin en üstünde, tablonun şeması, bölüm bilgileri ve anlık görüntüler hakkındaki bilgileri depolayan meta veri dosyası bulunur. Anlık görüntü, bildirim listesine işaret eder. Bildirim listesi, bildirim dosyasının konumu, ait olduğu bölümler ve izlediği veri dosyaları için bölüm sütunlarının alt ve üst sınırları gibi anlık görüntüyü oluşturan her bildirim dosyası hakkında bilgilere sahiptir. Bildirim dosyası, veri dosyalarının yanı sıra dosya formatı gibi her dosya hakkında ek ayrıntıları izler. Üç dosyanın tümü, bir Buzdağı tablosundaki anlık görüntüleri, şemayı, bölümlemeyi, özellikleri ve veri dosyalarını izlemek için bir hiyerarşide çalışır.
Veri katmanı, Buzdağı tablosunun bireysel veri dosyalarına sahiptir. Iceberg, Parquet, ORC ve Avro dahil olmak üzere çok çeşitli dosya formatlarını destekler. Iceberg tablosu, veri dosyalarıyla yalnızca bölüm konumunu işaret etmek yerine tek tek veri dosyalarını izlediğinden, yazma işlemlerini okuma işlemlerinden ayırır. Veri dosyalarını istediğiniz zaman yazabilirsiniz, ancak değişikliği yalnızca açıkça taahhüt ederek anlık görüntü ve meta veri dosyalarının yeni bir sürümünü oluşturabilirsiniz.
Çözüme genel bakış
Bu gönderide, Amazon S3'te yüksek performanslı bir Apache Iceberg veri gölü oluşturmaya yönelik bir çözümde size yol gösteriyoruz; SQL deyimlerini ekleme, güncelleme ve silme ile artımlı verileri işleyin; ve okuma ve yazma performansını artırmak için Buzdağı tablosunu ayarlayın. Aşağıdaki diyagram, çözüm mimarisini göstermektedir.
Bu çözümü göstermek için, Amazon Müşteri Yorumları bir S3 grubundaki veri kümesi (s3://amazon-reviews-pds/parquet/
). Gerçek kullanım durumunda, S3 kovanızda depolanan ham veriler olacaktır. Veri boyutunu aşağıdaki kodla kontrol edebiliriz. AWS Komut Satırı Arayüzü (AWS CLI):
Toplam nesne sayısı 430 ve toplam boyut 47.4 GiB'dir.
Bu çözümü kurmak ve test etmek için aşağıdaki üst düzey adımları tamamlıyoruz:
- Dönüştürülen verileri Iceberg tablo biçiminde depolamak için seçilen bölgede bir S3 klasörü kurun.
- Apache Iceberg için uygun yapılandırmalarla bir EMR kümesi başlatın.
- EMR Studio'da bir not defteri oluşturun.
- Apache Iceberg için Spark oturumunu yapılandırın.
- Verileri Iceberg tablo biçimine dönüştürün ve verileri seçilen bölgeye taşıyın.
- Artımlı verileri işlemek için Athena'da ekleme, güncelleme ve silme sorgularını çalıştırın.
- Performans ayarlaması yapın.
Önkoşullar
Bu izlenecek yolu takip etmek için bir AWS hesabı bir ile AWS Kimlik ve Erişim Yönetimi gerekli kaynakları sağlamak için yeterli erişime sahip (IAM) rolü.
Veri gölünüzdeki seçilen bölgede Iceberg verileri için S3 klasörünü kurun
S3 klasörünü oluşturmak istediğiniz Bölgeyi seçin ve benzersiz bir ad girin:
Spark kullanarak Iceberg işlerini çalıştırmak için bir EMR kümesi başlatın
Bir EMR kümesi oluşturabilirsiniz. AWS Yönetim Konsolu, Amazon EMR CLI veya AWS Bulut Geliştirme Kiti (AWS CDK'sı). Bu gönderi için, konsoldan bir EMR kümesi oluşturma konusunda size yol gösteriyoruz.
- Amazon EMR konsolunda şunu seçin: Küme oluştur.
- Klinik Gelişmiş seçenekler.
- İçin Yazılım Konfigürasyon, en son Amazon EMR sürümünü seçin. Ocak 2023 itibarıyla en son sürüm 6.9.0'dır. Iceberg, sürüm 6.5.0 ve üzerini gerektirir.
- seç JupyterEnterpriseGateway ve Kıvılcım yüklenecek yazılım olarak.
- İçin Yazılım ayarlarını düzenleyinseçin Yapılandırmayı girin Ve girin
[{"classification":"iceberg-defaults","properties":{"iceberg.enabled":true}}]
. - Diğer ayarları varsayılanlarında bırakın ve Sonraki.
- İçin donanım, varsayılan ayarı kullanın.
- Klinik Sonraki.
- İçin Küme adı, isim girin. Kullanırız
iceberg-blog-cluster
. - Kalan ayarları değiştirmeden bırakın ve Sonraki.
- Klinik Küme oluştur.
EMR Studio'da not defteri oluşturun
Şimdi size konsoldan EMR Studio'da nasıl not defteri oluşturacağınızı gösteriyoruz.
- IAM konsolunda, bir EMR Studio hizmet rolü oluşturun.
- Amazon EMR konsolunda şunu seçin: EMR Stüdyosu.
- Klinik BAŞLAYIN.
The BAŞLAYIN sayfa yeni bir sekmede görünür.
- Klinik Stüdyo Oluştur yeni sekmede.
- İsim girin. Iceberg-studio kullanıyoruz.
- EMR kümesi ve varsayılan güvenlik grubu için olanlarla aynı VPC'yi ve alt ağı seçin.
- Klinik AWS Kimlik ve Erişim Yönetimi (IAM) kimlik doğrulama için ve yeni oluşturduğunuz EMR Studio hizmet rolünü seçin.
- için bir S3 yolu seçin Çalışma alanları yedeklemesi.
- Klinik Stüdyo Oluştur.
- Studio oluşturulduktan sonra Studio erişim URL'sini seçin.
- EMR Studio kontrol panelinde, Çalışma alanı oluştur.
- Çalışma Alanınız için bir ad girin. Kullanırız
iceberg-workspace
. - Genişletmek Gelişmiş yapılandırma Ve seç Workspace'i bir EMR kümesine ekleyin.
- Daha önce oluşturduğunuz EMR kümesini seçin.
- Klinik Çalışma Alanı Oluştur.
- Yeni bir sekme açmak için Çalışma Alanı adını seçin.
Gezinti bölmesinde, Çalışma Alanı ile aynı ada sahip bir not defteri vardır. Bizim durumumuzda, buzdağı çalışma alanıdır.
- Not defterini açın.
- Bir çekirdek seçmeniz istendiğinde, seçin Kıvılcım.
Apache Iceberg için bir Spark oturumu yapılandırma
Kendi S3 grup adınızı vererek aşağıdaki kodu kullanın:
Bu, aşağıdaki Spark oturum yapılandırmalarını ayarlar:
- kıvılcım.sql.catalog.demo – Iceberg Spark katalog eklentisini kullanan demo adlı bir Spark kataloğunu kaydeder.
- kıvılcım.sql.catalog.demo.catalog-impl – Demo Spark kataloğu, Iceberg veritabanını ve tablo bilgilerini depolamak için fiziksel katalog olarak AWS Glue'yu kullanır.
- kıvılcım.sql.catalog.demo.warehouse – Demo Spark kataloğu, tüm Iceberg meta verilerini ve veri dosyalarını bu özellik tarafından tanımlanan kök yol altında depolar:
s3://iceberg-curated-blog-data
. - kıvılcım.sql.uzantıları – Iceberg Spark prosedürlerini ve sadece Iceberg'e özgü bazı SQL komutlarını çalıştırmanıza izin veren Iceberg Spark SQL uzantılarına destek ekler (bunu daha sonraki bir adımda kullanırsınız).
- kıvılcım.sql.catalog.demo.io-impl – Iceberg, kullanıcıların S3FileIO aracılığıyla Amazon S3'e veri yazmasına olanak tanır. AWS Glue Data Catalog, varsayılan olarak bu FileIO'yu kullanır ve diğer kataloglar, io-impl katalog özelliğini kullanarak bu FileIO'yu yükleyebilir.
Verileri Iceberg tablo formatına dönüştürün
Iceberg tablosunu yüklemek için Spark on Amazon EMR veya Athena'yı kullanabilirsiniz. EMR Studio Workspace not defteri Spark oturumunda, verileri yüklemek için aşağıdaki komutları çalıştırın:
Kodu çalıştırdıktan sonra, veri ambarınız S3 yolunda (s3://iceberg-curated-blog-data/reviews.db/all_reviews
): veriler ve meta veriler.
Athena'da SQL deyimlerini ekle, güncelle ve sil kullanarak artımlı verileri işleyin
Athena, Iceberg tablolarına karşı okuma, yazma, güncelleme ve optimizasyon görevlerini gerçekleştirmek için kullanabileceğiniz sunucusuz bir sorgu motorudur. Apache Iceberg veri gölü formatının artımlı veri alımını nasıl desteklediğini göstermek için veri gölünde SQL deyimlerini ekleme, güncelleme ve silme işlemlerini çalıştırıyoruz.
Athena konsoluna gidin ve seçin sorgu düzenleyici. Athena sorgu düzenleyicisini ilk kez kullanıyorsanız, sorgu sonucu konumunu yapılandırın daha önce oluşturduğunuz S3 grubu olmak. Reviews.all_reviews tablosunun sorgulama için uygun olduğunu görebilmeniz gerekir. Iceberg tablosunu başarıyla yüklediğinizi doğrulamak için aşağıdaki sorguyu çalıştırın:
Ekleme, güncelleme ve silme SQL deyimlerini çalıştırarak artımlı verileri işleyin:
Performans ayarı
Bu bölümde, Apache Iceberg okuma ve yazma performansını iyileştirmenin farklı yollarını inceleyeceğiz.
Apache Iceberg tablo özelliklerini yapılandırma
Apache Iceberg bir tablo biçimidir ve okuma, yazma ve kataloglama gibi tablo davranışını yapılandırmak için tablo özelliklerini destekler. Tablo özelliklerini ayarlayarak Iceberg tablolarında okuma ve yazma performansını iyileştirebilirsiniz.
Örneğin, bir Iceberg tablosu için çok fazla küçük dosya yazdığınızı fark ederseniz, sorgu performansını artırmaya yardımcı olması için yazma dosyası boyutunu daha az ama daha büyük boyutlu dosyalar yazacak şekilde yapılandırabilirsiniz.
Varlığınızı | Varsayılan | Açıklama |
write.hedef-dosya-boyutu-bayt | 536870912 (512 MB) | Bu kadar baytı hedeflemek için oluşturulan dosyaların boyutunu kontrol eder |
Tablo biçimini değiştirmek için aşağıdaki kodu kullanın:
Bölümleme ve sıralama
Bir sorgunun hızlı çalışmasını sağlamak için ne kadar az veri okunursa o kadar iyidir. Iceberg, yazma sırasında yakaladığı zengin meta verilerden yararlanır ve tarama planlama, bölümleme, budama gibi teknikleri ve eşleşme kayıtları olmayan veri dosyalarını atlamak için minimum/maks değerler gibi sütun düzeyinde istatistikleri kolaylaştırır. Iceberg'de sorgu tarama planlama ve bölümlemenin nasıl çalıştığını ve bunları sorgu performansını iyileştirmek için nasıl kullandığımızı size gösteriyoruz.
Sorgu tarama planlaması
Belirli bir sorgu için, bir sorgu motorundaki ilk adım, bir sorgu için gerekli olan bir tablodaki dosyaları bulma işlemi olan tarama planlamasıdır. Bir Iceberg tablosunda planlama yapmak çok verimlidir çünkü Iceberg'in zengin meta verileri, eşleşen verileri içermeyen veri dosyalarını filtrelemenin yanı sıra gerekli olmayan meta veri dosyalarını ayıklamak için kullanılabilir. Testlerimizde, Athena'nın Iceberg formatına dönüştürmeden önce orijinal verilere kıyasla bir Iceberg tablosundaki belirli bir sorgu için %50 veya daha az veri taradığını gözlemledik.
İki tür filtreleme vardır:
- Meta veri filtreleme – Iceberg, bir anlık görüntüdeki dosyaları izlemek için iki düzeyde meta veri kullanır: bildirim listesi ve bildirim dosyaları. İlk olarak, bildirim dosyalarının bir dizini gibi davranan bildirim listesini kullanır. Planlama sırasında Iceberg filtreleri, tüm bildirim dosyalarını okumadan bildirim listesindeki bölüm değeri aralığını kullanarak bildirim yapar. Ardından, veri dosyalarını almak için seçilen bildirim dosyalarını kullanır.
- Veri filtreleme – Bildirim dosyalarının listesini seçtikten sonra, Iceberg, veri dosyalarını filtrelemek için bildirim dosyalarında depolanan her veri dosyası için bölüm verilerini ve sütun düzeyi istatistikleri kullanır. Planlama sırasında, sorgu yüklemleri bölüm verilerinde yüklemlere dönüştürülür ve önce veri dosyalarını filtrelemek için uygulanır. Ardından, sütun düzeyi değer sayıları, sıfır sayıları, alt sınırlar ve üst sınırlar gibi sütun istatistikleri, sorgu koşuluyla eşleşmeyen veri dosyalarını filtrelemek için kullanılır. Planlama zamanında veri dosyalarını filtrelemek için üst ve alt sınırları kullanan Iceberg, sorgu performansını büyük ölçüde artırır.
Bölümleme ve sıralama
Bölümleme, aynı anahtar sütun değerlerine sahip kayıtları yazılı olarak gruplandırmanın bir yoludur. Bölümlemenin avantajı, daha önce sorgu tarama planlamasında açıklandığı gibi, verilerin yalnızca bir kısmına erişen daha hızlı sorgulardır: veri filtreleme. Iceberg, Iceberg'in bir sütun değeri alarak ve isteğe bağlı olarak dönüştürerek bölüm değerleri üretmesi gibi, gizli bölümlemeyi destekleyerek bölümlemeyi basitleştirir.
Kullanım durumumuzda, önce aşağıdaki sorguyu bölümlenmemiş Iceberg tablosunda çalıştırıyoruz. Ardından, kayıtları filtrelemek için WHERE koşulunda kullanılacak olan incelemelerin kategorisine göre Iceberg tablosunu bölümlere ayırıyoruz. Bölümleme ile sorgu çok daha az veri tarayabilir. Aşağıdaki koda bakın:
Performans farkını görmek için bölümlenmemiş all_reviews tablosu ile bölümlenmiş tablo üzerinde aşağıdaki seçme deyimini çalıştırın:
Aşağıdaki tablo, yaklaşık %50 performans artışı ve %70 daha az veri taraması ile veri bölümlemenin performans gelişimini göstermektedir.
Veri Kümesi Adı | Bölümlenmemiş Veri Kümesi | Bölümlenmiş Veri Kümesi |
Çalışma süresi (saniye) | 8.20 | 4.25 |
Taranan Veri (MB) | 131.55 | 33.79 |
Çalışma zamanının, testimizde birden fazla çalıştırma içeren ortalama çalışma zamanı olduğunu unutmayın.
Bölümlemeden sonra iyi bir performans artışı gördük. Ancak bu, Iceberg bildirim dosyalarından sütun düzeyinde istatistikler kullanılarak daha da geliştirilebilir. Sütun seviyesindeki istatistikleri etkin bir şekilde kullanmak için, kayıtlarınızı sorgu modellerine göre daha fazla sıralamak istiyorsunuz. Sorgularda sıklıkla kullanılan sütunları kullanarak tüm veri kümesini sıralamak, verileri, her veri dosyası belirli sütunlar için benzersiz bir değer aralığıyla sonuçlanacak şekilde yeniden sıralayacaktır. Bu sütunlar sorgu koşulunda kullanılırsa, sorgu motorlarının veri dosyalarını daha fazla atlamasına ve böylece daha da hızlı sorgulara olanak tanır.
Yazarken kopyala ve birleştirirken oku
Veri gölündeki Iceberg tablolarında güncelleme ve silme uygularken, Iceberg tablo özellikleri tarafından tanımlanan iki yaklaşım vardır:
- Kopya üzerinde yazma – Bu yaklaşımla, Buzdağı tablosunda güncellemeler veya silmeler gibi değişiklikler olduğunda, etkilenen kayıtlarla ilişkili veri dosyaları çoğaltılır ve güncellenir. Kayıtlar ya güncellenecek ya da çoğaltılan veri dosyalarından silinecektir. Buzdağı tablosunun yeni bir anlık görüntüsü oluşturulur ve veri dosyalarının daha yeni sürümünü gösterir. Bu, genel yazma işlemlerini yavaşlatır. Çakışmalarla eşzamanlı yazmaların gerekli olduğu durumlar olabilir, bu nedenle yeniden denemenin gerçekleşmesi gerekir, bu da yazma süresini daha da artırır. Öte yandan, verileri okurken ekstra bir işleme gerek yoktur. Sorgu, veri dosyalarının en son sürümünden veri alacaktır.
- Okurken birleştir – Bu yaklaşımla, Iceberg tablosunda güncellemeler veya silmeler olduğunda, mevcut veri dosyaları yeniden yazılmayacak; bunun yerine değişiklikleri izlemek için yeni silme dosyaları oluşturulacaktır. Silme işlemleri için, silinen kayıtlarla yeni bir silme dosyası oluşturulur. Buzdağı tablosunu okurken, silme kayıtlarını filtrelemek için alınan verilere silme dosyası uygulanacaktır. Güncellemeler için, güncellenen kayıtları silinmiş olarak işaretlemek için yeni bir silme dosyası oluşturulur. Ardından, bu kayıtlar için ancak güncellenmiş değerlerle yeni bir dosya oluşturulacaktır. Buzdağı tablosunu okurken, en son değişiklikleri yansıtmak ve doğru sonuçları üretmek için alınan verilere hem silme hem de yeni dosyalar uygulanacaktır. Bu nedenle, sonraki sorgular için, veri dosyalarını silme ve yeni dosyalarla birleştirmek için fazladan bir adım olacak ve bu genellikle sorgu süresini artıracaktır. Öte yandan, mevcut veri dosyalarının yeniden yazılmasına gerek olmadığı için yazma işlemleri daha hızlı olabilir.
İki yaklaşımın etkisini test etmek için, Buzdağı tablo özelliklerini ayarlamak üzere aşağıdaki kodu çalıştırabilirsiniz:
Yazma üzerine kopyalama ve okuma üzerine birleştirme çalışma zamanı farkını göstermek için Athena'da güncellemeyi çalıştırın, silin ve SQL deyimlerini seçin:
Aşağıdaki tablo, sorgu çalışma zamanlarını özetlemektedir.
Sorgu | Yazma Üzerine Kopyalama | Okurken Birleştir | ||||
GÜNCELLEME | SİL | SEÇİN | GÜNCELLEME | SİL | SEÇİN | |
Çalışma süresi (saniye) | 66.251 | 116.174 | 97.75 | 10.788 | 54.941 | 113.44 |
Taranan veri (MB) | 494.06 | 3.07 | 137.16 | 494.06 | 3.07 | 137.16 |
Çalışma zamanının, testimizde birden fazla çalıştırma içeren ortalama çalışma zamanı olduğunu unutmayın.
Test sonuçlarımızın gösterdiği gibi, iki yaklaşımda her zaman ödünleşimler vardır. Hangi yaklaşımın kullanılacağı kullanım durumlarınıza bağlıdır. Özetle, dikkate alınması gerekenler okuma ve yazma arasındaki gecikmedir. Aşağıdaki tabloyu referans alarak doğru seçimi yapabilirsiniz.
. | Yazma Üzerine Kopyalama | Okurken Birleştir |
Artılar | Daha hızlı okuma | Daha hızlı yazma |
Eksiler | pahalı yazılar | Okumalarda daha yüksek gecikme |
Ne zaman kullanılır? | Sık okumalar, seyrek güncellemeler ve silmeler veya büyük toplu güncellemeler için iyi | Sık güncellenen ve silinen tablolar için iyi |
Veri sıkıştırma
Veri dosyanızın boyutu küçükse, bir Buzdağı tablosunda binlerce veya milyonlarca dosyanız olabilir. Bu, G/Ç işlemini önemli ölçüde artırır ve sorguları yavaşlatır. Ayrıca Iceberg, bir veri kümesindeki her veri dosyasını izler. Daha fazla veri dosyası, daha fazla meta veriye yol açar. Bu da meta veri dosyalarını okurken ek yükü ve G/Ç işlemini artırır. Sorgu performansını iyileştirmek için küçük veri dosyalarının daha büyük veri dosyalarına sıkıştırılması önerilir.
Iceberg tablosundaki kayıtları güncellerken ve silerken, birleştirerek oku yaklaşımı kullanılırsa, birçok küçük silme işlemi veya yeni veri dosyası elde edebilirsiniz. Sıkıştırmayı çalıştırmak, tüm bu dosyaları birleştirecek ve veri dosyasının daha yeni bir sürümünü oluşturacaktır. Bu, okumalar sırasında bunları uzlaştırma ihtiyacını ortadan kaldırır. Daha hızlı yazma hızını korurken okumaları olabildiğince az etkilemek için düzenli sıkıştırma işlerinin olması önerilir.
Aşağıdaki veri sıkıştırma komutunu çalıştırın, ardından Athena'dan seçme sorgusunu çalıştırın:
Aşağıdaki tablo, veri sıkıştırmadan önceki ve sonraki çalışma zamanını karşılaştırır. Yaklaşık %40 performans artışı görebilirsiniz.
Sorgu | Veri Sıkıştırmadan Önce | Veri Sıkıştırmadan Sonra |
Çalışma süresi (saniye) | 97.75 | 32.676 saniye |
Taranan veri (MB) | 137.16 M | 189.19 M |
Seçme sorgularının çalıştırıldığına dikkat edin. all_reviews
güncelleme ve silme işlemlerinden sonra tablo, veri sıkıştırmadan önce ve sonra. Çalışma süresi, testimizde birden çok çalıştırma içeren ortalama çalışma süresidir.
Temizlemek
Kullanım örneklerini gerçekleştirmek için çözüm kılavuzunu izledikten sonra, kaynaklarınızı temizlemek ve daha fazla maliyetten kaçınmak için aşağıdaki adımları tamamlayın:
- AWS Glue tablolarını ve veritabanını Athena'dan bırakın veya not defterinizde aşağıdaki kodu çalıştırın:
- EMR Studio konsolunda, Çalışma Alanları Gezinti bölmesinde.
- Oluşturduğunuz Çalışma Alanını seçin ve seçin Sil.
- EMR konsolunda şuraya gidin: stüdyolar gidin.
- Oluşturduğunuz Studio'yu seçin ve seçin Sil.
- EMR konsolunda, Kümeleri Gezinti bölmesinde.
- Kümeyi seçin ve seçin bitirmek.
- Bu gönderinin ön koşullarının bir parçası olarak oluşturduğunuz S3 klasörünü ve diğer kaynakları silin.
Sonuç
Bu gönderide, Apache Iceberg çerçevesini ve bunun modern bir veri gölünde karşılaştığımız bazı zorlukları çözmeye nasıl yardımcı olduğunu tanıttık. Ardından, Apache Iceberg kullanarak bir veri gölündeki artımlı verileri işlemek için bir çözüm önerdik. Son olarak, kullanım durumlarımız için okuma ve yazma performansını iyileştirmek amacıyla performans ayarına derinlemesine daldık.
Umarız bu gönderi, veri gölü çözümünüzde Apache Iceberg'i kullanmak isteyip istemediğinize karar vermeniz için bazı yararlı bilgiler sağlar.
Yazarlar Hakkında
bitki örtüsü AWS Data Lab'de Kıdemli Yerleşik Mimardır. Kurumsal müşterilerin veri analitiği stratejileri oluşturmasına ve işletme sonuçlarını hızlandırmak için çözümler oluşturmasına yardımcı olur. Boş zamanlarında tenis oynamaktan, salsa yapmaktan ve seyahat etmekten hoşlanıyor.
Daniel Li Amazon Web Services'ta Kıdemli Çözüm Mimarıdır. Müşterilerin bulut hizmetlerini ve stratejisini geliştirmesine, benimsemesine ve uygulamasına yardımcı olmaya odaklanır. Çalışmıyorken ailesiyle dışarıda vakit geçirmeyi seviyor.
- SEO Destekli İçerik ve Halkla İlişkiler Dağıtımı. Bugün Gücünüzü Artırın.
- Plato blok zinciri. Web3 Metaverse Zekası. Bilgi Güçlendirildi. Buradan Erişin.
- Kaynak: https://aws.amazon.com/blogs/big-data/use-apache-iceberg-in-a-data-lake-to-support-incremental-data-processing/
- 10
- 100
- 11
- 2022
- 2023
- 7
- 9
- a
- Yapabilmek
- Hakkımızda
- yukarıdaki
- hızlandırmak
- erişim
- erişim yönetimi
- Action
- eylemler
- ilave
- Ek
- adres
- adresleri
- Ekler
- benimsemek
- avantaj
- Sonra
- karşı
- Türkiye
- veriyor
- her zaman
- Amazon
- Amazon EMR'si
- Amazon Web Servisleri
- Analitik
- analytics
- ve
- açıkladı
- Apache
- uygulamaları
- uygulamalı
- yaklaşım
- yaklaşımlar
- uygun
- mimari
- ilişkili
- Doğrulama
- kullanılabilirliği
- mevcut
- ortalama
- önlemek
- AWS
- AWS Tutkal
- merkezli
- Çünkü
- müşterimiz
- önce
- yarar
- Daha iyi
- arasında
- büyük
- Çizme atkısı
- inşa etmek
- bina
- işletmeler
- yakalar
- Yakalama
- dava
- durumlarda
- katalog
- kataloglar
- Kategoriler
- zorluklar
- değişiklik
- değişiklikler
- Kontrol
- seçim
- Klinik
- sınıflandırma
- bulut
- bulut hizmetleri
- Küme
- kod
- Sütun
- Sütunlar
- birleştirmek
- nasıl
- işlemek
- karşılaştırıldığında
- tamamlamak
- hesaplamak
- eşzamanlı
- koşul
- konfigürasyonları
- hususlar
- konsolos
- Dönüştürme
- dönüştürülmüş
- uygun maliyetli
- maliyetler
- olabilir
- yaratmak
- çevrimiçi kurslar düzenliyorlar.
- oluşturur
- küratörlüğünü
- akım
- müşteri
- Müşteriler
- Dans
- gösterge paneli
- veri
- Veri Analizi
- Veri Gölü
- veri işleme
- veri ambarı
- veritabanı
- veri kümeleri
- derin
- derin dalış
- Varsayılan
- tanımlı
- Gösteri
- göstermek
- bağlıdır
- tasarlanmış
- ayrıntılar
- geliştirmek
- gelişme
- fark
- farklı
- tartışmak
- Dont
- aşağı
- dramatik
- Damla
- sırasında
- her
- Daha erken
- Erken
- editör
- etkili bir şekilde
- verimli
- ya
- ortadan kaldırır
- etkin
- etkinleştirme
- uçları
- Motor
- Motorlar
- Keşfet
- kuruluş
- kurumsal müşteriler
- Eter (ETH)
- Hatta
- evrim
- gelişmek
- gelişen
- örnek
- mevcut
- var
- açıkladı
- uzantıları
- ekstra
- kolaylaştırır
- aile
- HIZLI
- Daha hızlı
- Özellikler
- şekil
- fileto
- dosyalar
- filtre
- süzme
- filtreler
- Nihayet
- bulmak
- Ad
- ilk kez
- odaklanır
- takip et
- takip etme
- biçim
- iskelet
- sık
- itibaren
- daha fazla
- Ayrıca
- genel
- oluşturulan
- almak
- verilmiş
- Goes
- Tercih Etmenizin
- çok
- grup
- el
- olmak
- yardım et
- yardım
- yardımcı olur
- Gizli
- hiyerarşi
- üst düzey
- yüksek performans
- yüksek performans
- kovan
- umut
- Ne kadar
- Nasıl Yapılır
- Ancak
- HTML
- HTTPS
- IAM
- Kimlik
- kimlik ve erişim yönetimi
- darbe
- etkiledi
- uygulamak
- uygulama
- uygulanması
- iyileştirmek
- gelişmiş
- iyileşme
- geliştirir
- in
- Dahil olmak üzere
- Artırmak
- artmış
- Artışlar
- indeks
- bireysel
- bilgi
- kurmak
- yerine
- bütünleşme
- tanıttı
- İzolatlar
- IT
- Ocak
- Mesleki Öğretiler
- anahtar
- laboratuvar
- göl
- büyük
- büyük
- Gecikme
- son
- En son sürüm
- tabaka
- katmanları
- öncülük etmek
- seviyeleri
- LİMİT
- çizgi
- Liste
- küçük
- yük
- yer
- yapmak
- YAPAR
- yönetim
- çok
- işaret
- çarşı
- Maç
- uygun
- gitmek
- Metadata
- olabilir
- milyonlarca
- Modern
- Daha
- hareket
- çoklu
- isim
- adlı
- Gezin
- Navigasyon
- gerek
- gerekli
- ihtiyaçlar
- yeni
- defter
- nesne
- açık
- operasyon
- Operasyon
- optimizasyon
- optimize
- sipariş
- orijinal
- Diğer
- açık havada
- tüm
- kendi
- bölmesi
- Bölüm
- yol
- desen
- yapmak
- performans
- fiziksel
- planlama
- Platon
- Plato Veri Zekası
- PlatoVeri
- oynama
- fişe takmak
- noktaları
- Popüler
- mümkün
- Çivi
- powered
- önkoşullar
- prosedürler
- süreç
- işleme
- üretmek
- özellikleri
- özellik
- sağlamak
- sağlar
- sağlama
- hüküm
- menzil
- Çiğ
- işlenmemiş veri
- Okumak
- Okuma
- gerçek
- geçenlerde
- Tavsiye edilen
- kayıtlar
- yansıtmak
- bölge
- kayıtlar
- düzenli
- serbest
- serbest
- kalan
- gereklidir
- gerektirir
- Kaynaklar
- sonuç
- Sonuçlar
- Yorumları
- Zengin
- Rol
- kök
- koşmak
- koşu
- aynı
- taramak
- saniye
- Bölüm
- güvenlik
- seçilmiş
- seçme
- Serverless
- hizmet
- Hizmetler
- Oturum
- set
- Setleri
- ayar
- ayarlar
- meli
- şov
- Gösteriler
- Basit
- durumlar
- beden
- yavaşlatır
- küçük
- Enstantane fotoğraf
- So
- Software
- çözüm
- Çözümler
- biraz
- Kıvılcım
- özel
- hız
- Harcama
- SQL
- XNUMX dakika içinde!
- Eyalet
- Açıklama
- ifadeleri
- istatistikler
- adım
- Basamaklar
- Yine
- hafızası
- mağaza
- saklı
- mağaza
- stratejileri
- Stratejileri
- yapılandırılmış
- yapılandırılmış ve yapılandırılmamış veriler
- stüdyo
- alt
- sonraki
- Başarılı olarak
- böyle
- yeterli
- ÖZET
- destek
- destekli
- Destek
- Destekler
- tablo
- alır
- alma
- Hedef
- görevleri
- teknikleri
- tenis
- test
- Test yapmak
- testleri
- The
- Bilgi
- Devlet
- ve bazı Asya
- böylece
- Binlerce
- üç
- İçinden
- zaman
- zaman yolculuğu
- için
- birlikte
- çok
- araçlar
- üst
- Toplam
- iz
- işlemler
- dönüşüm
- seyahat
- Seyahat
- DÖNÜŞ
- türleri
- altında
- benzersiz
- Güncelleme
- güncellenmiş
- Güncellemeler
- güncellenmesi
- URL
- kullanım
- kullanım durumu
- kullanıcılar
- genellikle
- VAL
- değer
- Değerler
- doğrulamak
- versiyon
- yürüdü
- örneklerde
- depo
- saatler
- yolları
- ağ
- web hizmetleri
- Ne
- olup olmadığını
- hangi
- süre
- geniş
- Geniş ürün yelpazesi
- irade
- olmadan
- İş
- çalışma
- çalışır
- olur
- yazmak
- yazı yazıyor
- zefirnet