dbt प्रोजेक्ट सेटअप करना और डेटा लोड करना

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

Susan Sun

Freelance Data Scientist

रीव्यू: dbt सेटअप और इनिशियलाइज़ेशन

dbt इंस्टॉल करें

pip install dbt

dbt प्रोजेक्ट looker_ecommerce इनिशियलाइज़ करें

dbt init looker_ecommerce

सेटअप सफल है, जाँचें

cd looker_ecommerce
dbt debug

dbt द्वारा ऑटो-जनरेटेड फाइल डायरेक्टरी:

पिछले पाठ का वही स्क्रीनशॉट. इसमें dbt init से ऑटो-जनरेट हुई फाइल डायरेक्टरीज़ दिखती हैं. टॉप-लेवल फोल्डर looker e-commerce है. चाइल्ड फोल्डर: analyses, macros, models, seeds, snapshots, और tests. साथ में तीन फाइलें: gitignore, dbt project yaml, और readme markdown.

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

डेटा से परिचित होना: distribution centers

  • distribution_centers.csv छोटा और स्टैटिक है, केवल 10 रो हैं

  • कच्ची distribution_centers.csv फाइल का एक सैंपल

डिस्ट्रिब्यूशन सेंटर डेटा फाइल का प्रीव्यू जिसमें तीन रो और 4 कॉलम हैं. कॉलम नाम: id, name, latitude, longitude.

  • id: हर डिस्ट्रिब्यूशन सेंटर का यूनिक आइडेंटिफायर
  • name: डिस्ट्रिब्यूशन सेंटर का नाम
  • latitude: डिस्ट्रिब्यूशन सेंटर का latitude कोऑर्डिनेट
  • longitude: डिस्ट्रिब्यूशन सेंटर का longitude कोऑर्डिनेट
Case Study: dbt के साथ E-Commerce Data Models बनाना

डेटा से परिचित होना: orders

orders.csv बड़ा है और लगातार अपडेट होता है, 125,000 रो और 9 कॉलम

  • order_id: हर ऑर्डर आइटम के लिए यूनिक ID
  • user_id: ऑर्डर करने वाले यूज़र की ID
  • status: ऑर्डर की स्थिति
  • gender: यूज़र का जेंडर
  • created_at: ऑर्डर बनने का timestamp
  • returned_at: ऑर्डर रिटर्न होने का timestamp
  • shipped_at: ऑर्डर शिप होने का timestamp
  • delivered_at: ऑर्डर डिलीवर होने का timestamp
  • num_of_items: हर ऑर्डर में आइटम की संख्या
Case Study: dbt के साथ E-Commerce Data Models बनाना

डेटा से परिचित होना: orders

कच्ची orders.csv फाइल का एक सैंपल:

ऑर्डर्स डेटा फाइल का प्रीव्यू जिसमें दो रो और 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 बनाना

रॉ सोर्स और seed डेटा सोर्स सेटअप करना

Distribution center कच्ची डेटा फाइल:

  • डेटा विशेषताएँ:
    • छोटा, फ्लैट फाइल (csv)
    • धीरे बदलने वाला डेटा

Orders कच्ची डेटा फाइल:

  • डेटा विशेषताएँ:
    • बड़ा डेटासेट
    • तेजी से बदलने वाला डेटा
  • dbt लोड मेथड:
    • dbt seed
    • एक बार लोड करने वाली फाइल
  • dbt लोड मेथड:
    • dbt source
    • DuckDB के लिए कनेक्टर
Case Study: dbt के साथ E-Commerce Data Models बनाना

रॉ सोर्स और seed डेटा सोर्स सेटअप करना

dbt init बेसिक फाइल स्ट्रक्चर ऑटो-जनरेट करता है:

looker_ecommerce/
  macros/
  models/
  seeds/
  snapshots/
  tests/
  dbt_project.yml
Case Study: dbt के साथ E-Commerce Data Models बनाना

रॉ सोर्स और seed डेटा सोर्स सेटअप करना

distribution_center को seed के रूप में लोड करें:

looker_ecommerce/
  macros/
  models/
    stg_looker__distribution_centers.sql
  seeds/
    looker__distribution_centers.csv
  snapshots/
  tests/
  dbt_project.yml

stg_looker__distribution_centers.sql में:

SELECT 
  id,
  name,
  latitude,
  longitude
FROM 
 {{ref('looker__distribution_centers')}}
Case Study: dbt के साथ E-Commerce Data Models बनाना

रॉ सोर्स और seed डेटा सोर्स सेटअप करना

orders को source के रूप में लोड करें:

looker_ecommerce/
  macros/
  models/
    stg_looker__orders.sql
  seeds/
  snapshots/
  tests/
  dbt_project.yml

stg_looker__orders.sql में:

SELECT *
FROM 
{{source('looker_ecommerce', 'orders')}}
Case Study: dbt के साथ E-Commerce Data Models बनाना

स्रोतों और स्टेजिंग मॉडल का डॉक्यूमेंटेशन

sources को डॉक्यूमेंट करने के लिए:

looker_ecommerce/
  macros/
  models/
    _looker__sources.yml
  seeds/
  snapshots/
  tests/
  dbt_project.yml

_looker__sources.yml में:

version: 2

sources:
  - name: looker_ecommerce
    tables:
      - name: orders
Case Study: dbt के साथ E-Commerce Data Models बनाना

स्रोतों और स्टेजिंग मॉडल का डॉक्यूमेंटेशन

  • उसी models डायरेक्टरी में सैंपल _looker__models.yml फाइल:
version: 2

models:
  - name: stg_looker__distribution_centers
    description: Distribution center का नाम और लोकेशन    

  - name: stg_looker__orders
    description: Order की जानकारी, जैसे order status
Case Study: dbt के साथ E-Commerce Data Models बनाना

Sources, seeds, models, और yaml

looker_ecommerce/
  macros/
  models/
    _looker__models.yml
    _looker__sources.yml
    stg_looker__distribution_centers.sql
    stg_looker__orders.sql
  seeds/
    looker__distribution_centers.csv
  snapshots/
  tests/
  dbt_project.yml
Case Study: dbt के साथ E-Commerce Data Models बनाना

रीव्यू: dbt सब-कमांड्स

csv फाइलों को seed फाइलों के रूप में लोड करता है

dbt seed

dbt प्रोजेक्ट के सभी मॉडल बनाता/अपडेट करता है

dbt run

निर्दिष्ट मॉडल बनाता/अपडेट करता है

dbt run --select model

dbt प्रोजेक्ट के सभी टेस्ट चलाता है

dbt test 

निर्दिष्ट मॉडल के साथ टेस्ट चलाता है

dbt test --select model

dbt run और dbt test को एक में जोड़ता है!

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

रीव्यू: बेस्ट प्रैक्टिस गाइड्स

models नेमिंग स्ट्रक्चर:

  • डेटा सोर्स नाम और मॉडल नाम अलग करने के लिए डबल अंडरस्कोर उपयोग करता है
  • <data_source>__<model_name>.sql

उदा.

  • stg_looker__distribution_centers.sql
  • stg_looker__orders.sql

yaml फाइल नेमिंग स्ट्रक्चर:

  • सिंगल अंडरस्कोर से शुरू होती है
  • डेटा सोर्स नाम और आर्टिफैक्ट नाम अलग करने के लिए डबल अंडरस्कोर उपयोग करती है
  • _<data_source>__<artifact_type>.yml

उदा.

  • _looker__models.yml
  • _looker__sources.yml
1 https://docs.getdbt.com/best-practices
Case Study: dbt के साथ E-Commerce Data Models बनाना

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

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

Preparing Video For Download...