Data Vault

Introdução à Modelagem de Dados no Snowflake

Nuno Rocha

Director of Engineering

Introdução ao modelo Data Vault

  • Modelo Data Vault: Técnica de modelagem focada no rastreamento histórico, caracterizada por usar hubs, links e satélites.

Modelo Data Vault

Introdução à Modelagem de Dados no Snowflake

Componentes do Data Vault

  • Hubs: Representam conceitos de negócio únicos usando uma única chave de negócio.

Modelo Data Vault: hubs

Introdução à Modelagem de Dados no Snowflake

Componentes do Data Vault (1)

  • Links: Capturam relacionamentos e interações entre hubs.

Modelo Data Vault: Links

Introdução à Modelagem de Dados no Snowflake

Componentes do Data Vault (2)

  • Satélites: Armazenam detalhes descritivos e históricos relacionados a hubs e links.

Modelo Data Vault: Satélites

Introdução à Modelagem de Dados no Snowflake

Construindo hubs

Hubs do Data Vault de uma faculdade

Introdução à Modelagem de Dados no Snowflake

Construindo hubs (1)

  • AUTOINCREMENT: Propriedade que gera automaticamente valores numéricos únicos e sequenciais para cada nova linha.
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Introdução à Modelagem de Dados no Snowflake

Construindo hubs (2)

  • Crie um novo hub com uma chave numérica única gerada automaticamente e o id do conceito do hub:
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_id NUMBER(10,0)
);
1 Em seguida, listamos a chave de negócio que identifica cada conceito; student_id vai identificar cada estudante
Introdução à Modelagem de Dados no Snowflake

Construindo hubs (3)

  • Adicione atributos de rastreamento histórico:
CREATE OR REPLACE TABLE hub_students (
    student_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_id NUMBER(10,0),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
Introdução à Modelagem de Dados no Snowflake

Construindo hubs (4)

  • Crie o novo hub de turmas:
CREATE OR REPLACE TABLE hub_classes (
    class_key NUMBER(10,0)
          AUTOINCREMENT 
          PRIMARY KEY,
    class_id NUMBER(10,0),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
  • Crie o novo hub de escolas:
CREATE OR REPLACE TABLE hub_schools (
    school_key NUMBER(10,0) 
          AUTOINCREMENT 
          PRIMARY KEY,
    school_id NUMBER(10,0),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
Introdução à Modelagem de Dados no Snowflake

Construindo links

Links do Data Vault de uma faculdade

Introdução à Modelagem de Dados no Snowflake

Construindo links (1)

  • Crie uma entidade de link com uma chave numérica única gerada automaticamente:
CREATE OR REPLACE TABLE link_enrollments (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY
);
Introdução à Modelagem de Dados no Snowflake

Construindo links (2)

  • Adicione relacionamentos com outras entidades:
CREATE OR REPLACE TABLE link_enrollments (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_key NUMBER(10,0),
    class_key NUMBER(10,0),
    FOREIGN KEY (student_key) REFERENCES hub_students(student_key),
    FOREIGN KEY (class_key) REFERENCES hub_classes(class_key)
);
Introdução à Modelagem de Dados no Snowflake

Construindo links (3)

  • Adicione atributos de rastreamento histórico:
CREATE OR REPLACE TABLE link_enrollments (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    student_key NUMBER(10,0),
    class_key NUMBER(10,0),
    load_date TIMESTAMP,
    record_source VARCHAR(255),
    FOREIGN KEY (student_key) REFERENCES hub_students(student_key),
    FOREIGN KEY (class_key) REFERENCES hub_classes(class_key)
);
Introdução à Modelagem de Dados no Snowflake

Construindo links (4)

  • Crie a nova entidade de link de ofertas:
CREATE OR REPLACE TABLE link_offerings (
    link_key NUMBER(10,0) AUTOINCREMENT PRIMARY KEY,
    class_key NUMBER(10,0),
    school_key NUMBER(10,0),
    load_date TIMESTAMP,
    record_source VARCHAR(255),
    FOREIGN KEY (class_key) REFERENCES hub_classes(class_key),
    FOREIGN KEY (school_key) REFERENCES hub_schools(school_key)
);
Introdução à Modelagem de Dados no Snowflake

Construindo satélites

Satélites do Data Vault de uma faculdade

Introdução à Modelagem de Dados no Snowflake

Construindo satélites (1)

  • Crie um novo satélite listando todos os atributos do conceito:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255)
);
Introdução à Modelagem de Dados no Snowflake

Construindo satélites (2)

  • Adicione atributos de rastreamento histórico:
CREATE OR REPLACE TABLE sat_student (
    name VARCHAR(255),
    email VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255)
);
Introdução à Modelagem de Dados no Snowflake

Construindo satélites (3)

  • Adicione um vínculo entre o satélite e seu respectivo hub:
CREATE OR REPLACE TABLE sat_student (
    student_key NUMBER(10,0),
    name VARCHAR(255),
    email VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255),
    FOREIGN KEY (student_key) REFERENCES hub_students(student_key)
);
Introdução à Modelagem de Dados no Snowflake

Construindo satélites (4)

  • Crie um novo satélite de turma:
CREATE OR REPLACE TABLE sat_class (
    class_key NUMBER(10,0),
    class_name VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255),
    FOREIGN KEY (class_key) 
    REFERENCES hub_classes(class_key)
);
  • Crie um novo satélite de escola:
CREATE OR REPLACE TABLE sat_school (
    school_key NUMBER(10,0),
    school_name VARCHAR(255),
    load_date TIMESTAMP,
    record_source VARCHAR(255),
    FOREIGN KEY (school_key) 
    REFERENCES hub_schools(school_key)
);
Introdução à Modelagem de Dados no Snowflake

Visão geral de termos e funções

  • Modelo Data Vault: Técnica de modelagem focada no rastreamento histórico, caracterizada por usar hubs, links e satélites.
  • Hubs: Representam conceitos de negócio únicos usando uma única chave de negócio.
  • Links: Capturam relacionamentos e interações entre hubs.
  • Satélites: Armazenam detalhes descritivos e históricos ligados a hubs e links.
  • CREATE OR REPLACE TABLE: Comando SQL para criar ou substituir a estrutura de uma tabela.
  • PRIMARY KEY: Cláusula SQL que define a coluna como identificador único.
  • AUTOINCREMENT: Propriedade que gera automaticamente valores numéricos únicos e sequenciais para cada nova linha.
  • FOREIGN KEY (...) REFERENCES (...): Cláusula SQL para criar um vínculo entre duas tabelas.
Introdução à Modelagem de Dados no Snowflake

Visão geral das funções

CREATE OR REPLACE TABLE table_name (
      -- Create an auto generated unique value as primary key
      unique_key column_datatype AUTOINCREMENT PRIMARY KEY,
      other_business_key column_datatype,
      foreign_column column_datatype,
      other_foreign_column column_datatype,
      -- Adding relationship with other entities
      FOREIGN KEY(foreign_column) REFERENCES foreign_table(PK_from_foreign_table),
      FOREIGN KEY(other_foreign) REFERENCES foreign_table(PK_from_other_foreign)
);
Introdução à Modelagem de Dados no Snowflake

Vamos praticar!

Introdução à Modelagem de Dados no Snowflake

Preparing Video For Download...