Zephyrnet Logosu

AWS Glue JDBC işlerinde birden fazla yer işareti anahtarı kullanma | Amazon Web Hizmetleri

Tarih:

AWS Tutkal verileri kataloglamak ve analize hazırlanmak için kullanabileceğiniz sunucusuz bir veri entegrasyon hizmetidir. AWS Glue ile verilerinizi keşfedebilir, kaynakları hedeflere dönüştürmek için komut dosyaları geliştirebilir ve sunucusuz bir ortamda ayıklama, dönüştürme ve yükleme (ETL) işlerini planlayıp çalıştırabilirsiniz. AWS Glue işleri, veri işleme mantığını çalıştırmaktan sorumludur.

AWS Glue işlerinin önemli özelliklerinden biri de yer imi tuşları Verileri aşamalı olarak işlemek için. Bir AWS Glue işi çalıştırıldığında veri kaynağındaki verileri okur ve işler. Kaynak tablodaki bir veya daha fazla sütun, yer imi anahtarları olarak belirtilebilir. Sütun boşluksuz, sıralı olarak artan veya azalan değerlere sahip olmalıdır. Bu değerler bir toplu işte son işlenen kaydı işaretlemek için kullanılır. İşin bir sonraki çalışması bu noktadan devam eder. Bu, büyük miktarda veriyi aşamalı olarak işlemenize olanak tanır. İş yer imi anahtarları olmasaydı, AWS Glue işlerinin her çalıştırma sırasında tüm verileri yeniden işlemesi gerekirdi. Bu zaman alıcı ve maliyetli olabilir. AWS Glue işleri, yer işareti tuşlarını kullanarak işleme kaldıkları yerden devam edebilir, böylece zamandan tasarruf edebilir ve maliyetleri düşürebilirsiniz.

Bu gönderide, kaynak veri deposuna JDBC bağlantısı olan bir AWS Glue işinde birden fazla sütunun iş yer işareti anahtarları olarak nasıl kullanılacağı açıklanmaktadır. Ayrıca AWS Glue iş bağlantısı seçeneklerinde yer işareti anahtar sütunlarının ve tablo adlarının nasıl parametrelendirileceğini de gösterir.

Bu gönderi, AWS'de ETL işlem hatları tasarlayan ve oluşturan mimarlara ve veri mühendislerine yöneliktir. hakkında temel bir anlayışa sahip olmanız beklenmektedir. AWS Yönetim Konsolu, AWS Tutkal, Amazon İlişkisel Veritabanı Hizmeti (Amazon RDS), ve Amazon Bulut İzleme kütükler.

Çözüme genel bakış

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

  1. Bir oluşturma PostgreSQL için Amazon RDS örneği.
  2. İki tablo oluşturun ve örnek verileri ekleyin.
  3. Birden fazla iş yer işareti anahtarını kullanarak RDS for PostgreSQL veritabanı örneğinden veri çıkarmak için bir AWS Glue işi oluşturun ve çalıştırın.
  4. Ayrı yer işareti anahtarlarıyla farklı tablolardan veri çıkarmak için parametreli bir AWS Glue işi oluşturun ve çalıştırın

Aşağıdaki şemada bu çözümün bileşenleri gösterilmektedir.

Çözümü dağıtın

Bu çözüm için size bir AWS CloudFormation Tekrarlanabilir dağıtımları mümkün kılmak için mimaride yer alan hizmetleri ayarlayan şablon. Bu şablon aşağıdaki kaynakları oluşturur:

  • PostgreSQL örneği için bir RDS
  • An Amazon Basit Depolama Hizmeti RDS for PostgreSQL örneğinden çıkarılan verileri depolamak için (Amazon S3) paketi
  • An AWS Kimlik ve Erişim Yönetimi AWS Glue için (IAM) rolü
  • RDS for PostgreSQL örneğinden artımlı olarak veri ayıklamak için iş yer işaretlerinin etkinleştirildiği iki AWS Glue işi

Çözümü dağıtmak için aşağıdaki adımları tamamlayın:

  1. Klinik  CloudFormation yığınını başlatmak için:
  2. Bir yığın adı girin.
  3. seç AWS CloudFormation'ın özel adlarla IAM kaynakları oluşturabileceğini kabul ediyorum.
  4. Klinik Yığın oluştur.
  5. AWS CloudFormation konsolunda gösterildiği gibi yığının oluşturulması tamamlanana kadar bekleyin.
  6. Yığın tamamlandığında AWS Glue komut dosyalarını S3 klasörüne kopyalayın job-bookmark-keys-demo-<accountid>.
  7. Açılış AWS BulutKabuğu.
  8. Aşağıdaki komutları çalıştırın ve değiştirin <accountid> AWS hesap kimliğiniz ile:
aws s3 cp s3://aws-blogs-artifacts-public/artifacts/BDB-2907/glue/scenario_1_job.py s3://job-bookmark-keys-demo-<accountid>/scenario_1_job.py
aws s3 cp s3://aws-blogs-artifacts-public/artifacts/BDB-2907/glue/scenario_2_job.py s3://job-bookmark-keys-demo-<accountid>/scenario_2_job.py

Örnek veriler ekleyin ve AWS Glue işlerini çalıştırın

Bu bölümde RDS for PostgreSQL örneğine şu adresten bağlanıyoruz: AWS Lambda ve iki tablo oluşturun. Ayrıca her iki tabloya da örnek veriler ekliyoruz.

  1. Lambda konsolunda şunu seçin: fonksiyonlar Gezinti bölmesinde.
  2. işlevi seçin LambdaRDSDDLExecute.
  3. Klinik test Ve seç çağırmak Lambda fonksiyonunun verileri eklemesi için.


Aşağıdaki ekran görüntüsünde gösterildiği gibi iki tablo ürünü ve adresi örnek verilerle oluşturulacaktır.

multiple_job_bookmark_keys AWS Glue işini çalıştırın

çalıştırıyoruz multiple_job_bookmark_keys AWS Glue, RDS for PostgreSQL örneğinin ürün tablosundan veri çıkarmak için iki kez iş yapar. İlk çalıştırmada mevcut tüm kayıtlar çıkarılacaktır. Daha sonra yeni kayıtlar ekleyip işi tekrar çalıştırıyoruz. İş, ikinci çalıştırmada yalnızca yeni eklenen kayıtları çıkarmalıdır.

  1. AWS Glue konsolunda seçin Mesleki Öğretiler Gezinti bölmesinde.
  2. işi seç multiple_job_bookmark_keys.
  3. Klinik koşmak işi yürütmek ve seçmek için Runs İşin ilerlemesini izlemek için sekme.
  4. Seçin Çıktı günlükleri altında köprü CloudWatch günlükleri iş tamamlandıktan sonra.
  5. Yazdırılan çıktı günlüklerini görmek için sonraki pencerede günlük akışını seçin.

    AWS Glue işi kaynak tablo ürünündeki tüm kayıtları çıkardı. Sütunlardaki son değer kombinasyonunun kaydını tutar product_id ve version.Sonra yeni bir kayıt eklemek için başka bir Lambda fonksiyonunu çalıştırıyoruz. product_id 45 zaten mevcut, ancak eklenen kaydın 2 olarak yeni bir versiyonu olacak, bu da kombinasyonun sırayla artmasını sağlayacak.
  6. Çalıştır LambdaRDSDDLExecute_incremental Yeni kaydı eklemek için Lambda işlevi product tablo.
  7. AWS Glue işini çalıştırın multiple_job_bookmark_keys kaydı ekledikten sonra tekrar yapın ve başarılı olmasını bekleyin.
  8. CloudWatch günlükleri altında Çıktı günlükleri köprüsünü seçin.
  9. Yalnızca yeni eklenen kaydın yazdırıldığını görmek için sonraki pencerede günlük akışını seçin.

İş, yalnızca daha önce ayıklanan kayıtlardan daha büyük bir kombinasyona sahip olan kayıtları ayıklar.

Parameterised_job_bookmark_keys AWS Glue işini çalıştırın

Artık tablo adını ve yer işareti anahtar sütununu parametre olarak alan parametreli AWS Glue işini çalıştırıyoruz. Bu işi, ayrı yer imleri bulunduran farklı tablolardan veri çıkarmak için çalıştırıyoruz.

İlk çalıştırma adres tablosu için olacaktır. bookmarkkey as address_id. Bunlar zaten iş parametreleriyle doldurulmuştur.

  1. AWS Glue konsolunda seçin Mesleki Öğretiler Gezinti bölmesinde.
  2. işi seç parameterised_job_bookmark_keys.
  3. Klinik koşmak işi yürütmek ve seçmek için Runs İşin ilerlemesini izlemek için sekme.
  4. Seçin Çıktı günlükleri altında köprü CloudWatch günlükleri iş tamamlandıktan sonra.
  5. Yazdırılan adres tablosundaki tüm kayıtları görmek için bir sonraki pencerede günlük akışını seçin.
  6. Üzerinde Eylemler menüsü, seçmek Parametrelerle çalıştır.
  7. genişletmek İş parametreleri Bölüm.
  8. İş parametresi değerlerini aşağıdaki şekilde değiştirin:
    • anahtar --bookmarkkey değeri olan product_id
    • anahtar --table_name değeri olan product
    • S3 grubu adı değişmedi (job-bookmark-keys-demo-<accountnumber>)
  9. Klinik İşi çalıştır işi yürütmek ve seçmek için Runs İşin ilerlemesini izlemek için sekme.
  10. Seçin Çıktı günlükleri altında köprü CloudWatch günlükleri iş tamamlandıktan sonra.
  11. Yazdırılan ürün tablosundaki tüm kayıtları görmek için günlük akışını seçin.

İş, verileri kaynak veri deposundan ayıklarken tabloların her biri için ayrı yer imleri tutar. Bu, AWS Glue iş komut dosyasındaki iş adına ve dönüşüm bağlamlarına tablo adının eklenmesiyle gerçekleştirilir.

Temizlemek

Gelecekte ücret alınmasını önlemek için aşağıdaki adımları tamamlayın:

  1. Amazon S3 konsolunda şunu seçin: Kepçeler Gezinti bölmesinde.
  2. Adında iş yer imi tuşları bulunan paketi seçin.
  3. Klinik boş içindeki tüm dosya ve klasörleri silmek için.
  4. CloudFormation konsolunda seçin Yığınları Gezinti bölmesinde.
  5. Çözümü dağıtmak için oluşturduğunuz yığını seçin ve Sil.

Sonuç

Bu gönderi, bir tablonun birden fazla sütununun şu şekilde iletilmesini gösterdi: jobBookmarkKeys bir AWS Glue işine JDBC bağlantısında. Ayrıca, ilgili yer işaretlerini korurken birden çok tablodan veri çıkarmak için parametreli bir AWS Glue işini nasıl yapabileceğinizi de açıkladı. Bir sonraki adım olarak, kaynak tablolardaki verileri değiştirerek artımlı veri ayıklamayı test edebilirsiniz.


Yazarlar Hakkında

Durga Prasad müşterilerin Veri Analitiği çözümlerini AWS üzerinde oluşturmasına olanak tanıyan Kıdemli Baş Danışmandır. Kendisi bir kahve tutkunu ve badminton oynamayı seviyor.

murali reddy Amazon Web Services'te (AWS) Baş Danışman olarak müşterilerin veri analitiği çözümü oluşturmasına ve uygulamasına yardımcı oluyor. Murali, çalışmadığı zamanlarda hevesli bir bisiklet sürücüsü ve yeni yerler keşfetmeyi seviyor.

spot_img

En Son İstihbarat

spot_img