dbt descriptions और tests बनाना

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

Susan Sun

Freelance Data Scientist

docs: dbt user-defined descriptions

  • yaml फाइलों में user-defined descriptions
  • दस्तावेज़ीकरण के लिए: dbt models, sources, seeds, data tests आदि
  • नामकरण कन्वेंशन:
    _<data source>__<asset>.yml
    
  • assets वाले उसी डायरेक्टरी में स्टोर करें
looker_ecommerce/
  macros/
  models/
    _looker__models.yml     <------ 
    _looker__sources.yml    <------
    stg_looker__distribution_center.sql
    stg_looker__orders.sql
  seeds/
    looker__distribution_center.csv
Case Study: dbt के साथ E-Commerce Data Models बनाना

docs: dbt model yaml

Sample _looker__models.yml:

version: 2

models:
  - name: model_name
    description: This is a table
    columns:
      - name: column_name
        description: This is a column
      - name: column_name
        description: This is a column

नोट:

  • version: 2 dbt द्वारा उपयोग किया जाने वाला schema configuration फॉर्मेट है
  • models बताता है कि यह user-defined किस asset को डॉक्युमेंट कर रहा है
  • table name से पहले 2 spaces
  • column name से पहले 4 spaces
Case Study: dbt के साथ E-Commerce Data Models बनाना

dbt data tests: not null और unique

  • चार डिफॉल्ट data tests yaml फाइलों में होते हैं:
    • unique
    • not_null
    • accepted_values
    • relationship

1.unique: हर row का मान unique हो

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - not_null
    ...

2.not_null: किसी row में null मान न हो

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - unique
        - not_null
    - name: column_name
      data_tests:
        - unique
Case Study: dbt के साथ E-Commerce Data Models बनाना

dbt data tests: accepted values

3.accepted_values: केवल सूची के मान स्वीकार हों

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - accepted_values:
            values: ['value_a', 'value_b', 'value_c', NULL]
Case Study: dbt के साथ E-Commerce Data Models बनाना

dbt data tests: relationships

4.relationships: टेबलों के बीच referential integrity (foreign key)

- name: table_1
  columns: 
    - name: column_1
      data_tests:
        - relationships:
            to: ref('table_2')
            field: column_2
Case Study: dbt के साथ E-Commerce Data Models बनाना

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

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

Preparing Video For Download...