Zephyrnet Logosu

AWS Glue ve Google BigQuery ile ölçeklenebilir analizlerin kilidini açın | Amazon Web Hizmetleri

Tarih:

Veri entegrasyonu, sağlam veri analitiğinin temelidir. Çeşitli kaynaklardan verilerin keşfini, hazırlanmasını ve kompozisyonunu kapsar. Modern veri ortamında, farklı kaynaklardan gelen verilere erişmek, bunları entegre etmek ve dönüştürmek, veriye dayalı karar verme açısından hayati bir süreçtir. AWS TutkalSunucusuz bir veri entegrasyonu ve ayıklama, dönüştürme ve yükleme (ETL) hizmeti olan , bu süreçte devrim yaratarak süreci daha erişilebilir ve verimli hale getirdi. AWS Glue, karmaşıklıkları ve maliyetleri ortadan kaldırarak kuruluşların veri entegrasyonu görevlerini dakikalar içinde gerçekleştirmesine olanak tanıyarak verimliliği artırır.

Bu blog yazısı şunları araştırıyor: yeni ilan edildi Google BigQuery için yönetilen bağlayıcı ve AWS Glue Studio ile kod yazmadan modern bir ETL işlem hattının nasıl oluşturulacağını gösterir.

AWS Glue'a Genel Bakış

AWS Tutkal analiz, makine öğrenimi (ML) ve uygulama geliştirme için verilerin keşfedilmesini, hazırlanmasını ve birleştirilmesini kolaylaştıran sunucusuz bir veri entegrasyon hizmetidir. AWS Glue, veri entegrasyonu için gereken tüm yetenekleri sağlar; böylece verilerinizi aylar yerine dakikalar içinde analiz etmeye ve kullanmaya başlayabilirsiniz. AWS Glue, veri entegrasyonunu kolaylaştırmak için hem görsel hem de kod tabanlı arayüzler sağlar. Kullanıcılar verileri daha kolay bulabilir ve erişebilirler. AWS Tutkal Veri Kataloğu. Veri mühendisleri ve ETL (çıkarma, dönüştürme ve yükleme) geliştiricileri, ETL iş akışlarını birkaç adımda görsel olarak oluşturabilir, çalıştırabilir ve izleyebilir. AWS Tutkal Stüdyosu. Veri analistleri ve veri bilimcileri kullanabilir AWS Tutkal DataBrew kod yazmadan verileri görsel olarak zenginleştirmek, temizlemek ve normalleştirmek.

Google BigQuery Spark bağlayıcıyla tanışın

AWS Glue, çeşitli veri entegrasyonu kullanım senaryolarının taleplerini karşılamak amacıyla artık Google BigQuery için yerel bir spark bağlayıcısı sunuyor. Müşteriler artık Google BigQuery'deki tabloları okumak ve tablolara yazmak için AWS Glue 4.0 for Spark'ı kullanabilir. Ayrıca, bir tablonun tamamını okuyabilir veya özel bir sorgu çalıştırabilir ve doğrudan ve dolaylı yazma yöntemlerini kullanarak verilerinizi yazabilirsiniz. BigQuery'ye, güvenli bir şekilde saklanan hizmet hesabı kimlik bilgilerini kullanarak bağlanırsınız. AWS Sırları Yöneticisi.

Google BigQuery Spark bağlayıcının avantajları

  • Eksiksiz bütünleşme: Yerel bağlayıcı, veri entegrasyonu için sezgisel ve kolaylaştırılmış bir arayüz sunarak öğrenme eğrisini azaltır.
  • Maliyet etkinliği: Özel bağlayıcıların oluşturulması ve bakımı pahalı olabilir. AWS Glue tarafından sağlanan yerel bağlayıcı uygun maliyetli bir alternatiftir.
  • verim: Daha önce haftalar veya aylar süren veri dönüştürme görevleri artık dakikalar içinde gerçekleştirilerek verimlilik optimize ediliyor.

Çözüme genel bakış

Bu örnekte, yerel Google BigQuery bağlayıcıyla birlikte AWS Glue'yu kullanarak iki ETL işi oluşturacaksınız.

  1. BigQuery tablosunu sorgulayın ve verileri şuraya kaydedin: Amazon Basit Depolama Hizmeti (Amazon S3) Parke formatında.
  2. Google BigQuery'de depolanacak toplu bir sonucu dönüştürmek ve oluşturmak için ilk işten çıkarılan verileri kullanın.

çözüm mimarisi

Önkoşullar

Bu çözümde kullanılan veri kümesi NCEI/WDS Küresel Önemli Deprem VeritabanıMÖ 5,700'den günümüze kadar 2150'den fazla depremin küresel listesi. Bu herkese açık verileri Google BigQuery projenize kopyalayın veya mevcut veri kümenizi kullanın.

BigQuery bağlantılarını yapılandırma

AWS Glue'dan Google BigQuery'ye bağlanmak için bkz. BigQuery bağlantılarını yapılandırma. Google Cloud Platform kimlik bilgilerinizi bir Secrets Manager sırrında oluşturup saklamanız, ardından bu sırrı bir Google BigQuery AWS Glue bağlantısıyla ilişkilendirmeniz gerekir.

Amazon S3'ü kurun

Amazon S3'teki her nesne bir klasörde depolanır. Verileri Amazon S3'te depolayabilmeniz için önce şunları yapmanız gerekir: S3 paketi oluştur sonuçları saklamak için

Bir S3 paketi oluşturmak için:

  1. AWS Yönetim Konsolu'nda Amazon S3, seçmek Grup oluştur.
  2. Global olarak benzersiz bir girin Name kovanız için; Örneğin, awsglue-demo.
  3. Klinik Kova oluştur.

AWS Glue ETL işi için bir IAM rolü oluşturun

AWS Glue ETL işini oluşturduğunuzda, AWS Kimlik ve Erişim Yönetimi (IAM) işin kullanacağı rol. Rol, Amazon S3 (tüm kaynaklar, hedefler, komut dosyaları, sürücü dosyaları ve geçici dizinler için) ve Secrets Manager dahil olmak üzere iş tarafından kullanılan tüm kaynaklara erişim izni vermelidir.

Talimatlar için bkz. ETL işiniz için bir IAM rolü yapılandırın.

Çözüm yolu

Verileri Google BigQuery'den Amazon S3'e aktarmak için AWS Glue Studio'da görsel bir ETL işi oluşturun

  1. Açın AWS Tutkal konsol.
  2. AWS Glue'da şuraya gidin: Görsel ETL altında ETL işleri bölümünü kullanın ve şunu kullanarak yeni bir ETL işi oluşturun: Görsel boş bir tuvalle.
  3. Bir girin Name örneğin AWS Glue işiniz için, bq-s3-dataflow.
  4. seç Google BigQuery veri kaynağı olarak.
    1. Bir girin isim örneğin Google BigQuery kaynak düğümünüz için: noaa_significant_earthquakes.
    2. Bir seçin Google BigQuery örneğin bağlantı, bq-connection.
    3. Bir girin Ebeveyn örneğin proje, bigquery-public-datasources.
    4. seç Tek bir tablo seçin için BigQuery Kaynağı.
    5. Girin tablo örneğin [veri kümesi].[tablo] biçiminde geçiş yapmak istiyorsunuz, noaa_significant_earthquakes.earthquakes.
      bq'dan amazon s3'e veri akışı için büyük sorgu veri kaynağı
  5. Ardından veri hedefini şu şekilde seçin: Amazon S3.
    1. Bir girin Name hedef Amazon S3 düğümü için örneğin depremler.
    2. Çıkış verilerini seçin oluşturulan as Parke.
    3. seçmek Sıkıştırma tipi as Çabuk.
    4. Için S3 Hedef Konumu, önkoşullarda oluşturulan paketi girin; örneğin, s3://<YourBucketName>/noaa_significant_earthquakes/earthquakes/.
    5. değiştirmelisin <YourBucketName> kovanızın adı ile birlikte.
      bq'dan Amazon s3'e veri akışı için s3 hedef düğümü
  6. Sonra git İş detayları. In IAM Rolü, önkoşullardan IAM rolünü seçin; örneğin, AWSGlueRole.
    Bq'dan Amazon S3'e veri akışı için IAM rolü
  7. Klinik İndirim.

İşi çalıştırın ve izleyin

  1. ETL işiniz yapılandırıldıktan sonra işi çalıştırabilirsiniz. AWS Glue, ETL sürecini çalıştırarak Google BigQuery'den veri çıkaracak ve bunu belirttiğiniz S3 konumuna yükleyecektir.
  2. AWS Glue konsolunda işin ilerleyişini izleyin. Her şeyin sorunsuz çalıştığından emin olmak için günlükleri ve iş çalıştırma geçmişini görebilirsiniz.

bq'yu amazon s3 veri akışına çalıştırın ve izleyin

Veri doğrulama

  1. İş başarılı bir şekilde yürütüldükten sonra, S3 klasörünüzdeki verileri beklentilerinize uygun olduğundan emin olmak için doğrulayın. Sonuçları kullanarak görebilirsiniz Amazon S3 Seçimi.

amazon s3'te bq'dan s3'e veri akışı çalıştırmasının sonuçlarını inceleyin

Otomatikleştirin ve planlayın

  1. Gerekirse ETL sürecini düzenli olarak yürütmek için iş planlamasını ayarlayın. ETL işlerinizi otomatikleştirmek için AWS'yi kullanarak S3 klasörünüzün Google BigQuery'den gelen en son verilerle her zaman güncel olmasını sağlayabilirsiniz.

Verileri Google BigQuery'den Amazon S3'e aktarmak için bir AWS Glue ETL işini başarıyla yapılandırdınız. Daha sonra, bu verileri toplamak ve Google BigQuery'ye aktarmak için ETL işini oluşturursunuz.

AWS Glue Studio Visual ETL ile depremin sıcak noktalarını bulma.

  1. Açılış AWS Tutkal konsol.
  2. AWS Glue'da şuraya gidin: Görsel ETL altında ETL işleri bölümünü kullanın ve şunu kullanarak yeni bir ETL işi oluşturun: Görsel boş bir tuvalle.
  3. AWS Glue işiniz için bir ad girin; örneğin: s3-bq-dataflow.
  4. Klinik Amazon S3 veri kaynağı olarak.
    1. Bir girin Name kaynak Amazon S3 düğümü için örneğin depremler.
    2. seç S3 konumu gibi S3 kaynak türü.
    3. Önkoşullarda oluşturulan S3 paketini şu şekilde girin: S3 URL'siÖrneğin, s3://<YourBucketName>/noaa_significant_earthquakes/earthquakes/.
    4. değiştirmelisin <YourBucketName> kovanızın adı ile birlikte.
    5. seçmek Veri formatı as Parke.
    6. seç çıkarım şeması.
      s3'ten bq'ya veri akışı için Amazon s3 kaynak düğümü
  5. Sonra seç Alanları Seç dönüşümü.
    1. seç earthquakes as Düğüm ebeveynleri.
    2. Alanları seçin: id, eq_primary, and country.
      Amazon s3'ten bq veri akışına yönelik alan düğümünü seçin
  6. Sonra seç Toplam dönüşüm.
    1. Bir girin NameÖrneğin, Aggregate.
    2. Klinik Select Fields as Düğüm ebeveynleri.
    3. Klinik eq_primary and country gibi gruplandırmak sütunlar.
    4. Ekle id gibi toplam sütun ve count gibi toplama işlevi.
      Amazon s3'ten bq veri akışına yönelik toplu düğüm
  7. Sonra seç Alanı Yeniden Adlandır dönüşümü.
    1. Kaynak Amazon S3 düğümü için bir ad girin; örneğin, Rename eq_primary.
    2. Klinik Aggregate as Düğüm ebeveynleri.
    3. Klinik eq_primary gibi Geçerli alan adı Ve girin earthquake_magnitude gibi Yeni alan adı.
      Amazon s3 için eq_primary alanını bq veri akışı olarak yeniden adlandırın
  8. Sonra seç Alanı Yeniden Adlandır dönüşüm
    1. Kaynak Amazon S3 düğümü için bir ad girin; örneğin, Rename count(id).
    2. Klinik Rename eq_primary as Düğüm ebeveynleri.
    3. Klinik count(id) gibi Geçerli alan adı Ve girin number_of_earthquakes gibi Yeni alan adı.
      amazon s3 için cound(id) alanını bq veri akışı olarak yeniden adlandırın
  9. Ardından veri hedefini şu şekilde seçin: Google BigQuery.
    1. Google BigQuery kaynak düğümünüz için bir ad girin; örneğin: most_powerful_earthquakes.
    2. Bir seçin Google BigQuery bağlantısıÖrneğin, bq-connection.
    3. seç üst projeÖrneğin, bigquery-public-datasources.
    4. adını girin tablo [veri kümesi].[tablo] biçiminde oluşturmak istiyorsunuz, örneğin, noaa_significant_earthquakes.most_powerful_earthquakes.
    5. Klinik direkt gibi Yazma yöntemi.
      Amazon s3'ten bq veri akışına yönelik bq hedefi
  10. Sonra git İş detayları sekmesinde ve içinde IAM Rolü, önkoşullardan IAM rolünü seçin; örneğin, AWSGlueRole.
    Amazon s3'ten bq'ye veri akışı için IAM rolü
  11. Klinik İndirim.

İşi çalıştırın ve izleyin

  1. ETL işiniz yapılandırıldıktan sonra işi çalıştırabilirsiniz. AWS Glue, Google BigQuery'den veri çıkarıp belirttiğiniz S3 konumuna yükleyerek ETL sürecini çalıştırır.
  2. AWS Glue konsolunda işin ilerleyişini izleyin. Her şeyin sorunsuz çalıştığından emin olmak için günlükleri ve iş çalıştırma geçmişini görebilirsiniz.

Amazon s3'ten bq'ya veri akışını izleyin ve çalıştırın

Veri doğrulama

  1. İş başarıyla çalıştırıldıktan sonra Google BigQuery veri kümenizdeki verileri doğrulayın. Bu ETL işi, en güçlü depremlerin meydana geldiği ülkelerin bir listesini döndürür. Bunları, belirli bir büyüklükteki depremlerin ülkeye göre sayısını sayarak sağlar.

Amazon s3'ten bq veri akışına yönelik toplu sonuçlar

Otomatikleştirin ve planlayın

  1. ETL sürecini düzenli olarak yürütmek için iş planlamasını ayarlayabilirsiniz. AWS Glue, ETL işlerinizi otomatikleştirmenize olanak tanıyarak S3 klasörünüzün Google BigQuery'den gelen en son verilerle her zaman güncel olmasını sağlar.

Bu kadar! Amazon S3'ten Google BigQuery'ye veri aktarmak için bir AWS Glue ETL işini başarıyla kurdunuz. Bu entegrasyonu, bu iki platform arasında veri çıkarma, dönüştürme ve yükleme sürecini otomatikleştirmek için kullanabilirsiniz; böylece verilerinizi analiz ve diğer uygulamalar için hazır hale getirebilirsiniz.

Temizlemek

Ücretlendirmeyi önlemek için aşağıdaki adımları tamamlayarak bu blog gönderisinde kullanılan kaynakları AWS hesabınızdan temizleyin:

  1. AWS Glue konsolunda seçin Görsel ETL Gezinti bölmesinde.
  2. İş listesinden işi seçin bq-s3-data-flow ve sil.
  3. İş listesinden işi seçin s3-bq-data-flow ve sil.
  4. AWS Glue konsolunda seçin Bağlantılar altındaki gezinme bölmesinde Veri Kataloğu.
  5. Seçin BiqQuery bağlantısı yarattınız ve sildiniz.
  6. Secrets Manager konsolunda oluşturduğunuz sırrı seçin ve silin.
  7. IAM konsolunda, Roller Gezinti bölmesinde AWS Glue ETL işi için oluşturduğunuz rolü seçip silin.
  8. Amazon S3 konsolunda oluşturduğunuz S3 klasörünü arayın, boş nesneleri silmek için, ardından kovayı silin.
  9. Google BigQuery kaynaklarını içeren projeyi silerek Google hesabınızdaki kaynakları temizleyin. Belgeleri takip ederek Google kaynaklarını temizleyin.

Sonuç

AWS Glue'nun Google BigQuery ile entegrasyonu analiz hattını basitleştirir, analiz süresini kısaltır ve veriye dayalı karar almayı kolaylaştırır. Kuruluşlara veri entegrasyonunu ve analitiğini kolaylaştırma gücü verir. AWS Glue'un sunucusuz yapısı, altyapı yönetimine gerek olmadığı anlamına gelir ve yalnızca işleriniz çalışırken tüketilen kaynaklar için ödeme yaparsınız. Kuruluşlar karar vermede verilere giderek daha fazla güvenirken, bu yerel spark bağlayıcısı, veri analitiği ihtiyaçlarını hızlı bir şekilde karşılamak için verimli, uygun maliyetli ve çevik bir çözüm sağlar.

AWS Glue'da Google BigQuery'deki tablolardan nasıl okunacağını ve tablolara nasıl yazılacağını öğrenmek istiyorsanız adım adım göz atın Video öğretici. Bu eğitimde, bağlantının kurulmasından veri aktarım akışının çalıştırılmasına kadar tüm süreci adım adım anlatacağız. AWS Glue hakkında daha fazla bilgi için şu adresi ziyaret edin: AWS Tutkal.

Ek

Bu örneği AWS Glue konsolu yerine kod kullanarak uygulamak istiyorsanız aşağıdaki kod parçacıklarını kullanın.

Google BigQuery'den veri okuma ve Amazon S3'e veri yazma

import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job args = getResolvedOptions(sys.argv, ["JOB_NAME"])
sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
job = Job(glueContext)
job.init(args["JOB_NAME"], args) # STEP-1 Read the data from Big Query Table noaa_significant_earthquakes_node1697123333266 = ( glueContext.create_dynamic_frame.from_options( connection_type="bigquery", connection_options={ "connectionName": "bq-connection", "parentProject": "bigquery-public-datasources", "sourceType": "table", "table": "noaa_significant_earthquakes.earthquakes", }, transformation_ctx="noaa_significant_earthquakes_node1697123333266", )
)
# STEP-2 Write the data read from Big Query Table into S3
# You should replace <YourBucketName> with the name of your bucket.
earthquakes_node1697157772747 = glueContext.write_dynamic_frame.from_options( frame=noaa_significant_earthquakes_node1697123333266, connection_type="s3", format="glueparquet", connection_options={ "path": "s3://<YourBucketName>/noaa_significant_earthquakes/earthquakes/", "partitionKeys": [], }, format_options={"compression": "snappy"}, transformation_ctx="earthquakes_node1697157772747",
) job.commit()

Amazon S3'ten veri okuma, toplama ve Google BigQuery'ye yazma

import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
from awsglue.dynamicframe import DynamicFrame
from awsglue import DynamicFrame
from pyspark.sql import functions as SqlFuncs def sparkAggregate( glueContext, parentFrame, groups, aggs, transformation_ctx
) -> DynamicFrame: aggsFuncs = [] for column, func in aggs: aggsFuncs.append(getattr(SqlFuncs, func)(column)) result = ( parentFrame.toDF().groupBy(*groups).agg(*aggsFuncs) if len(groups) > 0 else parentFrame.toDF().agg(*aggsFuncs) ) return DynamicFrame.fromDF(result, glueContext, transformation_ctx) args = getResolvedOptions(sys.argv, ["JOB_NAME"])
sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
job = Job(glueContext)
job.init(args["JOB_NAME"], args) # STEP-1 Read the data from Amazon S3 bucket
# You should replace <YourBucketName> with the name of your bucket.
earthquakes_node1697218776818 = glueContext.create_dynamic_frame.from_options( format_options={}, connection_type="s3", format="parquet", connection_options={ "paths": [ "s3://<YourBucketName>/noaa_significant_earthquakes/earthquakes/" ], "recurse": True, }, transformation_ctx="earthquakes_node1697218776818",
) # STEP-2 Select fields
SelectFields_node1697218800361 = SelectFields.apply( frame=earthquakes_node1697218776818, paths=["id", "eq_primary", "country"], transformation_ctx="SelectFields_node1697218800361",
) # STEP-3 Aggregate data
Aggregate_node1697218823404 = sparkAggregate( glueContext, parentFrame=SelectFields_node1697218800361, groups=["eq_primary", "country"], aggs=[["id", "count"]], transformation_ctx="Aggregate_node1697218823404",
) Renameeq_primary_node1697219483114 = RenameField.apply( frame=Aggregate_node1697218823404, old_name="eq_primary", new_name="earthquake_magnitude", transformation_ctx="Renameeq_primary_node1697219483114",
) Renamecountid_node1697220511786 = RenameField.apply( frame=Renameeq_primary_node1697219483114, old_name="`count(id)`", new_name="number_of_earthquakes", transformation_ctx="Renamecountid_node1697220511786",
) # STEP-1 Write the aggregated data in Google BigQuery
most_powerful_earthquakes_node1697220563923 = ( glueContext.write_dynamic_frame.from_options( frame=Renamecountid_node1697220511786, connection_type="bigquery", connection_options={ "connectionName": "bq-connection", "parentProject": "bigquery-public-datasources", "writeMethod": "direct", "table": "noaa_significant_earthquakes.most_powerful_earthquakes", }, transformation_ctx="most_powerful_earthquakes_node1697220563923", )
) job.commit()


yazarlar hakkında

Kartikay Khator Amazon Web Services'te (AWS) Küresel Yaşam Bilimleri alanında Çözüm Mimarıdır. AWS Analytics hizmetlerine odaklanarak müşterilerin ihtiyaçlarını karşılamak için yenilikçi ve ölçeklenebilir çözümler oluşturma konusunda tutkuludur. Teknoloji dünyasının ötesinde hevesli bir koşucudur ve yürüyüş yapmaktan hoşlanır.

Kamen SharlandjievKamen Sharlandjiev Kıdemli Büyük Veri ve ETL Çözümleri Mimarı ve Amazon AppFlow uzmanıdır. Karmaşık veri entegrasyonu zorluklarıyla karşı karşıya kalan müşterilerin hayatını kolaylaştırma misyonundadır. Onun gizli silahı mı? İşin minimum çabayla ve kodlama gerektirmeden yapılmasını sağlayan, tam olarak yönetilen, az kodlu AWS hizmetleri.

Anshul SharmaAnshul Sharma AWS Glue Team'de Yazılım Geliştirme Mühendisidir. Glue müşterisine herhangi bir Veri kaynağını (Veri ambarı, Veri gölleri, NoSQL vb.) Glue ETL İşlerine bağlamanın yerel yolunu sağlayan bağlantı sözleşmesini yürütüyor. Teknoloji dünyasının ötesinde bir kriket ve futbol aşığıdır.

spot_img

En Son İstihbarat

spot_img