dbt sources

इंटरमीडिएट dbt

Mike Metzger

Data Engineer

dbt source क्या है?

  • EL प्रक्रिया द्वारा लोड किए डेटा का नाम और विवरण
  • डेटा लाइनएज परिभाषित करने में मदद
  • टेस्ट
  • डॉक्यूमेंटेशन

डेटा स्रोत

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

Sources

  • डेटा लाइनएज जानकारी देता है
  • वेयरहाउस में डेटा का फ्लो बताता है
  • Jinja {{ source() }} फंक्शन का उपयोग करें
    • {{ ref() }} फंक्शन जैसा
  • कच्चे डेटा तक पहुँचना आसान बनाता है
select * 
from
  {{ source('raw', 'orders') }}
इंटरमीडिएट dbt

Source परिभाषित करना

  • .yml फाइल में
  • फाइल models/model_properties.yml हो सकती है
    • या डायरेक्टरी की कोई और .yml फाइल
  • sources: सेक्शन के अंतर्गत
  • - name: विकल्प से source का नाम दें
  • हर source टेबल को tables: के तहत - name: से परिभाषित करें
  • डेटा वेयरहाउस के प्रकार पर विकल्प बदलते हैं; dbt डॉक्यूमेंटेशन देखें।
version: 2

sources:
  - name: raw
    tables:
      - name: phone_orders
      - name: web_orders
इंटरमीडिएट dbt

Sources तक पहुँचना

  • {{ source() }} का उपयोग करें
  • {{ source(source_name, table_name) }}
  • कंपाइल्ड क्वेरी में टेबल का सही नाम देता है
select * from
  {{ source('raw', 'phone_orders') }}
UNION
select * from
  {{ source('raw', 'web_orders') }}
-- dbt compiled
select * from
  'raw'.'phone_orders'
UNION
select * from
  'raw'.'web_orders'
इंटरमीडिएट dbt

Sources की टेस्टिंग

  • आप sources पर tests लगा सकते हैं
  • तरीक़े models जैसे ही
  • models: के बजाय sources: सेक्शन में परिभाषित
  • उसी .yml फाइल में जहाँ sources परिभाषित हैं
version: 2

sources:
  - name: raw
    tables:
      - name: phone_orders
        columns:
          - name: id
            tests:
              - not_null
              - unique
      - name: web_orders
इंटरमीडिएट dbt

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

इंटरमीडिएट dbt

Preparing Video For Download...