Zephyrnet Logosu

AWS Glue Data Catalog sütun düzeyindeki istatistikleri kullanarak sorgu performansını artırın | Amazon Web Hizmetleri

Tarih:

Bugün, yeni bir yeteneği kullanıma sunuyoruz: AWS Tutkal Veri Kataloğu AWS Glue tabloları için sütun düzeyinde istatistikler oluşturulmasına olanak tanır. Bu istatistikler artık maliyete dayalı optimize ediciler (CBO) ile entegre edilmiştir. Amazon Atina ve Amazon kırmızıya kayma spektrumuBu da gelişmiş sorgu performansı ve potansiyel maliyet tasarrufu sağlar.

Veri gölleri, büyük miktarlarda ham, yapılandırılmamış veya yarı yapılandırılmış verileri düşük maliyetle depolamak için tasarlanmıştır ve kuruluşlar bu veri kümelerini birden fazla departman ve ekip arasında paylaşır. Bu büyük veri kümelerindeki sorgular çok büyük miktarda veriyi okur ve birden çok veri kümesi üzerinde karmaşık birleştirme işlemleri gerçekleştirebilir. Müşterilerimizle konuşurken, veri gölü performansının zorlu yönlerinden birinin, bu analiz sorgularının daha hızlı yürütülecek şekilde nasıl optimize edileceği olduğunu öğrendik.

Veri gölü performans optimizasyonu, birden çok birleştirme içeren sorgular için özellikle önemlidir ve maliyet tabanlı optimizasyon araçlarının en çok yardımcı olduğu yer burasıdır. CBO'nun çalışabilmesi için sütun istatistiklerinin toplanması ve verilerdeki değişikliklere göre güncellenmesi gerekir. AWS Glue tablolarındaki Parquet, ORC, JSON, Amazon ION, CSV, XML gibi dosyalar üzerinde farklı sayı, boş değer sayısı, maksimum ve minimum gibi sütun düzeyinde istatistikler oluşturma özelliğini kullanıma sunuyoruz. Bu lansmanla birlikte müşteriler artık Glue tablolarındaki istatistiklerin toplanıp AWS Glue Katalogunda depolandığı ve gelişmiş sorgu planlaması ve yürütülmesi için analiz hizmetlerinin kullanımına sunulduğu entegre uçtan uca deneyime sahip olacak.

Maliyet tabanlı optimize ediciler bu istatistikleri kullanarak sorgu çalıştırma planlarını iyileştirir ve Amazon Athena ve Amazon Redshift Spectrum'da çalıştırılan sorguların performansını artırır. Örneğin CBO, satır tahminini geliştirmek için farklı değerlerin sayısı ve boş değerlerin sayısı gibi sütun istatistiklerini kullanabilir. Satır tahmini, sorgu planlama aşamasında belirli bir adımla döndürülecek bir tablodaki satır sayısıdır. Satır tahminleri ne kadar doğru olursa sorgu yürütme adımları da o kadar verimli olur. Bu, sorgunun daha hızlı yürütülmesine ve potansiyel olarak maliyetin azalmasına yol açar. CBO'nun kullanabileceği belirli optimizasyonlardan bazıları, her tablo ve sütun için mevcut istatistiklere dayalı olarak birleştirmelerin yeniden sıralanması ve aşağı itilmesidir.

kullanan müşteriler için veri ağı ile AWS Göl Oluşumu izinler, farklı veri üreticilerinin tabloları merkezi yönetim hesaplarında kataloglanır. Merkezi katalogdaki tablolara ilişkin istatistikler oluşturdukça ve bu tabloları tüketicilerle paylaştıkça, tüketici hesaplarındaki bu tablolara yapılan sorgularda sorgu performansında otomatik iyileştirmeler görülecektir. Bu yazıda AWS Glue Data Catalog'un örnek tablolarımız için sütun istatistikleri oluşturma yeteneğini göstereceğiz.

Çözüme genel bakış

Bu yeteneğin etkinliğini göstermek için Amazon Basit Depolama Hizmetinde depolanan endüstri standardı TPC-DS 3 TB veri kümesini kullanıyoruz (Amazon S3) genel kova. Amazon Athena ve Amazon Redshift Spectrum'da sorgular çalıştırarak tablolar için sütun istatistiklerini oluşturmadan önceki ve sonraki sorgu performansını karşılaştıracağız. Bu yazıda kullandığımız sorguları sağlıyoruz ve aşağıdaki ayrıntılarda gösterildiği gibi iş akışını izleyerek kendi sorgularınızı denemenizi öneririz.

İş akışı aşağıdaki üst düzey adımlardan oluşur:

  1. Amazon S3 Kovasının Kataloglanması: Belirlenen Amazon S3 klasörünü taramak, meta verileri çıkarmak ve bunları AWS Glue veri kataloğunda sorunsuz bir şekilde depolamak için AWS Glue Crawler'ı kullanın. Bu tabloları Amazon Athena ve Amazon Redshift Spectrum'u kullanarak sorgulayacağız.
  2. Sütun istatistiklerinin oluşturulması: Taranan veriler için kapsamlı sütun istatistikleri oluşturmak ve böylece veri kümesine ilişkin değerli bilgiler sağlamak için AWS Glue Data Catalog'un gelişmiş özelliklerinden yararlanın.
  3. Amazon Athena ve Amazon Redshift Spectrum ile sorgulama: Veri kümesinde sorgu yürütmek için Amazon Athena ve Amazon Redshift Spectrum'u kullanarak sütun istatistiklerinin sorgu performansı üzerindeki etkisini değerlendirin.

Aşağıdaki şemada çözüm mimarisi gösterilmektedir.

Walkthrough

Çözümü uygulamak için aşağıdaki adımları tamamlıyoruz:

  1. ile kaynakları kurun AWS CloudFormation.
  2. 3 TB TPC-DS veri kümesini listelemek için Genel Amazon S3 klasöründe AWS Glue Crawler'ı çalıştırın.
  3. Amazon Athena ve Amazon Redshift'te sorgu çalıştırın ve sorgu süresini not edin
  4. AWS Glue Data Catalog tabloları için istatistikler oluşturun
  5. Amazon Athena ve Amazon Redshift'te sorgu çalıştırın ve sorgu süresini önceki çalıştırmayla karşılaştırın
  6. İsteğe bağlı: AWS Lambda ve Amazon EventBridge Planlayıcı'yı kullanarak AWS Glue sütunu istatistik işlerini planlayın

AWS CloudFormation ile kaynakları ayarlayın

Bu gönderi bir içerir AWS CloudFormation hızlı kurulum için şablon. İhtiyaçlarınıza göre inceleyebilir ve özelleştirebilirsiniz. Şablon aşağıdaki kaynakları oluşturur:

  • Bir Amazon Sanal Özel Bulut (Amazon VPC'si), genel alt ağ, özel alt ağlar ve rota tabloları.
  • Amazon Redshift Sunucusuz çalışma grubu ve ad alanı.
  • Genel Amazon S3 klasörünü tarayan ve TPC-DS veri kümesi için Glue Data Catalog'a yönelik bir tablo oluşturan bir AWS Glue tarayıcısı
  • AWS Glue kataloğu veritabanları ve tabloları
  • Athena sonucunu depolamak için bir Amazon S3 klasörü.
  • AWS Kimlik ve Erişim Yönetimi (AWS IAM) kullanıcıları ve politikaları.
  • AWS Glue Column istatistiklerini planlamak için AWS Lambda ve Amazon Event Bridge planlayıcısı

AWS CloudFormation yığınını başlatmak için aşağıdaki adımları tamamlayın:

not: AWS Glue veri kataloğu tabloları genel klasör kullanılarak oluşturulur s3://blogpost-sparkoneks-us-east-1/blog/BLOG_TPCDS-TEST-3T-partitioned/, barındırılan us-east-1 bölge. Bu AWS CloudFormation şablonunu farklı bir bölgede dağıtmayı düşünüyorsanız Amazon Redshift'ten erişilebilmesi için verileri ilgili bölgeye kopyalamanız veya dağıtılan bölgenizdeki verileri paylaşmanız gerekir.

  1. giriş yapın AWS Yönetim Konsolu AWS Kimlik ve Erişim Yönetimi olarak (AWS IAM) Yönetici.
  2. AWS CloudFormation şablonunu dağıtmak için Yığın Başlat'ı seçin.
  3. Klinik Sonraki.
  4. Bir sonraki sayfada tüm seçeneği varsayılan olarak bırakın veya gereksiniminize göre uygun değişiklikleri yapın Sonraki.
  5. Son sayfadaki ayrıntıları gözden geçirin ve AWS CloudFormation'ın IAM kaynakları oluşturabileceğini kabul ediyorum.
  6. Klinik oluşturmak.

Bu yığının tamamlanması yaklaşık 10 dakika sürebilir ve ardından dağıtılan yığını AWS CloudFormation konsolunda görüntüleyebilirsiniz.

AWS CloudFormation yığını tarafından oluşturulan AWS Glue Crawler'ları çalıştırın

Tarayıcılarınızı çalıştırmak için aşağıdaki adımları tamamlayın:

  1. AWS Glue konsolunda AWS Tutkal KonsoluGezinti bölmesinde Veri Kataloğu altında Tarayıcılar'ı seçin.
  2. İki tarayıcıyı bulun ve çalıştırın tpcdsdb-without-stats ve tpcdsdb-with-stats. Tamamlanması birkaç dakika sürebilir.

Tarayıcı başarıyla tamamlandığında iki özdeş veritabanı oluşturur tpcdsdbnostats ve tpcdsdbwithstats. İçindeki tablolar tpcdsdbnostats İstatistikleri olmayacak ve bunları referans olarak kullanacağız. Tablolarda istatistikler üretiyoruz tpcdsdbwithstats. Lütfen AWS Glue Konsolundan bu iki veritabanına ve temel tablolara sahip olduğunuzu doğrulayın. Tpcdsdbnostats veritabanı aşağıdaki gibi görünecektir. Şu anda bu tablolarda herhangi bir istatistik oluşturulmamaktadır.

İstatistik içermeyen tablolarda Amazon Athena'yı kullanarak sağlanan sorguyu çalıştırın

Sorgunuzu Amazon Athena'da istatistikleri olmayan tablolarda çalıştırmak için aşağıdaki adımları tamamlayın:

  1. Athena sorgularını şuradan indirin: .
  2. Amazon'da Athena Konsolu, veritabanındaki tablolar için sağlanan sorguyu teker teker seçin tpcdsdbnostats.
  3. Sorguyu çalıştırın ve not edin Çalışma süresi her sorgu için.

İstatistik içermeyen tablolarda Amazon Redshift Spectrum'u kullanarak sağlanan sorguyu çalıştırın

Sorgunuzu Amazon Redshift'te çalıştırmak için aşağıdaki adımları tamamlayın:

  1. Amazon Redshift sorgularını şuradan indirin: okuyun.
  2. Üzerinde Redshift sorgu düzenleyicisi v2, yürütmek İstatistikleri olmayan tablolar için Redshift Sorgusu İndirilen sorgunun bölümü.
  3. Sorguyu çalıştırın ve her sorgunun sorgu yürütülmesini not edin.

AWS Glue Catalog tablolarında istatistikler oluşturun

AWS Glue Catalog tablolarına ilişkin istatistikler oluşturmak için aşağıdaki adımları tamamlayın:

  1. gidin AWS Tutkal Konsolu ve altındaki veritabanlarını seçin Veri Kataloğu.
  2. Tıklayın tpcdsdbwithstats veritabanı ve mevcut tüm tabloları listeleyecektir.
  3. Bu tablolardan herhangi birini seçin (örn. call_center).
  4. MyCAD'de yazılım Güncelleme ye git Sütun istatistikleri – yeni sekme ve seçim İstatistikler oluşturun.
  5. Varsayılan seçeneği koruyun. Altında Sütunları seç tutmak Tablo (Tüm sütunlar) ve altında Satır örnekleme seçenekleri tutmak Tüm satırlar, Altında IAM rol seçimi AWSGluestats-blogu seçin İstatistikler oluşturun.

Aşağıdaki çizimde gösterildiği gibi istatistik oluşturma çalıştırmasının durumunu görebileceksiniz:

AWS Glue Catalog tablolarında istatistikler oluşturduktan sonra o tabloya ilişkin ayrıntılı sütun istatistiklerini görebilmeniz gerekir:

Aşağıdakiler gibi gerekli tüm tablolar için istatistikler oluşturmak amacıyla 2-5 arasındaki adımları yineleyin: catalog_sales, catalog_returns, warehouse, item, date_dim, store_sales, customer, customer_address, web_sales, time_dim, ship_mode, web_site, web_returns. Alternatif olarak “AWS Glue İstatistik Çalıştırmalarını PlanlamaTüm tablolara ilişkin istatistikler oluşturmak için bu blogun sonuna yakın bir yer. İşiniz bittiğinde, her sorgu için sorgu performansını değerlendirin.

Sağlanan sorguyu istatistik tablolarında Athena Konsolu'nu kullanarak çalıştırın

  1. Amazon'da Athena konsolu, yürütmek İstatistik içeren tablolar için Athena Sorgusu İndirilen sorgunun bölümü.
  2. Çalıştırın ve her sorgunun sorgu yürütmesini not edin.

Tablolardaki sorguları örnek çalışmamızda aşağıdaki tabloya göre sorgu yürütme süresini gözlemledik. Sorgu performansında %13 ile %55 arasında değişen net bir iyileşme gördük.

Athena sorgu süresi iyileştirmesi

TPC-DS 3T Sorguları tutkal istatistikleri olmadan (sn) tutkal istatistikleriyle (sn) performans iyileştirme (%)
Sorgu 2 33.62 15.17 %55
Sorgu 4 132.11 72.94 %45
Sorgu 14 134.77 91.48 %32
Sorgu 28 55.99 39.36 %30
Sorgu 38 29.32 25.58 %13

Sağlanan sorguyu istatistik tablolarında Amazon Redshift Spectrum'u kullanarak çalıştırın

  1. Amazon'da Redshift sorgu düzenleyicisi v2, yürütmek İstatistik içeren tablolar için Redshift Sorgusu İndirilen sorgunun bölümü.
  2. Sorguyu çalıştırın ve her sorgunun sorgu yürütülmesini not edin.

Tablolardaki sorguları örnek çalışmamızda aşağıdaki tabloya göre sorgu yürütme süresini gözlemledik. Sorgu performansında %13 ile %89 arasında değişen net bir iyileşme gördük.

Amazon Redshift Spectrum sorgu süresinde iyileştirme

TPC-DS 3T Sorguları tutkal istatistikleri olmadan (sn) tutkal istatistikleriyle (sn) performans iyileştirme (%)
Sorgu 40 124.156 13.12 %89
Sorgu 60 29.52 16.97 %42
Sorgu 66 18.914 16.39 %13
Sorgu 95 308.806 200 %35
Sorgu 99 20.064 16 %20

AWS Glue istatistikleri Çalıştırmalarını planlayın

Gönderinin bu bölümünde, aşağıdakileri kullanarak AWS Glue sütun istatistikleri çalıştırmalarını planlama adımları konusunda size yol göstereceğiz: AWS Lambda ve Amazon EventBridge Zamanlayıcı. Bu süreci kolaylaştırmak için CloudFormation yığın dağıtımının bir parçası olarak bir AWS Lambda işlevi ve bir Amazon EventBridge planlayıcı oluşturuldu.

  1. AWS Lambda işlevi kurulumu:

Başlangıç ​​olarak, AWS Glue sütunu istatistik işinin yürütülmesini tetiklemek için bir AWS Lambda işlevi kullanıyoruz. AWS Lambda işlevi şunu çağırır: start_column_statistics_task_run Boto3 (Python için AWS SDK) kitaplığı aracılığıyla API. Bu, sütun istatistikleri güncellemesini otomatikleştirmenin temelini oluşturur.

AWS Lambda işlevini inceleyelim:

    • Git AWS Glue Lambda Konsolu.
    • seç fonksiyonlar ve bulun GlueTableStatisticsFunctionv1.
    • AWS Lambda işlevinin daha net anlaşılması için aşağıdaki kodu incelemenizi öneririz: Kod bölümünde ortam değişkenlerinin incelenmesi yapılandırma.
  1. Amazon EventBridge planlayıcı yapılandırması

Bir sonraki adım, Amazon'u kullanarak AWS Lambda işlevinin çağrılmasını planlamayı içerir. EventBridge Zamanlayıcı. Planlayıcı, AWS Lambda işlevini günlük olarak belirli bir saatte (bu durumda 08:00) tetikleyecek şekilde yapılandırılmıştır. Bu, AWS Glue sütunu istatistik işinin düzenli ve öngörülebilir bir şekilde çalışmasını sağlar.

Şimdi programı nasıl güncelleyebileceğinizi keşfedelim:

Temizlemek

AWS hesabınızdan istenmeyen ücretler alınmasını önlemek için AWS kaynaklarını silin:

  1. AWS CloudFormation yığınını oluşturmak için kullanılan AWS IAM yöneticisi olarak AWS CloudFormation konsolunda oturum açın.
  2. Oluşturduğunuz AWS CloudFormation yığınını silin.

Sonuç

Bu yazımızda size nasıl kullanabileceğinizi gösterdik. AWS Tutkal Veri Kataloğu sütun düzeyinde istatistikler oluşturmak için AWS Tutkal tablolar. Bu istatistikler artık maliyet tabanlı optimize ediciyle entegre edilmiştir. Amazon Atina ve Amazon kırmızıya kayma spektrumuBu da gelişmiş sorgu performansı ve potansiyel maliyet tasarrufu sağlar. Bakınız Dokümanlar Çeşitli AWS analitik hizmetlerinde Tutkal Katalog İstatistikleri desteği için.

Sorularınız veya önerileriniz varsa, bunları yorumlar bölümünde gönderin.


Yazarlar Hakkında

Sandeep Adwankar AWS'de Kıdemli Teknik Ürün Müdürüdür. California Bay Area'da yerleşik olarak, iş ve teknik gereksinimleri, müşterilerin verileri yönetme, güvenlik altına alma ve verilere erişme yöntemlerini geliştirmelerini sağlayan ürünlere dönüştürmek için dünyanın dört bir yanındaki müşterilerle birlikte çalışır.

Navnit Şukla Analitik odaklı bir AWS Uzman Çözüm Mimarı olarak hizmet vermektedir. Müşterilerin verilerinden değerli içgörüler keşfetmelerine yardımcı olma konusunda güçlü bir istek duyuyor. Uzmanlığı sayesinde işletmelerin bilinçli, veri odaklı seçimlere ulaşmasını sağlayan yenilikçi çözümler üretiyor. Navnit Shukla'nın AWS'de Data Wrangling adlı kitabın başarılı yazarı olması dikkat çekicidir. Kendisine şu adresten ulaşılabilir:  LinkedIn.

spot_img

En Son İstihbarat

spot_img