dbt डेटा मार्ट्स और स्नैपशॉट मॉडल बनाना

Case Study: dbt के साथ E-Commerce Data Models बनाना

Susan Sun

Freelance Data Scientist

dbt डेटा मार्ट मॉडल्स का परिचय

डेटा मार्ट्स पाइपलाइन के अंत में साफ और सुलभ डेटा मॉडल होते हैं।

उपयोग के मामले

  • डेटा साइंस टीम के लिए फीचर स्टोर्स
  • फाइनेंस टीम के लिए एग्रीगेटेड KPI
  • इंजीनियरिंग टीम के लिए लेटेंसी मेट्रिक
  • SQL को कोड की तरह स्टोर करके दोहराव घटता है
Case Study: dbt के साथ E-Commerce Data Models बनाना

Looker ई-कॉमर्स डेटा मार्ट्स

Customers

इन प्रश्नों के उत्तर:

हमारे ग्राहक कौन हैं?

उनकी खरीदारी के पैटर्न क्या हैं?

डेटा ग्रेन:

प्रति ग्राहक एक पंक्ति

उदाहरण कॉलम:

ग्राहक का नाम, खर्च की गई राशि

Products

इन प्रश्नों के उत्तर:

हमारा राजस्व, लागत, और प्रॉफिट क्या है?

डेटा ग्रेन:

प्रति प्रोडक्ट एक पंक्ति

उदाहरण कॉलम:

प्रोडक्ट कैटेगरी, राजस्व, प्रॉफिट

Case Study: dbt के साथ E-Commerce Data Models बनाना

Looker ई-कॉमर्स डेटा मार्ट्स

एक DAG डायग्राम जो सभी dbt सोर्सेज़ और मॉडल्स व उनके आपसी रिश्ते दिखाता है, Sources हरे रंग में हैं। Models और marts नीले रंग में।

Case Study: dbt के साथ E-Commerce Data Models बनाना

कदम-दर-कदम बिल्डिंग

स्टेप 1: dbt के बाहर SQL लॉजिक सुधारें, फिर रेफरेंसेज़ को dbt सिंटैक्स से बदलें।

विभिन्न CTEs वाले एक सैंपल SQL लॉजिक फ़ाइल का स्क्रीनशॉट।

स्टेप 2: डेटा टेस्ट्स और डॉक्स बनाएँ

टेबल और कॉलम डिस्क्रिप्शंस दिखाती एक सैंपल dbt models YAML फ़ाइल का स्क्रीनशॉट

स्टेप 3: बिल्ड टेस्ट करें! (उदा. dbt build)

Case Study: dbt के साथ E-Commerce Data Models बनाना

dbt स्नैपशॉट मॉडल्स का परिचय

पाँच ऑर्डर स्टेटस:

Processing, Shipped, Complete, Cancelled, और Returned

डेटा सैंपल:

ऑर्डर्स डेटा फ़ाइल का प्रीव्यू जिसमें 2 पंक्तियाँ और 9 कॉलम हैं। कॉलम नाम: order id, user id, status, gender, created at, returned at, shipped at, delivered at, और num of items.

Case Study: dbt के साथ E-Commerce Data Models बनाना

Orders: स्नैपशॉट स्टेटस बदलाव

  • फ़ाइल orders_snapshot.sql बनाएँ
{% snapshot orders_snapshot %}
{{
    config(target_schema='main',
      unique_key='order_id',
      strategy='timestamp',
      updated_at='created_at')
}}

SELECT * 
FROM 
{{source('looker_ecommerce', 'orders')}}

{% endsnapshot %}
  • किसी विशेष स्नैपशॉट मॉडल को चलाएँ
dbt snapshot -s orders_snapshot.sql
  • सभी स्नैपशॉट मॉडल्स चलाएँ
dbt snapshot
  • सभी मॉडल्स चलाएँ (स्नैपशॉट सहित)
dbt build
1 https://docs.getdbt.com/docs/build/snapshots
Case Study: dbt के साथ E-Commerce Data Models बनाना

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

Case Study: dbt के साथ E-Commerce Data Models बनाना

Preparing Video For Download...