डाइमेंशनल मॉडलिंग

Snowflake में डेटा मॉडलिंग परिचय

Nuno Rocha

Director of Engineering

डाइमेंशनल डेटा मॉडल का परिचय

  • डाइमेंशनल मॉडलिंग: एक डेटा स्ट्रक्चरिंग तकनीक जो मापों (facts) को वर्णनात्मक विवरणों (dimensions) से अलग करती है, रिपोर्टिंग और विश्लेषण के लिए अनुकूलित।

डाइमेंशनल मॉडल

Snowflake में डेटा मॉडलिंग परिचय

डाइमेंशनल डेटा मॉडल का परिचय (1)

  • डाइमेंशन्स: डाइमेंशनल मॉडल में श्रेणीबद्ध डेटा वाली एंटिटीज़।
  • फैक्ट्स: वे एंटिटीज़ जो डाइमेंशन्स की श्रेणियों के भीतर गतिविधियों को कैप्चर और मापती हैं।

डाइमेंशनल कॉलेज मॉडल

Snowflake में डेटा मॉडलिंग परिचय

स्टार डाइमेंशनल मॉडल स्कीमा

डाइमेंशनल स्टार मॉडल

Snowflake में डेटा मॉडलिंग परिचय

स्टार डाइमेंशनल मॉडल स्कीमा

  • Snowflake Data Warehouse: एक क्लाउड-आधारित स्टोरेज और एनालिटिक्स सेवा।
  • Snowflake Schema: डाइमेंशनल मॉडल में डेटा संगठित करने की विधि, जिसमें सब-डाइमेंशन्स शामिल हैं।

Snowflake, डेटा वेयरहाउस बनाम डाइमेंशनल मॉडल

Snowflake में डेटा मॉडलिंग परिचय

स्नोफ्लेक डाइमेंशनल मॉडल स्कीमा

डाइमेंशनल स्नोफ्लेक मॉडल

Snowflake में डेटा मॉडलिंग परिचय

डाइमेंशन्स परिभाषित करना

  • स्पष्टता के लिए एंटिटीज़ का नाम dim_EntityName रखें, ताकि मॉडल में डाइमेंशन्स स्पष्ट दिखें:
ALTER TABLE students RENAME TO dim_students;
ALTER TABLE classes RENAME TO dim_classes;
ALTER TABLE schools RENAME TO dim_schools;
Snowflake में डेटा मॉडलिंग परिचय

डेट डाइमेंशन परिभाषित करना

  • स्कूल में छात्र नामांकन से संबंधित प्रमुख निश्चित तिथियाँ रखने के लिए dim_date टेबल बनाना:
CREATE OR REPLACE TABLE dim_date (
    date_id NUMBER(10,0) PRIMARY KEY,
    year NUMBER(4,0),
    semester VARCHAR(255)
);
Snowflake में डेटा मॉडलिंग परिचय

एनरोलमेंट्स फैक्ट परिभाषित करना

  • सभी डाइमेंशन्स के रेफरेंस वाली एक फैक्ट एंटिटी बनाएँ:
CREATE OR REPLACE TABLE fact_enrollments (
    enrollment_id NUMBER(10,0) PRIMARY KEY,
    student_id NUMBER(10,0),
    class_id NUMBER(10,0),
    date_id NUMBER(10,0),
    FOREIGN KEY (student_id) REFERENCES dim_students(student_id),
    FOREIGN KEY (class_id) REFERENCES dim_classes(class_id),
    FOREIGN KEY (date_id) REFERENCES dim_date(date_id)
);
Snowflake में डेटा मॉडलिंग परिचय

डाइमेंशन्स से डेटा प्राप्त करना

कॉलेज डाइमेंशनल डेटा मॉडल

Snowflake में डेटा मॉडलिंग परिचय

डाइमेंशन्स से डेटा प्राप्त करना (1)

SELECT name, 
    class_name
FROM fact_enrollments
    JOIN dim_students -- छात्र नाम पाने के लिए जॉइन
    ON fact_enrollments.student_id = dim_students.student_id
    JOIN dim_classes -- क्लास नाम पाने के लिए जॉइन
    ON fact_enrollments.class_id = dim_classes.class_id
    JOIN dim_schools -- केवल 'Science' स्कूल के लिए फ़िल्टर करने हेतु जॉइन
    ON dim_classes.school_id = dim_schools.school_id
    JOIN dim_date -- 2023 वर्ष तक डेटा सीमित करने हेतु जॉइन
    ON fact_enrollments.date_id = dim_date.date_id
WHERE dim_schools.school_name = 'Science' 
    AND dim_date.year = 2023;
Snowflake में डेटा मॉडलिंग परिचय

टर्मिनोलॉजी और फंक्शंस का ओवरव्यू

  • डाइमेंशनल मॉडलिंग: एक डेटा स्ट्रक्चरिंग तकनीक जो मापों (facts) को वर्णनात्मक विवरणों (dimensions) से अलग करती है, रिपोर्टिंग और विश्लेषण के लिए अनुकूलित
  • डाइमेंशन्स: डाइमेंशनल मॉडल में श्रेणीबद्ध डेटा वाली एंटिटीज़
  • फैक्ट्स: एंटिटीज़ जो डाइमेंशन्स की श्रेणियों में गतिविधियों को कैप्चर और मापती हैं
  • ALTER TABLE: मौजूदा एंटिटी की संरचना बदलने के लिए SQL कमांड
  • RENAME TO: ALTER TABLE के साथ उपयोग होने वाला SQL कमांड, एंटिटी का नाम बदलने के लिए
  • JOIN ON: संबंधित कॉलम के आधार पर टेबल्स की पंक्तियाँ संयोजित करने वाला SQL क्लॉज़
  • WHERE: निर्धारित शर्त के आधार पर रिकॉर्ड फ़िल्टर करने वाला SQL क्लॉज़
  • AND: कई शर्तें जोड़ने के लिए WHERE के साथ प्रयोग होने वाला लॉजिकल ऑपरेटर
Snowflake में डेटा मॉडलिंग परिचय

फंक्शंस ओवरव्यू

-- किसी एंटिटी को संशोधित करना
ALTER TABLE table_name 
RENAME TO new_name;
-- मर्ज की गई एंटिटीज़ से डेटा क्वेरी करना, विशिष्ट शर्तों द्वारा फ़िल्टर किया हुआ
SELECT 
    table_name.column_name,
    other_name.*
FROM table_name
    JOIN other_table 
    ON table_name.FK = other_table.PK
WHERE column_name  condition  value
    AND column_name  condition  value;
Snowflake में डेटा मॉडलिंग परिचय

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

Snowflake में डेटा मॉडलिंग परिचय

Preparing Video For Download...