Özel, yeniden kullanılabilir testler oluşturma

Orta Düzey dbt

Mike Metzger

Data Engineer

Yeniden kullanılabilir test nedir?

  • Birden çok durumda yeniden kullanılabilen test
  • Yerleşik dbt testine benzer, ancak herhangi bir koşulu denetleyebilir
  • Jinja şablonlama kullanır
  • tests/generic klasöründe .sql dosyası olarak kaydedilir
  • Kullanan her model için model_properties.yml dosyasına eklenmelidir

Yeniden kullanılabilir

1 Fotoğraf: Sigmund, Unsplash
Orta Düzey dbt

Yeniden kullanılabilir test oluşturma

{% test check_gt_0(model, column_name) %}

select * 
from {{ model }}
where {{ column_name }} > 0

{% endtest %}
  1. İlk satır (en az): {% test testname(model, column_name) %}
  2. {{ object }} yerlerine geçecek SQL sorgusunu ekleyin
  3. Dosyayı {% endtest %} ile bitirin
Orta Düzey dbt

Yeniden kullanılabilir testi modele uygulama

  • model_properties.yml dosyasına ekleyin
  • Nesneleri gerektiği gibi belirtin
  • models: name değeri model argümanıdır
  • columns: name değeri column_name argümanıdır
version: 2

models:
  - name: taxi_rides_raw
    columns:
      - name: tpep_pickup_datetime
        tests:
          - not_null

- name: total_fare tests: - check_gt_0
Orta Düzey dbt

Ek parametreler

  • Teste ek parametreler ekleyebilirsiniz
  • accepted_values ve relationships gibidir
  • Jinja başlığına argüman olarak ekleyin
{% test check_columns_unequal(model, column_name, column_name2) %}

select * from {{ model }}
where {{ column_name }} = {{ column_name2 }}

{% endtest %}
Orta Düzey dbt

Ek parametreli testleri uygulama

  • Diğer testler gibi tanımlayın
  • Test ayrıntılarının altına ek argümanları ekleyin
models:
  - name: order
    columns:
      - name: order_time
        tests:
          - check_columns_unequal:
              column_name2: shipped_time
Orta Düzey dbt

Hadi pratik yapalım!

Orta Düzey dbt

Preparing Video For Download...