Zephyrnet Logosu

Apache Airflow sürüm 2.7.2 ve ertelenebilir operatörler için Amazon MWAA desteğiyle tanışın | Amazon Web Hizmetleri

Tarih:

Apache Airflow için Amazon Tarafından Yönetilen İş Akışı (Amazon MWAA), tanıdık bir hizmeti kullanmanıza olanak tanıyan yönetilen bir hizmettir Apache Hava Akışı Temel altyapıyı yönetmenin operasyonel yükü olmadan iş akışlarınızı geliştirmek ve ölçeklendirmek için iyileştirilmiş ölçeklenebilirlik, kullanılabilirlik ve güvenliğe sahip bir ortam.

Bugün, Apache Airflow sürüm 2.7.2 ortamlarının kullanılabilirliğini ve Amazon MWAA'da ertelenebilir operatörlere yönelik desteği duyuruyoruz. Bu yazımızda şunlara genel bir bakış sunuyoruz: ertelenebilir operatörler ve tetikleyicilerbunların nasıl kullanılacağını gösteren bir örneğin gözden geçirilmesi de dahil. Ayrıca Apache Airflow'un bazı yeni özelliklerini ve yeteneklerini ve Amazon MWAA ortamınızı nasıl kurabileceğinizi veya sürüm 2.7.2'ye nasıl yükseltebileceğinizi de ele alıyoruz.

Ertelenebilir operatörler ve tetikleyiciler

Standart operatörler ve sensörler, aktif veya boşta olmalarına bakılmaksızın sürekli olarak Airflow çalışan yuvasını işgal eder. Örneğin harici bir sistemin bir işi tamamlaması beklenirken bile çalışan yuvası tüketilir. Aşağıdaki Gantt şeması, bir Yönlendirilmiş döngüsüz grafiği (DAG), bu senaryoyu birden fazla araçla sergiliyor Amazon Kırmızıya Kaydırma işlemleri.

DAG boşta kalma süresini temsil eden Gantt grafiği

Redshift kümesinin oluşturulmasını, anlık görüntüsünün alınmasını ve duraklatılmasını beklerken her görevin boşta harcadığı süreyi görebilirsiniz. Apache Airflow 2.2'de ertelenebilir operatörlerin kullanıma sunulmasıyla birlikte, çalışan yuvasının verimli kullanımını sağlamak için yoklama sürecinin yükü kaldırılabilir. Ertelenebilir bir operatör, sürekli olarak bir çalışan yuvasını işgal etmek yerine, kendisini askıya alabilir ve harici iş tamamlandığında devam edebilir. Bu, sıradaki görevleri en aza indirir ve Amazon MWAA ortamınızdaki kaynakların daha verimli kullanılmasına olanak tanır. Aşağıdaki şekilde süreç akışını açıklayan basitleştirilmiş bir diyagram gösterilmektedir.

Bir görev, çalışmasını erteledikten sonra, çalışan yuvasını serbest bırakır ve tamamlanma kontrolünü, adı verilen küçük bir eşzamansız kod parçasına atar. tetikleyebilir. Tetikleyici, adı verilen bir ana süreçte çalışır. tetikleyiciçalıştıran bir hizmettir Asyncio olay döngüsü. Tetikleyici, tetikleyicileri belirli ölçekte paralel olarak çalıştırma ve bir koşul karşılandığında görevlerin devam etmesi için sinyal verme yeteneğine sahiptir.

The Amazon sağlayıcı paketi Apache Airflow için aşağıdakiler gibi popüler AWS hizmetleri için tetikleyiciler eklendi: AWS Tutkal ve Amazon EMR'si. Apache Airflow v2.7.2 çalıştıran Amazon MWAA ortamlarında, tetikleyici hizmetinin yönetimi ve çalıştırılması sizin yerinize gerçekleştirilir. Tetikleyici hizmetini kullanmamayı tercih ederseniz yapılandırmayı değiştirebilirsiniz. mwaa.triggerer_enabled. Ek olarak, yapılandırma parametresini kullanarak her bir tetikleyicinin paralel olarak kaç tetikleyici çalıştırabileceğini tanımlayabilirsiniz. triggerer.default_capacity. Bu parametre varsayılan olarak Amazon MWAA ortam sınıfınıza dayalı değerlere ayarlanır. Bakın Yapılandırma referansı ayrıntılı yapılandırma değerleri için Kullanım Kılavuzu'nda.

Ertelenebilir işleçler ne zaman kullanılır?

Ertelenebilir operatörler, işleri Amazon EMR, AWS Glue ve Amazon MWAA ortamı dışındaki sistemlere gönderen görevler için özellikle kullanışlıdır. Amazon Adaçayı Yapıcıveya belirli bir olayın gerçekleşmesini bekleyen diğer sensörler. Bu görevlerin tamamlanması dakikalar ila saatler sürebilir ve esas olarak boşta kalan operatörlerdir, bu da onları ertelenebilir sürümleriyle değiştirilmeye iyi adaylar haline getirir. Bazı ek kullanım durumları şunları içerir:

  • Dosya sistemi tabanlı işlemler.
  • Uzun süren sorgularla veritabanı işlemleri.

Amazon MWAA'da ertelenebilir operatörleri kullanma

Amazon MWAA'da ertelenebilir operatörleri kullanmak için Amazon MWAA ortamınızda Apache Airflow sürüm 2.7 veya üzerini çalıştırdığınızdan ve DAG'lerinizdeki operatörlerin veya sensörlerin ertelemeyi desteklediğinden emin olun. Amazon sağlayıcı paketindeki operatörler bir deferrable Operatörü eşzamansız modda çalıştırmak için True olarak ayarlayabileceğiniz parametre. Örneğin, kullanabilirsiniz S3KeySensor asenkron modda aşağıdaki gibi:

wait_for_source_data = S3KeySensor (
task_id="WaitForSourceData",
bucket_name="source_bucket_name",
bucket_key = "object_key",
aws_conn_id="aws_default",
deferrable=True
)

Ayrıca diğer sağlayıcı paketlerinde bulunan, önceden oluşturulmuş çeşitli ertelenebilir operatörlerden de yararlanabilirsiniz: Kar taneciği ve veri tuğlaları.

Örnek kodun tamamını izleyin. GitHub deposu Ertelenebilir operatörlerin birlikte nasıl çalıştığını anlamak. Aşağıdaki şekilde gösterilen veri hattını oluşturacak ve düzenleyeceksiniz.

Boru hattı üç aşamadan oluşur:

  • Bir veri kümesinin yüklenmesini bekleyen bir S3KeySensor Amazon Basit Depolama Hizmeti (Amazon S3)
  • Veri kümesindeki nesneleri sınıflandırmak ve şemaları AWS Glue Veri Kataloğuna kaydetmek için bir AWS Glue tarayıcısı
  • Kaynak veri kümesini normalleştirmek, filtrelenmiş verilere dayalı Data Catalog tabloları oluşturmak ve elde edilen verileri ayrı Apache Parquet dosyaları halinde Amazon S3'e geri yazmak için Veri Kataloğu'ndaki meta verileri kullanan bir AWS Glue işi.

Kurulum ve Sökme görevleri

Geçici kaynaklar gerektiren iş akışları oluşturmak yaygındır; örneğin kalite kontrollerini yürütmek için verileri, veritabanlarını ve karşılık gelen veri kümelerini geçici olarak depolamak için bir S3 klasörü veya makine öğrenimi (ML) düzenleme hattında bir modeli eğitmek için bir bilgi işlem kümesi. İş görevlerini çalıştırmadan önce bu kaynakların düzgün şekilde yapılandırılması ve çalıştırıldıktan sonra bunların kaldırıldığından emin olmanız gerekir. Bunu manuel olarak yapmak karmaşıktır. Bu, DAG'larınızın okunabilirliğinin ve bakımının zayıf olmasına neden olabilir ve kaynakların sürekli çalışır durumda kalmasına neden olarak maliyetlerin artmasına neden olabilir. Apache Airflow sürüm 2.7.2 için Amazon MWAA desteği sayesinde bu senaryoyu desteklemek için iki yeni görev türünü kullanabilirsiniz: kurulum ve sökme görevleri.

Kurulum ve sökme görevleri, bir iş görevi için gereken kaynakların, görev çalıştırılmaya başlamadan önce ayarlanmasını ve iş görevi başarısız olsa bile tamamlandıktan sonra kaldırılmasını sağlar. Herhangi bir görev, kurulum veya sökme görevi olarak yapılandırılabilir. Yapılandırıldıktan sonra Hava Akışı Kullanıcı Arayüzü'nde özel görünürlüğe ve ayrıca özel davranışa sahip olurlar. Aşağıdaki grafik, kurulum ve sökme görevlerini kullanan basit bir veri kalitesi kontrol hattını açıklamaktadır.

İşaretlemek için bir seçenek setup_db_instance ve teardown_db_instance kurulum ve sökme görevleri için as_teardown() bağımlılık zinciri bildirimindeki sökme görevindeki yöntem. Yöntemin kurulum görevini parametre olarak aldığını unutmayın:

setup_db_instance >> column_quality_check >> row_count_quality_check >> teardown_db_instance.as_teardown(setups=setup_db_instance)

Başka bir seçenek kullanmaktır @setup ve @teardown dekoratörler:

from airflow.decorators import setup @setup
def setup_db_instance():
...
return "Resources fully setup" setup_db_instance()

Görevleri yapılandırdıktan sonra, grafik görünümü kurulum görevlerinizi yukarı okla, sökme görevlerinizi ise aşağı okla gösterir. Kurulum/sökme iş akışını gösteren noktalı bir çizgiyle birbirine bağlanırlar. Kurulum ve sökme görevleri arasındaki herhangi bir görev (örneğin column_quality_check ve row_count_quality_check) iş akışı kapsamındadır. Bu düzenleme aşağıdaki davranışı içerir:

  • eğer temizlersen column_quality_check or row_count_quality_check, her ikisi de setup_db_instance ve teardown_db_instance temizlenecek
  • If setup_db_instance başarıyla çalışır ve column_quality_check ve row_count_quality_check Başarılı olsun ya da olmasın, tamamlamış olmaları, teardown_db_instance koşacak
  • If setup_db_instance başarısız olursa veya atlanırsa, teardown_db_instance başarısız olacak veya atlayacak
  • If teardown_db_instance başarısız olursa Airflow, ardışık düzen çalışmasının başarılı olup olmadığını değerlendirmek için varsayılan olarak durumunu yok sayar

Kurulum ve sökme iş akışları oluştururken birden fazla kurulum ve sökme görevi kümesi olabileceğini ve bunların paralel ve iç içe olabileceğini unutmayın. Kurulum ve sökme görevleri sayıca sınırlı olmadığı gibi, iş akışı kapsamına dahil edebileceğiniz çalışan görevleri de sınırlı değildir.

Örnek kodun tamamını izleyin. GitHub deposu kurulum ve sökme görevlerinin nasıl çalıştığını anlamak.

Kurulum ve sökme görevleri ne zaman kullanılmalı?

Kurulum ve sökme görevleri, DAG'lerin güvenilirliğini ve maliyet etkinliğini artırmak, gerekli kaynakların doğru zamanda oluşturulup silinmesini sağlamak için faydalıdır. Ayrıca karmaşık DAG'leri daha küçük, daha yönetilebilir görevlere bölerek basitleştirmeye yardımcı olarak sürdürülebilirliği artırabilirler. Bazı kullanım durumları şunları içerir:

  • Geçici hesaplamaya dayalı veri işleme, Amazon Elastik Bilgi İşlem Bulutu (Amazon EC2) bulut sunucusu filoları veya EMR kümeleri
  • ML modeli eğitimi veya ardışık düzenlerin ayarlanması
  • Airflow görevleri arasında veri paylaşmak için harici geçici veri depolarını kullanarak işleri çıkarın, dönüştürün ve yükleyin (ETL)

Apache Airflow sürüm 2.7.2 için Amazon MWAA desteği sayesinde, işlem hatlarınızı iyileştirmek için kurulum ve sökme görevlerini bugünden itibaren kullanmaya başlayabilirsiniz. Kurulum ve Sökme görevleri hakkında daha fazla bilgi edinmek için bkz. Apache Hava Akışı belgeleri.

Sırlar önbelleği

Apache Airflow zamanlayıcı, DAG'leriniz ve görevlerinizdeki değişiklikleri yansıtmak için, varsayılan olarak her 30 saniyede bir, DAG dosyalarınızı sürekli olarak ayrıştırır. Üst düzey kod olarak değişkenleriniz veya bağlantılarınız varsa (operatörün yürütme yöntemlerinin dışındaki kod), DAG dosyası her ayrıştırıldığında bir istek oluşturulur, bu da ayrıştırma hızını etkiler ve DAG dosyası işlemede optimumun altında performansa yol açar. Uygun ölçekte çalışıyorsanız, ağ iletişimi miktarı ve metastore veritabanı üzerindeki yük arttıkça Airflow performansını ve ölçeklenebilirliğini etkileme potansiyeli vardır. Alternatif bir sırlar arka ucu kullanıyorsanız, örneğin AWS Sırları Yöneticisi, her DAG ayrıştırması o hizmete yönelik yeni bir istektir ve maliyetleri artırır.

Apache Airflow sürüm 2.7.2 için Amazon MWAA desteği sayesinde değişkenler ve bağlantılar için gizli diziler önbelleğini kullanabilirsiniz. Airflow, değişkenleri ve bağlantıları yerel olarak önbelleğe alır, böylece DAG ayrıştırma sırasında gizli dizi arka ucundan, ortam değişkenlerinden veya meta veri veritabanından alınmasına gerek kalmadan bunlara daha hızlı erişilebilir. Aşağıdaki şema süreci açıklamaktadır.

Önbelleğe almayı etkinleştirmek, özellikle üst düzey kodda değişkenler ve bağlantılar kullanılıyorsa DAG ayrıştırma süresinin azaltılmasına yardımcı olacaktır (bu en iyi uygulama değildir). Gizli bilgiler önbelleğinin kullanıma sunulmasıyla, arka uca yapılan API çağrılarının sıklığı azalır ve bu da arka uç erişimiyle ilişkili genel maliyeti azaltır. Ancak, diğer önbelleğe alma uygulamalarına benzer şekilde, bir gizli dizi önbelleği, geçerlilik süresi (TTL) sona erene kadar güncel olmayan değerleri sunabilir.

Sırları önbellek özelliği ne zaman kullanılmalı?

Performansı ve güvenilirliği artırmak ve Airflow görevlerinizin işletim maliyetlerini azaltmak için gizli diziler önbelleği özelliğini kullanmayı düşünmelisiniz. Bu, özellikle DAG'nizin üst düzey Python kodundaki değişkenleri veya bağlantıları sık sık alması durumunda kullanışlıdır.

Amazon MWAA'da sırlar önbelleği özelliği nasıl kullanılır?

Sırlar önbelleğini etkinleştirmek için secrets.use_cache ortam yapılandırma parametresini True olarak ayarlayın. Etkinleştirildiğinde Airflow, erişildiğinde sırları otomatik olarak önbelleğe alır. Önbellek yalnızca DAG dosyalarının ayrıştırılması sırasında kullanılacaktır, DAG çalışma zamanı sırasında kullanılmayacaktır.

Ortam yapılandırma parametresini kullanarak önbelleğin geçerli olduğu kabul edilen depolanan değerlerin TTL'sini de kontrol edebilirsiniz. secrets.cache_ttl_seconds, varsayılan olarak 15 dakikaya ayarlanmıştır.

Çalışan veya başarısız filtreler ve Küme Etkinliği sayfası

Arızalı durumdaki DAG'leri belirlemek, büyük Hava Akışı örnekleri için zorlayıcı olabilir. Genellikle kendinizi, çözülecek hataları arayan sayfalar arasında gezinirken bulursunuz. Amazon MWAA'daki Apache Airflow sürüm 2.7.2 ortamları sayesinde artık çalışmakta olan DAG'leri ve başarısız DAG çalıştırmaları olan DAG'leri filtreleyebilirsiniz. Aşağıdaki ekran görüntüsünde görebileceğiniz gibi iki durum sekmesi, Koşu ve başarısız, kullanıcı arayüzüne eklendi.

Apache Airflow 2.7.2 sürümünü kullanan Amazon MWAA ortamlarının bir diğer avantajı da yeni Küme Etkinliği Ortam düzeyinde izleme sayfası.

The Küme Etkinliği sayfası, kümenizin canlı ve geçmiş ölçümlerini izlemek için yararlı veriler toplar. Sayfanın üst bölümünde, planlanmaya hazır DAG sayısı, en uzun süre çalışan ilk 5 DAG, farklı havuzlarda kullanılan yuvalar ve bileşenlerin sağlığı (meta veritabanı, zamanlayıcı ve tetikleyici) hakkında canlı ölçümler alırsınız. Aşağıdaki ekran görüntüsü bu sayfanın bir örneğini göstermektedir.

Alt bölümü Küme Etkinliği sayfa DAG çalıştırmalarının ve görev örnekleri durumlarının geçmiş ölçümlerini içerir.

Amazon MWAA'da yeni bir Apache Airflow v2.7.2 ortamı kurun

Amazon MWAA'da yeni bir Apache Airflow sürüm 2.7.2 ortamı kurmak yalnızca yeni özellikler sağlamakla kalmaz, aynı zamanda Python 3.11 ve Amazon Linux 2023 (AL2023) temel görüntüsü, gelişmiş güvenlik, modern araçlar ve en yeni Python kitaplıkları ve özellikleri için destek sunar. Başlatabilirsiniz kurmak kullanarak hesabınızda ve tercih ettiğiniz Bölgede AWS Yönetim Konsolu, API veya AWS Komut Satırı Arayüzü (AWS CLI). Kod olarak altyapıyı (IaC) benimsiyorsanız, kurulumu aşağıdakileri kullanarak otomatikleştirebilirsiniz: AWS CloudFormation, AWS Bulut Geliştirme Kiti (AWS CDK) veya Terraform betikleri.

Amazon MWAA'da Apache Airflow sürüm 2.7.2 ortamının başarılı bir şekilde oluşturulmasının ardından belirli paketler, planlayıcıya ve çalışan düğümlere otomatik olarak yüklenir. Yüklü paketlerin ve sürümlerinin tam listesi için bkz. bu MWAA belgeleri. Gereksinimler dosyasını kullanarak ek paketleri yükleyebilirsiniz. Apache Airflow sürüm 2.7.2'den itibaren gereksinimler dosyanız şunları içermelidir: --constraints ifade. Bir kısıtlama sağlamazsanız Amazon MWAA, gereksinimlerinizde listelenen paketlerin kullandığınız Apache Airflow sürümüyle uyumlu olduğundan emin olmak için sizin için bir kısıtlama belirleyecektir.

Apache Airflow'un eski sürümlerinden Apache Airflow v2.7.2'e yükseltin

Eski Apache Airflow v2.x tabanlı ortamlarınızı yerinde sürüm yükseltmelerini kullanarak sürüm 2.7.2'ye yükselterek bu en yeni özelliklerden yararlanın. Yerinde sürüm yükseltmeleri hakkında daha fazla bilgi edinmek için bkz. Apache Airflow sürümünü yükseltme or Amazon MWAA ile yerinde sürüm yükseltmeleriyle tanışın.

Sonuç

Bu yazıda ertelenebilir operatörlerin yanı sıra Apache Airflow sürüm 2.7.2'de sunulan kullanıcı arayüzündeki Küme Etkinliği sayfası, değişkenler ve bağlantılar için önbellek gibi bazı önemli değişiklikleri ve bunları Amazon MWAA'da nasıl kullanmaya başlayabileceğinizi ele aldık. .

Amazon MWAA ile ilgili ek ayrıntılar ve kod örnekleri için şu adresi ziyaret edin: Amazon MWAA Kullanım Kılavuzu ve Amazon MWAA örnekleri GitHub deposu.

Apache, Apache Airflow ve Airflow tescilli ticari markalar veya tescilli ticari markalardır. Apache Yazılım Vakfı Amerika Birleşik Devletleri ve/veya diğer ülkelerde.


Yazarlar Hakkında

Manasi Butada Hollanda merkezli bir ISV Çözüm Mimarıdır. Müşterilerin AWS'de iş sorunlarına yönelik iyi tasarlanmış çözümler tasarlamasına ve uygulamasına yardımcı oluyor. Veri analitiği ve ağ oluşturma konusunda tutkulu. İşinin ötesinde yemek denemekten, turşu oynamaktan ve eğlenceli masa oyunlarına dalmaktan hoşlanıyor.

hernan garcia Hollanda merkezli AWS'de Kıdemli Çözüm Mimarıdır. Finansal Hizmetler Sektöründe, işletmelerin bulutu benimsemelerini destekliyor. Sunucusuz teknolojiler, güvenlik ve uyumluluk konusunda tutkulu. Ailesi ve arkadaşlarıyla vakit geçirmekten, farklı mutfaklardan yeni yemekler denemekten hoşlanıyor.

spot_img

En Son İstihbarat

spot_img