dbt में टेस्टिंग का परिचय

इंटरमीडिएट dbt

Mike Metzger

Data Engineer

टेस्ट क्या है?

  • dbt ऑब्जेक्ट्स की assertions/validations
    • Models
    • Sources और seeds
  • डेटा अपेक्षित है या नहीं, यह जाँचने के लिए
    • Null values
    • Values in range
    • डेटा के बीच relationships
    • Custom tests (आगे कवर करेंगे)
इंटरमीडिएट dbt

टेस्ट के प्रकार

dbt तीन तरह के टेस्ट देता है

  1. Built-in (4 pre-defined)
  2. Singular*
  3. Generic*

$$

  • आगे कवर करेंगे
इंटरमीडिएट dbt

Built-in tests

  • unique
    • जाँचें कि सभी values यूनिक हैं
  • not_null
    • जाँचें कि कोई value null नहीं है
  • accepted_values
    • जाँचें कि सभी values तय लिस्ट में हैं
    • values: [a, b, c, d]
  • relationships
    • किसी खास table/column से कनेक्शन जाँचता है
    • to: ref('table')
    • field: id
इंटरमीडिएट dbt

टेस्ट कहाँ लिखें?

  • models/model_properties.yml
    • फ़ाइल का नाम कुछ भी हो सकता है
    • models/schema.yml
  • tests: सबहेडिंग में परिभाषित करें
version: 2

models:
  - name: taxi_rides_raw
    columns:
      - name: tpep_pickup_datetime
        tests:
          - not_null
      - name: payment_type
        tests:
          - not_null
          - accepted_values:
              values: [1, 2, 3, 4, 5, 6]
इंटरमीडिएट dbt

टेस्ट कैसे चलाएँ

  • dbt test
    • dbt test --select modelname
  • देखें कि आउटपुट पास हुआ या नहीं
  • फेल होने पर compiled SQL के खिलाफ जाँचें

dbt failed test output

इंटरमीडिएट dbt

फेल्यर्स ढूँढना

  1. Compiled SQL कोड ढूँढें
  2. target/compiled/projectname/models/model_properties.yml डायरेक्टरी में
    • target/compiled/nyc_yellow_taxi/models/model_properties.yml/
  3. उपयुक्त .sql फ़ाइल ढूँढें (फेल हुए टेस्ट से मिलती)
  4. कंटेंट कॉपी कर database client में चलाएँ और समस्या कहाँ है, जाँचें
  5. डेटा से हटाएँ और dbt run / dbt test दोबारा चलाएँ
इंटरमीडिएट dbt

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

इंटरमीडिएट dbt

Preparing Video For Download...