dbt projesini kurma ve verileri yükleme

Vaka Çalışması: dbt ile E-Ticaret Veri Modelleri Oluşturma

Susan Sun

Freelance Data Scientist

Gözden geçirme: dbt kurulumu ve başlatma

dbt'yi yükleyin

pip install dbt

looker_ecommerce dbt projesini başlatın

dbt init looker_ecommerce

Kurulumun başarılı olduğunu doğrulayın

cd looker_ecommerce
dbt debug

dbt tarafından otomatik oluşturulan dizin:

Önceki dersteki ekran görüntüsünün tekrarı. dbt init tarafından otomatik oluşturulan dizinleri gösterir. Üst klasör looker e-commerce. Alt klasörler: analyses, macros, models, seeds, snapshots ve tests. Ayrıca üç dosya: gitignore, dbt project yaml ve readme markdown.

Vaka Çalışması: dbt ile E-Ticaret Veri Modelleri Oluşturma

Veriyi tanıma: dağıtım merkezleri

  • distribution_centers.csv küçük ve statiktir; yalnızca 10 satır içerir

  • Ham distribution_centers.csv dosyasından örnek

Üç veri satırı ve 4 sütun içeren dağıtım merkezi veri dosyası ön izlemesi. Sütun adları: id, name, latitude ve longitude.

  • id: Her dağıtım merkezi için benzersiz tanımlayıcı
  • name: Dağıtım merkezinin adı
  • latitude: Dağıtım merkezinin enlemi
  • longitude: Dağıtım merkezinin boylamı
Vaka Çalışması: dbt ile E-Ticaret Veri Modelleri Oluşturma

Veriyi tanıma: siparişler

orders.csv büyük ve sürekli güncellenir; 125.000 satır ve 9 sütun içerir

  • order_id: Her sipariş kalemi için benzersiz ID
  • user_id: Siparişi veren kullanıcının ID'si
  • status: Sipariş durumu
  • gender: Kullanıcının cinsiyeti
  • created_at: Siparişin oluşturulma zaman damgası
  • returned_at: İadenin zaman damgası
  • shipped_at: Gönderim zaman damgası
  • delivered_at: Teslimat zaman damgası
  • num_of_items: Siparişteki ürün sayısı
Vaka Çalışması: dbt ile E-Ticaret Veri Modelleri Oluşturma

Veriyi tanıma: siparişler

Ham orders.csv dosyasından örnek:

İki veri satırı ve 9 sütun içeren siparişler veri dosyası ön izlemesi. Sütun adları: order id, user id, status, gender, created at, returned at, shipped at, delivered at ve num of items.

Vaka Çalışması: dbt ile E-Ticaret Veri Modelleri Oluşturma

Ham kaynak ve seed veri kaynaklarını ayarlama

Dağıtım merkezi ham veri dosyası:

  • Veri özellikleri:
    • Küçük, düz dosya (csv)
    • Yavaş değişen veri

Siparişler ham veri dosyası:

  • Veri özellikleri:
    • Büyük veri kümesi
    • Hızlı değişen veri
  • dbt yükleme yöntemi:
    • dbt seed
    • Tek seferlik dosya olarak yükle
  • dbt yükleme yöntemi:
    • dbt source
    • DuckDB bağlayıcısı
Vaka Çalışması: dbt ile E-Ticaret Veri Modelleri Oluşturma

Ham kaynaklar ve seed veri kaynaklarını ayarlama

dbt init temel dosya yapısını otomatik oluşturur:

looker_ecommerce/
  macros/
  models/
  seeds/
  snapshots/
  tests/
  dbt_project.yml
Vaka Çalışması: dbt ile E-Ticaret Veri Modelleri Oluşturma

Ham kaynak ve seed veri kaynaklarını ayarlama

distribution_centerseed olarak yükleyin:

looker_ecommerce/
  macros/
  models/
    stg_looker__distribution_centers.sql
  seeds/
    looker__distribution_centers.csv
  snapshots/
  tests/
  dbt_project.yml

stg_looker__distribution_centers.sql içinde:

SELECT 
  id,
  name,
  latitude,
  longitude
FROM 
 {{ref('looker__distribution_centers')}}
Vaka Çalışması: dbt ile E-Ticaret Veri Modelleri Oluşturma

Ham kaynak ve seed veri kaynaklarını ayarlama

orderssource olarak yükleyin:

looker_ecommerce/
  macros/
  models/
    stg_looker__orders.sql
  seeds/
  snapshots/
  tests/
  dbt_project.yml

stg_looker__orders.sql içinde:

SELECT *
FROM 
{{source('looker_ecommerce', 'orders')}}
Vaka Çalışması: dbt ile E-Ticaret Veri Modelleri Oluşturma

Kaynakları ve aşama modellerini belgeleme

sources dokümantasyonu için:

looker_ecommerce/
  macros/
  models/
    _looker__sources.yml
  seeds/
  snapshots/
  tests/
  dbt_project.yml

_looker__sources.yml içinde:

version: 2

sources:
  - name: looker_ecommerce
    tables:
      - name: orders
Vaka Çalışması: dbt ile E-Ticaret Veri Modelleri Oluşturma

Kaynakları ve aşama modeli belgeleme

  • Aynı models dizininde örnek _looker__models.yml dosyası:
version: 2

models:
  - name: stg_looker__distribution_centers
    description: Dağıtım merkezi adı ve konumu    

  - name: stg_looker__orders
    description: Sipariş durumu gibi sipariş bilgileri
Vaka Çalışması: dbt ile E-Ticaret Veri Modelleri Oluşturma

Kaynaklar, seed'ler, modeller ve yaml

looker_ecommerce/
  macros/
  models/
    _looker__models.yml
    _looker__sources.yml
    stg_looker__distribution_centers.sql
    stg_looker__orders.sql
  seeds/
    looker__distribution_centers.csv
  snapshots/
  tests/
  dbt_project.yml
Vaka Çalışması: dbt ile E-Ticaret Veri Modelleri Oluşturma

Gözden geçirme: dbt alt komutları

csv dosyalarını seed olarak yükler

dbt seed

Projede tüm modelleri oluşturur/günceller

dbt run

Belirtilen modeli oluşturur/günceller

dbt run --select model

Projede tüm testleri çalıştırır

dbt test 

Belirtilen modelle testleri çalıştırır

dbt test --select model

dbt run ve dbt test'i birleştirir

dbt build
dbt build --select model
Vaka Çalışması: dbt ile E-Ticaret Veri Modelleri Oluşturma

Gözden geçirme: en iyi uygulama rehberleri

model adlandırma yapısı:

  • veri kaynağı adıyla model adını ayırmak için çift alt çizgi kullanır
  • <data_source>__<model_name>.sql

ör.

  • stg_looker__distribution_centers.sql
  • stg_looker__orders.sql

yaml dosya adlandırma yapısı:

  • tek alt çizgi ile başlar
  • veri kaynağı adı ile yapıt adını ayırmak için çift alt çizgi kullanır
  • _<data_source>__<artifact_type>.yml

ör.

  • _looker__models.yml
  • _looker__sources.yml
1 https://docs.getdbt.com/best-practices
Vaka Çalışması: dbt ile E-Ticaret Veri Modelleri Oluşturma

Hadi pratik yapalım!

Vaka Çalışması: dbt ile E-Ticaret Veri Modelleri Oluşturma

Preparing Video For Download...