Amazon Kırmızıya Kaydırma Büyük ölçüde paralel işleme (MPP) mimarisine dayalı, yüksek performanslı analitik işleme sağlayan bir bulut veri depolama hizmetidir. Veri hatlarını oluşturmak ve sürdürmek tüm kuruluşlar için ortak bir zorluktur. SQL dosyalarını yönetmek, ekipler arası çalışmayı entegre etmek, tüm yazılım mühendisliği ilkelerini dahil etmek ve harici yardımcı programları içe aktarmak, karmaşık tasarım ve çok sayıda hazırlık gerektiren zaman alıcı bir görev olabilir.
dbt (DataBuildTool), veri analizi, dönüşümü ve orkestrasyonu için iyi yapılandırılmış bir çerçeve sunarak bu mekanizmayı sunar. Ayrıca git depolarıyla entegrasyon, kurulum gibi genel yazılım mühendisliği ilkelerini de uygular. Kurutma makinesi kodu, işlevsel test senaryolarının eklenmesi ve harici kitaplıkların eklenmesi. Bu mekanizma, geliştiricilerin SQL dosyalarını iş mantığına göre hazırlamaya odaklanmasına olanak tanır ve gerisini dbt halleder.
Bu yazıda dbt'yi Amazon Redshift'e dahil etmenin en uygun ve uygun maliyetli yolunu inceliyoruz. Kullanırız Amazon Elastik Konteyner Kayıt Defteri (Amazon ECR) dbt Docker görüntülerimizi saklamak için ve AWS Fargate bir olarak Amazon Elastik Konteyner Hizmeti (Amazon ECS) görevi, işi yürütmek için kullanılır.
Dbt çerçevesi Amazon Redshift ile nasıl çalışır?
dbt adında bir Amazon Redshift bağdaştırıcı modülü var dbt-kırmızıya kayma Bu, Amazon Redshift'e bağlanıp çalışmasını sağlar. Tüm bağlantı profilleri dbt içinde yapılandırılmıştır profiles.yml
dosya. Kimlik bilgilerini en uygun ortamda saklıyoruz AWS Sırları Yöneticisi ve onları geri alın.
Aşağıdaki kod profile.yml içeriğini gösterir:
Aşağıdaki diyagram dbt çerçevesinin temel bileşenlerini göstermektedir:
Birincil bileşenler aşağıdaki gibidir:
- Modeller – Bunlar SELECT ifadesi olarak yazılır ve .sql dosyası olarak kaydedilir. Tablo veya görünüm olarak gerçekleştirilebilecek tüm dönüşüm sorguları buraya yazılabilir. Tablo yenileme, yapılandırmaya bağlı olarak tam veya artımlı olabilir. Daha fazla bilgi için SQL modellerine bakın.
- Anlık – Bu aletler tip-2 yavaş yavaş değişen boyutlar (SCD'ler) değiştirilebilir kaynak tabloları üzerinden. Bu SCD'ler tablodaki bir satırın zaman içinde nasıl değiştiğini tanımlar.
- Tohumları – Bunlar, dbt projenizdeki (tipik olarak tohum dizininizdeki) dbt'nin projenize yükleyebileceği CSV dosyalarıdır. veri ambarı ile
dbt seed
Komut. - Testler – Bunlar, dbt projenizdeki modelleriniz ve diğer kaynaklarınız (kaynaklar, tohumlar ve anlık görüntüler gibi) hakkında yaptığınız iddialardır. Koştuğunda
dbt test
dbt, projenizdeki her testin başarılı olup olmadığını size söyleyecektir. - Makrolar – Bunlar birden çok kez yeniden kullanılabilen kod parçalarıdır. Bunlar diğer programlama dillerindeki "işlevlere" benzerler ve kendinizi birden fazla modelde kodu tekrarlarken bulursanız son derece faydalıdırlar.
Bu bileşenler .sql dosyaları olarak saklanır ve dbt CLI komutları. Çalıştırma sırasında dbt bir oluşturur Yönlendirilmiş Döngüsel Grafik (DAG) dbt bileşenleri arasındaki dahili referansa dayalıdır. Çalıştırma sırasını buna göre düzenlemek için DAG'ı kullanır..
Profiles.yml dosyası içinde dbt'nin çalışırken farklı Redshift ortamlarını hedeflemek için kullanabileceği birden fazla profil oluşturulabilir. Daha fazla bilgi için Redshift kurulumuna bakın.
Çözüme genel bakış
Aşağıdaki şema çözüm mimarimizi göstermektedir.
İş akışı aşağıdaki adımları içerir:
- Açık kaynaklı dbt-redshift konektörü, gerekli tüm modelleri, anlık görüntüleri, testleri, makroları ve profilleri içeren dbt projemizi oluşturmak için kullanılır.
- Bir Docker görüntüsü oluşturulur ve ECR deposuna gönderilir.
- Docker görüntüsü, Fargate tarafından tetiklenen bir ECS görevi olarak çalıştırılır. AWS Basamak İşlevleri. Tüm Amazon Redshift kimlik bilgileri Secrets Manager'da saklanır ve bu daha sonra ECS görevi tarafından Amazon Redshift'e bağlanmak için kullanılır.
- Çalıştırma sırasında dbt, tüm modelleri, anlık görüntüleri, testleri ve makroları Amazon Redshift uyumlu SQL ifadelerine dönüştürür ve çalıştırmayı dahili veri kökeni grafiği muhafaza edildi. Bu SQL komutları doğrudan Redshift kümesinde çalıştırılır ve dolayısıyla iş yükü doğrudan Amazon Redshift'e aktarılır.
- Çalıştırma tamamlandığında dbt, dosyayı barındırmak için bir dizi HTML ve JSON dosyası oluşturacaktır. dbt belgeleriVeri kataloğunu, derlenmiş SQL ifadelerini, veri kökeni grafiğini ve daha fazlasını açıklayan .
Önkoşullar
Aşağıdaki ön koşullara sahip olmalısınız:
- DBT ilkelerinin ve uygulama adımlarının iyi anlaşılması.
- Bu çözümde kullanılan AWS hizmetlerine erişmek için kullanıcı rolü iznine sahip bir AWS hesabı.
- Fargate'in Amazon ECS'den Redshift kümesine ve Secrets Manager'a erişmesine yönelik güvenlik grupları.
- Bir Redshift kümesi. Oluşturma talimatları için bkz. Küme oluştur.
- Bir ECR deposu: Talimatlar için bkz. Özel bir depo oluşturma
- Bir Sırlar Yöneticisi Amazon Redshift'e bağlanmak için gerekli tüm kimlik bilgilerini içeren gizli bilgi. Bu, ana bilgisayarı, bağlantı noktasını, veritabanı adını, kullanıcı adını ve parolayı içerir. Daha fazla bilgi için bkz. AWS Secrets Manager veritabanı sırrı oluşturma.
- An Amazon Basit Depolama (Amazon S3) dokümantasyon dosyalarını barındırmak için kova.
Bir dbt projesi oluşturma
Tüm komutların komut satırında çalıştırılması için dbt CLI kullanıyoruz. Bu nedenle, henüz kurulmamışsa pip'i yükleyin. Bakınız Kurulum daha fazla bilgi için.
Bir dbt projesi oluşturmak için aşağıdaki adımları tamamlayın:
- Bağımlı dbt paketlerini yükleyin:
pip install dbt-redshift
- Kullanarak bir dbt projesi başlatın
dbt init <project_name>
tüm şablon klasörlerini otomatik olarak oluşturan komut. - Gerekli tüm DBT yapıtlarını ekleyin.
Bakın dbt-redshift-etlpattern referans dbt projesi içeren repo. İnşaat projeleri hakkında daha fazla bilgi için bkz. Dbt projeleri hakkında.
Referans projemizde aşağıdaki özellikleri uyguladık:
- Artımlı modelleri kullanan SCD tip 1
- Anlık görüntüleri kullanan SCD tip 2
- Tohum arama dosyaları
- Projeye yeniden kullanılabilir kod eklemek için makrolar
- Gelen verileri analiz etmeye yönelik testler
Python betiği, Amazon Redshift'e erişim için Secrets Manager'dan gereken kimlik bilgilerini almak üzere hazırlanmıştır. Bakın Export_redshift_connection.py dosyası.
- Hazırlamak
run_dbt.sh
dbt işlem hattını sırayla çalıştırmak için komut dosyası. Bu komut dosyası, örnek depoda gösterildiği gibi dbt projesinin kök klasörüne yerleştirilir.
- Dbt proje klasörünün ana dizininde bir Docker dosyası oluşturun. Bu adım, ECR deposuna gönderilecek dbt projesinin görüntüsünü oluşturur.
Görüntüyü Amazon ECR'ye yükleyin ve bir ECS görevi olarak çalıştırın
Görüntüyü ECR deposuna göndermek için aşağıdaki adımları tamamlayın:
- Bir kimlik doğrulama belirteci alın ve Docker istemcinizin kimliğini kayıt defterinizde doğrulayın:
- Aşağıdaki komutu kullanarak Docker görüntünüzü oluşturun:
- Derleme tamamlandıktan sonra görselinizi etiketleyerek depoya aktarabilirsiniz:
- Görüntüyü yeni oluşturulan AWS deponuza göndermek için aşağıdaki komutu çalıştırın:
- Amazon ECS konsolunda altyapı seçeneği olarak Fargate'i içeren bir küme oluşturun.
- VPC'nizi ve alt ağlarınızı gerektiği gibi sağlayın.
- Kümeyi oluşturduktan sonra bir ECS görevi oluşturun ve oluşturulan dbt görüntüsünü görev tanımı ailesi olarak atayın.
- Ağ oluşturma bölümünde Amazon Redshift, Amazon S3 ve Secrets Manager'a bağlanmak için VPC'nizi, alt ağlarınızı ve güvenlik grubunuzu seçin.
Bu görev tetiklenecek run_dbt.sh
Pipeline betiğini açın ve tüm dbt komutlarını sırayla çalıştırın. Komut dosyası tamamlandığında sonuçları Amazon Redshift'te ve Amazon S3'e aktarılan belge dosyalarını görebiliriz.
- Belgeleri Amazon S3 statik web sitesi barındırma aracılığıyla barındırabilirsiniz. Daha fazla bilgi için bkz. Amazon S3 kullanarak statik bir web sitesi barındırma.
- Son olarak, işleri gerektiği gibi planlamak için bu görevi Step Functions'ta bir ECS görevi olarak çalıştırabilirsiniz. Daha fazla bilgi için bkz. Step Functions ile Amazon ECS veya Fargate Görevlerini Yönetin.
The dbt-redshift-etlpattern repo artık gerekli tüm kod örneklerine sahip.
AWS Fargate'te dbt işlerini minimum operasyonel gereksinimlerle Amazon ECS görevi olarak yürütmenin maliyeti yaklaşık 1.5 ABD doları olacaktır (maliyet_bağlantısı) her ay.
Temizlemek
Kaynaklarınızı temizlemek için aşağıdaki adımları tamamlayın:
- ECS Kümesini Sil sen yarattın.
- ECR deposunu silin görüntü dosyalarını depolamak için oluşturduğunuz.
- Kırmızıya Kayma Kümesini Sil sen yarattın.
- Kırmızıya Kayma Sırlarını Sil Secrets Manager'da saklanır.
Sonuç
Bu gönderi, Amazon ECS'de Fargate kullanarak dbt'yi Amazon Redshift ile uygun maliyetli bir şekilde kullanmanın temel uygulamasını kapsıyordu. Örnek bir proje ile temel altyapı ve konfigürasyon kurulumunu anlattık. Bu mimari, Amazon Redshift'teki veri ambarı platformunuzu yönetmek için bir dbt çerçevesine sahip olmanın avantajlarından yararlanmanıza yardımcı olabilir.
Amazon Redshift dahili operasyon ve bakımına yönelik dbt makroları ve modelleri hakkında daha fazla bilgi için aşağıdakilere bakın GitHub repo. Sonraki gönderide Amazon Redshift'teki dbt çerçevesini kullanarak uygulayabileceğiniz geleneksel ayıklama, dönüştürme ve yükleme (ETL) modellerini inceleyeceğiz. Bu çözümü hesabınızda test edin ve yorumlarda geri bildirim veya önerilerde bulunun.
Yazarlar Hakkında
Seshadri Senthamaraikannan Londra, İngiltere merkezli AWS profesyonel hizmetler ekibine sahip bir veri mimarıdır. Veri Analitiği konusunda oldukça deneyimli ve uzmandır ve iş hedeflerine ulaşmak için AWS Cloud'da yenilikçi ve ölçeklenebilir çözümler oluşturmaya odaklanan müşterilerle birlikte çalışır. Boş zamanlarında ailesiyle vakit geçirmekten ve spor yapmaktan hoşlanıyor.
Muhammed Hamdi Londra, Birleşik Krallık merkezli AWS Profesyonel Hizmetlerinde Kıdemli Büyük Veri Mimarıdır. Veri ambarları ve büyük veri platformları tasarlama, yönetme ve oluşturma konusunda 15 yıldan fazla deneyime sahiptir. Müşterilerin, bulutu benimseme yolculukları boyunca iş sonuçlarını hızlandırmak için büyük veri ve analiz çözümleri geliştirmelerine yardımcı oluyor. Mohamed iş dışında seyahat etmeyi, koşmayı, yüzmeyi ve squash oynamayı seviyor.
- SEO Destekli İçerik ve Halkla İlişkiler Dağıtımı. Bugün Gücünüzü Artırın.
- PlatoData.Network Dikey Üretken Yapay Zeka. Kendine güç ver. Buradan Erişin.
- PlatoAiStream. Web3 Zekası. Bilgi Genişletildi. Buradan Erişin.
- PlatoESG. karbon, temiz teknoloji, Enerji, Çevre, Güneş, Atık Yönetimi. Buradan Erişin.
- PlatoSağlık. Biyoteknoloji ve Klinik Araştırmalar Zekası. Buradan Erişin.
- Kaynak: https://aws.amazon.com/blogs/big-data/implement-data-warehousing-solution-using-dbt-on-amazon-redshift/
- :vardır
- :dır-dir
- :olumsuzluk
- $UP
- 1
- 10
- 11
- 15 yıl
- İNDİRİM
- 7
- 8
- 90
- 970
- a
- Hakkımızda
- hızlandırmak
- erişim
- erişme
- Hesap
- karşısında
- eklemek
- ekleme
- Benimseme
- avantaj
- Türkiye
- veriyor
- zaten
- Ayrıca
- Amazon
- Amazon Web Servisleri
- an
- analiz
- Analitik
- analytics
- analiz
- ve
- geçerlidir
- mimari
- ARE
- etrafında
- AS
- kimlik doğrulaması
- Doğrulama
- otomatik olarak
- AWS
- AWS Profesyonel Hizmetleri
- merkezli
- temel
- BE
- faydaları
- arasında
- Büyük
- büyük Veri
- inşa etmek
- bina
- inşa
- iş
- by
- CAN
- hangi
- durumlarda
- katalog
- meydan okuma
- değişiklikler
- değiştirme
- Klinik
- çamça
- müşteri
- bulut
- bulut benimseme
- Küme
- kod
- yorumlar
- ortak
- derlenmiş
- tamamlamak
- karmaşık
- uyumlu
- bileşenler
- yapılandırma
- yapılandırılmış
- Sosyal medya
- bağlantı
- bağ
- konsolos
- Konteyner
- içeren
- içindekiler
- uygun maliyetli
- kaplı
- yaratmak
- çevrimiçi kurslar düzenliyorlar.
- oluşturur
- oluşturma
- Tanıtım
- görenek
- Müşteriler
- DAG
- veri
- veri analizi
- Veri Analizi
- veri ambarı
- veri depoları
- veritabanı
- Varsayılan
- tanım
- bağımlı
- tarif edilen
- Dizayn
- dev
- geliştirmek
- geliştiriciler
- farklı
- direkt olarak
- liman işçisi
- belgeleme
- yok
- sırasında
- her
- sağlar
- Mühendislik
- işletmelerin
- çevre
- ortamları
- Eter (ETH)
- yürütme
- deneyim
- deneyimli
- keşfetmek
- dış
- çıkarmak
- son derece
- başarısız
- aile
- Özellikler
- geribesleme
- fileto
- dosyalar
- bulmak
- odak
- odaklanma
- takip etme
- şu
- İçin
- iskelet
- itibaren
- tam
- fonksiyonel
- fonksiyonlar
- genel
- oluşturmak
- Git
- Goller
- Tercih Etmenizin
- grafik
- grup
- Grubun
- Var
- sahip olan
- he
- yardım et
- yardımcı olur
- okuyun
- yüksek performans
- onun
- ev sahibi
- hosting
- Ne kadar
- HTML
- HTTPS
- belirlemek
- if
- göstermektedir
- görüntü
- görüntüleri
- uygulamak
- uygulama
- uygulanan
- ithalat
- ithal
- in
- Diğer
- içerir
- Dahil olmak üzere
- birleşmeyle
- artımlı
- bilgi
- Altyapı
- yenilikçi
- kurmak
- talimatlar
- Bütünleştirme
- iç
- içine
- tanıtım
- IT
- İş
- Mesleki Öğretiler
- seyahat
- json
- anahtar
- Diller
- son
- önemli
- kütüphaneler
- sevmek
- seviyor
- çizgi
- yük
- mantık
- giriş
- London
- Bakın
- bir sürü
- makrolar
- sürdürmek
- bakım
- yapmak
- yönetmek
- müdür
- yönetme
- kitlesel
- mekanizma
- Neden
- en az
- model
- modelleri
- modül
- Mohamed
- Ay
- Daha
- çoklu
- isim
- adlı
- gerekli
- ağ
- yeni
- şimdi
- of
- Teklifler
- on
- açık
- açık kaynak
- operasyon
- işletme
- optimum
- seçenek
- or
- orkestrasyon
- Diğer
- bizim
- sonuçlar
- çıkışlar
- dışında
- tekrar
- genel bakış
- paketler
- Paralel
- geçer
- Şifre
- desen
- başına
- izin
- parçalar
- boru hattı
- yerleştirilir
- platform
- Platformlar
- Platon
- Plato Veri Zekası
- PlatoVeri
- OYNA
- oynama
- Çivi
- hazırlık
- hazırlanmış
- hazırlanması
- önkoşullar
- birincil
- ilkeler
- özel
- işleme
- profesyonel
- Profil
- Profiller
- Programlama
- Programlama dilleri
- proje
- Projeler
- sağlamak
- sağlar
- Itmek
- itti
- Python
- sorgular
- başvurmak
- referans
- kayıt
- Depo
- gerektirir
- gereklidir
- Yer Alan Kurallar
- gerektirir
- Kaynaklar
- DİNLENME
- Sonuçlar
- yeniden kullanılabilir
- Rol
- kök
- SIRA
- koşmak
- koşu
- kaydedilmiş
- ölçeklenebilir
- program
- senaryo
- saniye
- sırları
- Bölüm
- güvenlik
- görmek
- tohum
- tohumları
- kıdemli
- Dizi
- hizmet
- Hizmetler
- set
- ayar
- meli
- gösterilen
- Gösteriler
- Basit
- Yavaş yavaş
- Enstantane fotoğraf
- So
- Yazılım
- yazılım Mühendisliği
- çözüm
- Çözümler
- Kaynak
- kaynaklar
- uzman
- Harcama
- Spor
- SQL
- Açıklama
- ifadeleri
- adım
- Basamaklar
- mağaza
- saklı
- altağlar
- sonraki
- böyle
- yüzme
- tablo
- TAG
- Bizi daha iyi tanımak için
- alınan
- Hedef
- Görev
- görevleri
- takım
- söylemek
- şablon
- test
- testleri
- o
- The
- ve bazı Asya
- Onları
- sonra
- bu nedenle
- Bunlar
- onlar
- Re-Tweet
- İçinden
- zaman
- zaman tükeniyor
- zamanlar
- için
- simge
- geleneksel
- Dönüştürmek
- Dönüşüm
- tetikleyebilir
- tetiklenir
- tip
- tipik
- Uk
- anlayış
- kullanım
- Kullanılmış
- kullanıcı
- kullanım
- kullanma
- kamu hizmetleri
- üzerinden
- Görüntüle
- depo
- Depolama
- Yol..
- we
- ağ
- web hizmetleri
- Web sitesi
- İYİ
- ne zaman
- hangi
- süre
- Vikipedi
- irade
- ile
- içinde
- İş
- iş akışı
- çalışır
- olur
- yazılı
- yıl
- sen
- kendiniz
- zefirnet