Zephyrnet Logosu

Veri ardışık düzenlerini düzenlemek için Snowflake'i Amazon MWAA ile kullanın | Amazon Web Hizmetleri

Tarih:

Bu blog yazısı Snowflake'ten James Sun ile birlikte yazılmıştır.

Müşteriler, ürünlerini, hizmetlerini ve süreçlerini optimize etmek amacıyla anlamlı modeller çıkarmak için mobil uygulamalar, web sitelerindeki tıklama akışı etkinlikleri, geçmiş veriler ve daha fazlası gibi farklı kaynaklardan gelen verilere güvenir. Verilerin farklı sistemler arasında taşınmasını ve dönüştürülmesini otomatikleştirmek için kullanılan bir dizi görevden oluşan veri hattıyla, verilerden öngörü elde etmek için gereken zamanı ve çabayı azaltabilirsiniz. Apache Hava Akışı ve Kar taneciği veri yönetimi ve analizi için güçlü teknolojiler olarak ortaya çıkmıştır.

Apache Airflow için Amazon Tarafından Yönetilen İş Akışları (Amazon MWAA), bulutta uygun ölçekte uçtan uca veri işlem hatlarını kurmak ve çalıştırmak için kullanabileceğiniz, Apache Airflow'a yönelik yönetilen bir iş akışı düzenleme hizmetidir. Snowflake Veri Bulutu, tüm veri ihtiyaçlarınız için tek bir doğruluk kaynağı sağlar ve kuruluşlarınızın büyük miktarda veriyi depolamasına, analiz etmesine ve paylaşmasına olanak tanır. Apache Airflow açık kaynak topluluğu, Apache Airflow'un veri işlem hatları oluşturması için 1,000'den fazla önceden oluşturulmuş operatör (hizmetlere bağlantıları basitleştiren eklentiler) sağlar.

Bu yazıda, veri hattınızı kullanarak düzenlemeye ilişkin bir genel bakış sunuyoruz. Kar tanesi operatörleri Amazon MWAA ortamınızda. Amazon MWAA ile Snowflake arasındaki entegrasyonu kurmak için gereken adımları tanımlıyoruz. Çözüm, veri alımı, dönüşümü, analizi ve tüketimini içeren uçtan uca otomatikleştirilmiş bir iş akışı sağlar.

Çözüme genel bakış

Aşağıdaki şema çözüm mimarimizi göstermektedir.

Çözüme Genel Bakış

Dönüşüm ve analiz için kullanılan veriler kamuya açık bilgilere dayanmaktadır. New York Citi Bisiklet veri kümesi. Sürücü demografisini ve yolculuk verilerini içeren veriler (sıkıştırılmış dosyalar) halka açık Citi Bike'dan kopyalanmıştır. Amazon Basit Depolama Hizmeti (Amazon S3) klasörünü AWS hesabınızda bulundurun. Verilerin sıkıştırması açılır ve farklı bir S3 klasöründe depolanır (dönüştürülmüş veriler, verilerin alındığı aynı S3 klasöründe saklanabilir, ancak kolaylık olması açısından iki ayrı S3 klasörü kullanıyoruz). Dönüştürülen veriler daha sonra veri analizi için Snowflake'in erişimine sunulur. Sorgulanan verilerin çıktısı şu adreste yayınlanır: Amazon Basit Bildirim Servisi (Amazon SNS) tüketim için.

Amazon MWAA şunu kullanır: yönlendirilmiş döngüsel olmayan grafik (DAG) iş akışlarını çalıştırmak için. Bu yazıda üç DAG çalıştırıyoruz:

Aşağıdaki şemada bu iş akışı gösterilmektedir.

DAG iş akışını çalıştırma

Bak GitHub repo DAG'ler ve gönderiyle ilgili diğer dosyalar için.

Bu yazıda Snowflake bağlantısı oluşturmak için DAG kullandığımızı, ancak Snowflake bağlantısını kullanarak da oluşturabileceğinizi unutmayın. Hava Akışı Kullanıcı Arayüzü veya CLI.

Önkoşullar

Çözümü dağıtmak için aşağıdaki önkoşullarla birlikte Snowflake ve Amazon MWAA hakkında temel bilgilere sahip olmanız gerekir:

  • Bir AWS hesabı Amazon MWAA'nın desteklendiği AWS Bölgesi.
  • Yönetici kimlik bilgilerine sahip bir Snowflake hesabı. Hesabınız yoksa kaydolun 30 günlük ücretsiz deneme. AWS Cloud platformu için Snowflake kurumsal sürümünü seçin.
  • Amazon MWAA, Secrets Manager ve Amazon SNS'ye erişim.
  • Bu yazıda iki S3 kovası kullanıyoruz. airflow-blog-bucket-ACCOUNT_ID ve citibike-tripdata-destination-ACCOUNT_ID. Amazon S3 global klasörleri destekler; bu, bir bölüm içindeki tüm Bölgelerdeki tüm AWS hesaplarında her klasör adının benzersiz olması gerektiği anlamına gelir. S3 klasörü adı zaten alınmışsa farklı bir S3 klasörü adı seçin. S3 paketlerini oluşturun AWS hesabınızda. Gönderinin ilerleyen kısımlarında S3 klasörüne içerik yüklüyoruz. Yer değiştirmek ACCOUNT_ID kendi AWS hesap kimliğiniz veya başka herhangi bir benzersiz tanımlayıcıyla. Kova detayları aşağıdaki gibidir:
    • airflow-blog-bucket-ACCOUNT_ID – Amazon MWAA ile ilgili dosyalar için en üst düzey paket.
    • airflow-blog-bucket-ACCOUNT_ID/gereksinimler – Depolamak için kullanılan kova gereksinimler.txt Amazon MWAA'yı dağıtmak için gereken dosya.
    • airflow-blog-bucket-ACCOUNT_ID/dags – Amazon MWAA'da iş akışlarını çalıştırmak için DAG dosyalarını depolamak için kullanılan para.
    • airflow-blog-bucket-ACCOUNT_ID/dags/mwaa_snowflake_queries – Snowflake SQL sorgularını depolamak için kullanılan paket.
    • citibike-tripdata-hedef-ACCOUNT_ID – Dönüştürülen veri kümesini depolamak için kullanılan paket.

Bu gönderideki çözümü uygularken, referansları değiştirin. airflow-blog-bucket-ACCOUNT_ID ve citibike-tripdata-destination-ACCOUNT_ID kendi S3 klasörlerinizin adlarıyla.

Amazon MWAA ortamını kurun

İlk sen Amazon MWAA ortamı oluşturun. Ortamı dağıtmadan önce, gereksinimleri dosyaya airflow-blog-bucket-ACCOUNT_ID/requirements S3 kovası. Gereksinimler dosyası Amazon MWAA 2.6.3 sürümünü temel alır. Farklı bir Amazon MWAA sürümünde test yapıyorsanız gereksinimler dosyasını uygun şekilde güncelleyin.

Ortamı ayarlamak için aşağıdaki adımları tamamlayın:

  1. Amazon MWAA konsolunda şunu seçin: Ortam oluştur.
  2. Ortam için seçtiğiniz bir adı girin.
  3. Airflow sürüm 2.6.3'ü seçin.
  4. S3 klasörü için paketinizin yolunu girin (s3:// airflow-blog-bucket-ACCOUNT_ID).
  5. DAG'ler klasörü için DAG'ler klasör yolunu girin (s3:// airflow-blog-bucket-ACCOUNT_ID/dags).
  6. Gereksinimler dosyası için gereksinimler dosyasının yolunu girin (s3:// airflow-blog-bucket-ACCOUNT_ID/ requirements/requirements.txt).
  7. Klinik Sonraki.
  8. Altında , mevcut VPC'nizi seçin veya MWAA VPC'yi oluşturun.
  9. Altında Web sunucusu erişimi, seçmek Genel ağ.
  10. Altında Güvenlik grupları, ayrılmak Yeni güvenlik grubu oluştur Seçilen.
  11. Için çevre sınıfı, Şifreleme, ve İzleme bölümlerde tüm değerleri varsayılan olarak bırakın.
  12. içinde Hava akışı yapılandırma seçenekleri bölümü, seçim Özel yapılandırma değeri ekleyin ve iki değeri yapılandırın:
    1. set Yapılandırma seçeneği için secrets.backend ve Özel değer için airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend.
    2. set Yapılandırma seçeneği için secrets.backend_kwargs ve Özel değer için {"connections_prefix" : "airflow/connections", "variables_prefix" : "airflow/variables"}.                      Gizli yönetici için yapılandırma seçenekleri
  13. içinde İzinler bölümünde varsayılan ayarları bırakın ve Yeni bir rol oluştur.
  14. Klinik Sonraki.
  15. Amazon MWAA ortamı kullanıma sunulduğunda, S3 klasör izinlerini AWS Kimlik ve Erişim Yönetimi (IAM) yürütme rolü (Amazon MWAA kurulumu sırasında oluşturulur).

MWAA yürütme rolü
Bu sizi IAM konsolunda oluşturulan yürütme rolüne yönlendirecektir.

Test amaçlı olarak seçebilirsiniz İzin ekle ve yönetilenleri ekleyin AmazonS3FullAccess Kısıtlı erişim sağlamak yerine kullanıcıya politika. Bu gönderi için yalnızca S3 paketlerine gerekli erişimi sağlıyoruz.

  1. Açılır menüden şunu seçin: Satır içi politika oluştur.
  2. İçin Hizmet Seçin, seçmek S3.
  3. Altında Erişim düzeyi, aşağıdakileri belirtin:
    1. Genişletmek Liste düzeyi seçin ListBucket.
    2. Genişletmek Seviyeyi oku seçin GetObject.
    3. Genişletmek Yazma seviyesi seçin PutObject.
  4. Altında Kaynaklar, seçmek ARN ekle.
  5. Üzerinde Metin sekmesinde, S3 grubu erişimi için aşağıdaki ARN'leri sağlayın:
    1. arn:aws:s3:::airflow-blog-bucket-ACCOUNT_ID (kendi kovanızı kullanın).
    2. arn:aws:s3:::citibike-tripdata-destination-ACCOUNT_ID (kendi kovanızı kullanın).
    3. arn:aws:s3:::tripdata (Bu, Citi Bike veri kümesinin depolandığı genel S3 klasörüdür; ARN'yi burada belirtildiği şekilde kullanın).
  6. Altında Kaynaklar, seçmek ARN ekle.
  7. Üzerinde Metin sekmesinde, S3 grubu erişimi için aşağıdaki ARN'leri sağlayın:
    1. arn:aws:s3:::airflow-blog-bucket-ACCOUNT_ID/* (Yıldız işaretini eklediğinizden emin olun).
    2. arn:aws:s3:::citibike-tripdata-destination-ACCOUNT_ID /*.
    3. arn:aws:s3:::tripdata/* (Bu, Citi Bike veri kümesinin depolandığı genel S3 klasörüdür; ARN'yi burada belirtildiği şekilde kullanın).
  8. Klinik Sonraki.
  9. İçin poliçe adı, girmek S3ReadWrite.
  10. Klinik Politika oluştur.
  11. Son olarak, Amazon MWAA'ya Secrets Manager gizli anahtarlarına erişim izni sağlayın.

Bu adım, Amazon MWAA ortamınız için Amazon MWAA yürütme rolünün Secrets Manager'daki gizli anahtara okuma erişimini sağlar.

Yürütme rolü politikalara sahip olmalıdır MWAA-Execution-Policy*, S3ReadWrite, ve SecretsManagerReadWrite ona bağlı.

MWAA yürütme rolü politikaları

Amazon MWAA ortamı mevcut olduğunda Amazon MWAA konsolundan Airflow kullanıcı arayüzünde şu bağlantıyı kullanarak oturum açabilirsiniz: Hava Akışı Kullanıcı Arayüzünü Aç.

Hava akışı kullanıcı arayüzü erişimi

Bir SNS konusu ve aboneliği ayarlayın

Sonra sen SNS konusu oluştur ve ekle abone konuya. Aşağıdaki adımları tamamlayın:

  1. Amazon SNS konsolunda şunu seçin: Konular gezinti bölmesinden.
  2. Klinik Konu oluştur.
  3. İçin Konu türü, seçmek Standart.
  4. İçin Name, girmek mwaa_snowflake.
  5. Gerisini varsayılan olarak bırakın.
  6. Konuyu oluşturduktan sonra şuraya gidin: Abonelikleri sekme ve seçim Abonelik oluştur.
    sosyal ağ konusu
  7. İçin Konu ARN'si, seçmek mwaa_snowflake.
  8. Protokolü şu şekilde ayarlayın: e-posta.
  9. İçin Son nokta, e-posta kimliğinizi girin (aboneliği kabul etmeniz için e-postanızda bir bildirim alacaksınız).

Varsayılan olarak yalnızca konu sahibi konuyu yayınlayabilir ve konuya abone olabilir; dolayısıyla Amazon SNS erişimine izin vermek için Amazon MWAA yürütme rolü erişim politikasını değiştirmeniz gerekir.

  1. IAM konsolunda daha önce oluşturduğunuz yürütme rolüne gidin.
  2. Açılır menüden şunu seçin: Satır içi politika oluştur.
    MWAA yürütme rolü SNS politikası
  3. İçin seç hizmet, seçmek SNS.
  4. Altında İşlemlergenişletin Erişim düzeyini yazma seçin Yayınlamak.
  5. Altında Kaynaklar, seçmek ARN ekle.
  6. Üzerinde Metin sekmesinde ARN'yi belirtin arn:aws:sns:<<region>>:<<our_account_ID>>:mwaa_snowflake.
  7. Klinik Sonraki.
  8. İçin poliçe adı, girmek SNSPublishOnly.
  9. Klinik Politika oluştur.

Gizli Anahtar Yöneticisi sırrını yapılandırma

Daha sonra Snowflake bağlantı bilgilerini ve kimlik bilgilerini depolamak için desteklenen alternatif bir veritabanı olan Secrets Manager'ı kuruyoruz.

Bağlantı dizesini oluşturmak için Snowflake ana bilgisayarı ve hesap adı gereklidir. Snowflake hesabınıza giriş yapın ve Çalışma Sayfaları menüsünde artı işaretini seçin ve SQL çalışma sayfası. Ana bilgisayar ve hesap adını bulmak için çalışma sayfasını kullanarak aşağıdaki SQL komutlarını çalıştırın.

Ana bilgisayar adı için aşağıdaki sorguyu çalıştırın:

WITH HOSTLIST AS (SELECT * FROM TABLE(FLATTEN(INPUT => PARSE_JSON(SYSTEM$allowlist()))))
SELECT REPLACE(VALUE:host,'"','') AS HOST
FROM HOSTLIST
WHERE VALUE:type = 'SNOWFLAKE_DEPLOYMENT_REGIONLESS';

Hesap adı için aşağıdaki sorguyu çalıştırın:

WITH HOSTLIST AS (SELECT * FROM TABLE(FLATTEN(INPUT => PARSE_JSON(SYSTEM$allowlist()))))
SELECT REPLACE(VALUE:host,'.snowflakecomputing.com','') AS ACCOUNT
FROM HOSTLIST
WHERE VALUE:type = 'SNOWFLAKE_DEPLOYMENT';

Daha sonra Secrets Manager'da sırrı yapılandırıyoruz.

  1. Secrets Manager konsolunda, Yeni bir sır saklayın.
  2. İçin Gizli tip, seçmek Diğer tür sır.
  3. Altında Anahtar/Değer çiftleri, seç plaintext sekmesi.
  4. Metin alanına aşağıdaki kodu girin ve dizeyi Snowflake hesap bilgilerinizi yansıtacak şekilde değiştirin:

{"host": "<<snowflake_host_name>>", "account":"<<snowflake_account_name>>","user":"<<snowflake_username>>","password":"<<snowflake_password>>","schema":"mwaa_schema","database":"mwaa_db","role":"accountadmin","warehouse":"dev_wh"}

Örneğin:

{"host": "xxxxxx.snowflakecomputing.com", "account":"xxxxxx" ,"user":"xxxxx","password":"*****","schema":"mwaa_schema","database":"mwaa_db", "role":"accountadmin","warehouse":"dev_wh"}

Veritabanı adı, şema adı ve rol değerleri daha önce belirtildiği gibi olmalıdır. Hesap, ana bilgisayar, kullanıcı, parola ve depo, kurulumunuza bağlı olarak farklılık gösterebilir.

Gizli bilgi

Klinik Sonraki.

  1. İçin Gizli isim, girmek airflow/connections/snowflake_accountadmin.
  2. Diğer tüm değerleri varsayılan olarak bırakın ve Sonraki.
  3. Klinik mağaza.

Gizliliğin oluşturulduğu Bölgeyi not edin. Gizli ARN. Daha sonra bunu Hava Akışı Kullanıcı Arayüzü'nde bir değişken olarak tanımlayacağız.

Snowflake erişim izinlerini ve IAM rolünü yapılandırma

Daha sonra Snowflake hesabınıza giriş yapın. Kullandığınız hesabın, hesap yöneticisi erişimine sahip olduğundan emin olun. SQL çalışma sayfası oluşturma. Çalışma sayfasının altında adlı bir depo oluşturun. dev_wh.

Aşağıda örnek bir SQL komutu verilmiştir:

CREATE OR REPLACE WAREHOUSE dev_wh WITH WAREHOUSE_SIZE = 'xsmall' AUTO_SUSPEND = 60 INITIALLY_SUSPENDED = true AUTO_RESUME = true MIN_CLUSTER_COUNT = 1 MAX_CLUSTER_COUNT = 5;

Snowflake'in harici (S3 grubu) aşamasında referans verilen bir S3 klasöründen veri okuması ve ona veri yazması için, depolama entegrasyonu gereklidir. bölümünde tanımlanan adımları izleyin. Seçenek 1: Amazon S3'e Erişmek için Kar Tanesi Depolama Entegrasyonunu Yapılandırma(yalnızca bu bölümde açıklandığı gibi Adım 1 ve 2'yi uygulayın).

S3 grubu için erişim izinlerini yapılandırma

IAM politikasını oluştururken, örnek politika belge kodu Snowflake'e tek bir klasör ve klasör yolu kullanarak veri yüklemek veya kaldırmak için gerekli izinleri sağlayan bir dosyaya ihtiyaç duyulur (aşağıdaki koda bakın). Bu yazıda kullanılan paket adı: citibike-tripdata-destination-ACCOUNT_ID. Paket adınızı yansıtacak şekilde değiştirmelisiniz.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetObjectVersion", "s3:DeleteObject", "s3:DeleteObjectVersion" ], "Resource": "arn:aws:s3::: citibike-tripdata-destination-ACCOUNT_ID/*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::citibike-tripdata-destination-ACCOUNT_ID" } ]
}

IAM rolü oluşturma

Daha sonra, IAM rolü veri dosyalarınızı içeren S3 klasörüne ayrıcalıklar vermek için. Oluşturulduktan sonra kaydedin Rol ARN'si Rol özeti sayfasında bulunan değer.

Kar tanesi IAM rolü

Değişkenleri yapılandır

Son olarak Airflow'ta DAG'lerin erişeceği değişkenleri yapılandırın. Airflow kullanıcı arayüzünde oturum açın ve admin menü seç Değişkenler ve artı işareti.

Hava akışı değişkenleri

Aşağıdaki anahtar/değer çiftleriyle dört değişken ekleyin:

  • anahtar aws_role_arn değeri olan <<snowflake_aws_role_arn>> (mysnowflakerole rolü için ARN daha önce belirtilmişti)
  • anahtar destination_bucket değeri olan <<bucket_name>> (bu gönderi için citibike-tripdata-destination-ACCOUNT_ID'de kullanılan paket)
  • anahtar target_sns_arn değeri olan <<sns_Arn>> (hesabınızdaki SNS konusu)
  • anahtar sec_key_region değeri olan <<region_of_secret_deployment>> (Secrets Manager'daki sırrın oluşturulduğu Bölge)

Aşağıdaki ekran görüntüsü SNS konusu ARN'nin nerede bulunacağını göstermektedir.

SNS konusu ARN

Hava Akışı Kullanıcı Arayüzü artık DAG'ler tarafından atıfta bulunulacak tanımlanmış değişkenlere sahip olacaktır.

Hava akışı değişkenleri listesi

Tebrikler, tüm yapılandırma adımlarını tamamladınız.

DAG'ı çalıştırın

DAG'lerin nasıl çalıştırılacağına bakalım. Özetlemek gerekirse:

  • DAG1 (create_snowflake_connection_blog.py) – Apache Airflow'da Snowflake bağlantısını oluşturur. Bu bağlantı Snowflake ile kimlik doğrulaması yapmak için kullanılacaktır. Snowflake bağlantı dizesi, DAG dosyasında başvurulan Secrets Manager'da depolanır.
  • DAG2 (create-snowflake_initial-setup_blog.py) – Snowflake'te veritabanını, şemayı, depolama entegrasyonunu ve sahne alanını oluşturur.
  • DAG3 (run_mwaa_datapipeline_blog.py) – Dosyaları kaynak genel S3 klasöründen çıkaracak ve bunları hedef S3 klasörüne kopyalayacak veri hattını çalıştırır. Bir sonraki görev, verileri depolamak için Snowflake'te bir tablo oluşturacaktır. Daha sonra hedef S3 klasöründeki veriler Snowflake aşaması kullanılarak tabloya kopyalanacaktır. Veriler başarıyla kopyalandıktan sonra Snowflake'te bir görünüm oluşturulacak ve bunun üzerinde SQL sorguları çalıştırılacaktır.

DAG'leri çalıştırmak için aşağıdaki adımları tamamlayın:

  1. Yükle DAG'ler S3 kovasına airflow-blog-bucket-ACCOUNT_ID/dags.
  2. Yükle SQL sorgusu S3 klasörüne dosyalar airflow-blog-bucket-ACCOUNT_ID/dags/mwaa_snowflake_queries.
  3. Apache Airflow kullanıcı arayüzünde oturum açın.
  4. DAG1'i bulun (create_snowflake_connection_blog), duraklatmayı kaldırın ve çalıştırmak için oynat simgesini seçin.

DAG'ın çalışma durumunu aşağıdakileri kullanarak görüntüleyebilirsiniz: Grid or grafik Airflow kullanıcı arayüzünde görüntüleyin.

Dag1 koşusu

DAG1 çalıştıktan sonra Snowflake bağlantısı snowflake_conn_accountadmin üzerinde oluşturulur admin, Bağlantılar menüsü.

  1. DAG2'yi bulun ve çalıştırın (create-snowflake_initial-setup_blog).

Dag2 koşusu

DAG2 çalıştırıldıktan sonra Snowflake'te aşağıdaki nesneler oluşturulur:

  • Veritabanı mwaa_db
  • şema mwaa_schema
  • Depolama entegrasyonu mwaa_citibike_storage_int
  • Sahne mwaa_citibike_stg

Son DAG'yi çalıştırmadan önce IAM kullanıcısı için güven ilişkisinin güncellenmesi gerekir.

  1. Yönetici hesabı kimlik bilgilerinizi kullanarak Snowflake hesabınızda oturum açın.
  2. Daha önce oluşturduğunuz SQL çalışma sayfanızı açın ve aşağıdaki komutu çalıştırın:
DESC INTEGRATION mwaa_citibike_storage_int;

mwaa_citibike_storage_int DAG2'nin bir önceki adımda oluşturduğu entegrasyonun adıdır.

Çıktıdan aşağıdaki iki özelliğin özellik değerini kaydedin:

  • STORAGE_AWS_IAM_USER_ARN – Snowflake hesabınız için oluşturulan IAM kullanıcısı.
  • STORAGE_AWS_EXTERNAL_ID – Bir güven ilişkisi kurmak için gereken harici kimlik.

Artık Snowflake IAM kullanıcısına paket nesnelerine erişme izinlerini veriyoruz.

  1. IAM konsolunda, Roller Gezinti bölmesinde.
  2. Rolü seçin mysnowflakerole.
  3. Üzerinde Güven ilişkileri sekmesini seçin Güven ilişkisini düzenle.
  4. Politika belgesini şununla değiştirin: DESC STORAGE INTEGRATION Kaydettiğiniz çıkış değerleri. Örneğin:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::5xxxxxxxx:user/mgm4-s- ssca0079" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "AWSPARTNER_SFCRole=4_vsarJrupIjjJh77J9Nxxxx/j98=" } } } ]
}

AWS rolü ARN ve ExternalId çıktısına bağlı olarak ortamınız için farklı olacaktır. DESC STORAGE INTEGRATION sorgu

Güven ilişkisi

  1. Son DAG'yi bulun ve çalıştırın (run_mwaa_datapipeline_blog).

DAG çalışmasının sonunda veriler sorgulamaya hazır hale gelir. Bu örnekte sorgu (en iyi başlangıç ​​ve varış istasyonlarının bulunması) DAG'ın bir parçası olarak çalıştırılır ve çıktı, Hava Akışı'ndan görüntülenebilir. XCOM'lar UI.

Xcom'lar

DAG çalıştırmasında çıktı Amazon SNS'de de yayınlanır ve aboneliğe bağlı olarak sorgu çıktısıyla birlikte bir e-posta bildirimi gönderilir.

e-posta

Sonuçları görselleştirmenin başka bir yöntemi de doğrudan Snowflake konsolundan Snowflake çalışma sayfasını kullanmaktır. Aşağıda örnek bir sorgu verilmiştir:

SELECT START_STATION_NAME,
COUNT(START_STATION_NAME) C FROM MWAA_DB.MWAA_SCHEMA.CITIBIKE_VW GROUP BY START_STATION_NAME ORDER BY C DESC LIMIT 10;

Kar tanesi görseli

Kullanım durumunuza göre çıktıyı görselleştirmenin farklı yolları vardır.

Gördüğümüz gibi Amazon MWAA bağlantısını ve Snowflake nesnelerini kurmak için DAG1 ve DAG2'nin yalnızca bir kez çalıştırılması gerekiyor. DAG3 olabilir tarifeli her hafta veya ayda bir çalıştırmak için. Bu çözüm sayesinde verileri inceleyen kullanıcının Amazon MWAA veya Snowflake'e giriş yapmasına gerek kalmıyor. Citi Bike veri kümesinden en son verileri alacak ve verilen veri kümesi için en iyi başlangıç ​​ve varış istasyonlarını sağlayacak bir programa göre tetiklenen otomatik bir iş akışına sahip olabilirsiniz.

Temizlemek

Gelecekte ücret alınmasını önlemek için, parça olarak oluşturulan AWS kaynaklarını (IAM kullanıcıları ve rolleri, Secrets Manager sırları, Amazon MWAA ortamı, SNS konuları ve abonelikleri, S3 klasörleri) ve Snowflake kaynaklarını (veritabanı, sahne alanı, depolama entegrasyonu, görünüm, tablolar) silin. bu yazının.

Sonuç

Bu yazıda, AWS kullanıcı kimlik bilgilerini kullanarak hem Snowflake'te hem de AWS'de kimlik doğrulaması yapmak için Amazon MWAA bağlantısının nasıl kurulacağını gösterdik. SQL sorgularını kullanarak veritabanı, tablolar ve sahne alanı gibi Snowflake nesnelerinin oluşturulmasını otomatikleştirmek için bir DAG kullandık. Ayrıca veri dönüşümünü ve Snowflake sorgularını yürüten Amazon MWAA'yı kullanarak veri hattını düzenledik. Snowflake bağlantı bilgilerini ve kimlik bilgilerini depolamak için Secrets Manager'ı, veri çıktısını son tüketime yayınlamak için ise Amazon SNS'yi kullandık.

Bu çözümle, veri alma, dönüştürme, analiz ve veri tüketimini kapsayan veri hattınızın otomatik, uçtan uca düzenlenmesine sahip olursunuz.

Daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın:


yazarlar hakkında

Payal Singh Amazon Web Services'te Sunucusuz platforma odaklanan bir İş Ortağı Çözüm Mimarıdır. İş ortaklarının ve müşterilerin uygulamalarını modernleştirmelerine ve AWS'ye geçirmelerine yardımcı olmaktan sorumludur.

James Güneş Snowflake'te Kıdemli Ortak Çözüm Mimarıdır. AWS gibi stratejik bulut iş ortaklarıyla aktif olarak işbirliği yaparak ürün ve hizmet entegrasyonlarını ve ortak çözümlerin geliştirilmesini destekliyor. EMC, AWS ve MapR Technologies gibi teknoloji şirketlerinde üst düzey teknik pozisyonlarda bulunmuştur. Depolama ve veri analitiği alanında 20 yılı aşkın deneyimiyle aynı zamanda Stanford Üniversitesi'nden doktora derecesine sahiptir.

bosco albuquerque AWS'de Kıdemli İş Ortağı Çözümleri Mimarıdır ve kurumsal veritabanı satıcıları ve bulut sağlayıcılarının veritabanı ve analitik ürünleriyle çalışma konusunda 20 yılı aşkın deneyime sahiptir. Teknoloji şirketlerinin veri analitiği çözümleri ve ürünleri tasarlamasına ve uygulamasına yardımcı oldu.

Manuj Arora AWS'de Stratejik Hesaplar Kıdemli Çözüm Mimarıdır. AWS'deki Geçiş ve Modernizasyon yetenekleri ve tekliflerine odaklanıyor. Manuj, son 3 yılda AWS'de İş Ortağı Başarı Çözümleri Mimarı olarak çalıştı ve müşterilerin faydalanacağı çözüm planları oluşturmak için Snowflake gibi iş ortaklarıyla çalıştı. İş dışında seyahat etmekten, tenis oynamaktan ve ailesi ve arkadaşlarıyla yeni yerler keşfetmekten hoşlanıyor.

spot_img

En Son İstihbarat

spot_img