Core Components
S2V Client (Command Line Interface - CLI):
This is the primary way users interact with S2V. It's a Python-based application that provides commands like s2v login, s2v validate, s2v generate, and s2v version.
YAML-based Model Definition Layer:
S2V relies heavily on YAML files for users to define their Data Vault models. This includes:
- Configuration Files: Such as
data_vault_settings.yaml
(for global DV settings) andsource_system_settings.yaml
(for defining source system specific configurations). - Data Vault Object Files: Individual YAML files defining Hubs, Links, Satellites, and other Data Vault entities. This declarative approach allows users to specify what their Data Vault should look like.
- Source Metadata Input (information_schema.csv): This CSV file provides S2V with the necessary metadata about the source system tables and columns (like TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE). It's essential for validating the model definitions against the actual source structures.
S2V Service:
This is the core backend engine of the Stream2Vault platform. When you use the S2V Client to validate your model or generate code, the client sends your YAML definitions and configurations to the S2V Service. The S2V Service then:
- Performs validation of your Data Vault model against rules and source metadata.
- Generates the SQL scripts (DDL, DML) and other deployment artifacts (like Makefiles) needed to create and populate your Data Vault.
- Integrates with your organization's authentication services to ensure secure operations. Essentially, it's the central processing unit that translates your designs into a deployable Data Vault.