कस्टम, पुन: उपयोग योग्य टेस्ट बनाना

इंटरमीडिएट dbt

Mike Metzger

Data Engineer

पुन: उपयोग योग्य टेस्ट क्या है?

  • ऐसा टेस्ट जिसे कई स्थितियों में दोबारा उपयोग किया जा सके
  • बिल्ट-इन dbt टेस्ट जैसा, पर किसी भी कंडीशन की जाँच कर सकता है
  • Jinja टेम्पलेटिंग का उपयोग करता है
  • tests/generic प्रोजेक्ट फ़ोल्डर में .sql फ़ाइल के रूप में सेव करें
  • जिस भी मॉडल में उपयोग हो, उसके model_properties.yml में टेस्ट जोड़ना होगा

पुन: उपयोग योग्य

1 Photo by Sigmund on Unsplash
इंटरमीडिएट dbt

पुन: उपयोग योग्य टेस्ट बनाना

{% test check_gt_0(model, column_name) %}

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

{% endtest %}
  1. पहली पंक्ति (कम से कम): {% test testname(model, column_name) %}
  2. SQL क्वेरी जोड़ें, साथ में {{ object }} सब्स्टिट्यूशन
  3. फ़ाइल को {% endtest %} से समाप्त करें
इंटरमीडिएट dbt

मॉडल पर पुन: उपयोग योग्य टेस्ट लगाना

  • model_properties.yml में जोड़ें
  • ज़रूरत के अनुसार ऑब्जेक्ट परिभाषित करें
  • models: name वैल्यू मॉडल आर्ग्यूमेंट है
  • columns: name आर्ग्यूमेंट column_name आर्ग्यूमेंट है
version: 2

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

- name: total_fare tests: - check_gt_0
इंटरमीडिएट dbt

अतिरिक्त पैरामीटर

  • टेस्ट में एक्स्ट्रा पैरामीटर जोड़ सकते हैं
  • accepted_values और relationships जैसा
  • Jinja हेडर में आर्ग्यूमेंट के रूप में जोड़ें
{% test check_columns_unequal(model, column_name, column_name2) %}

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

{% endtest %}
इंटरमीडिएट dbt

अतिरिक्त पैरामीटर वाले टेस्ट लागू करना

  • बाकी टेस्ट की तरह परिभाषित करें
  • टेस्ट विवरण के नीचे एक्स्ट्रा आर्ग्यूमेंट जोड़ें
models:
  - name: order
    columns:
      - name: order_time
        tests:
          - check_columns_unequal:
              column_name2: shipped_time
इंटरमीडिएट dbt

अभ्यास करते हैं!

इंटरमीडिएट dbt

Preparing Video For Download...