# Modelování Data Vault v IDE asapBI: huby, linky a satelity
IDE asapBI jako plugin pro VSCode nebo Theia usnadňuje vytváření struktur Data Vault. Strom vlevo zobrazuje databáze (NORD, ASGARD), schémata (repo_md, repo_fi), katalogy (ODS, DDS) a objekty jako huby (sales_hub). Podporuje Greenplum prostřednictvím modulu generování SQL. Úkol: ve schématu FI vytvořit složku DEMO se dvěma huby, satelity a linkem mezi nimi.
Vytvoření struktury katalogů
Najedte na schéma nebo složku — objeví se možnost nové složky. Zadejte název a balíček pro nasazení (test, prod). Pro dočasné objekty nechte výchozí.
Dokončená složka se integruje do stromu. Proces minimalizuje ruční SQL.
Vytvoření hubu
Vytvořte hub (typ Hub). Systém generuje DDL:
CREATE TABLE repo_fi.product_demo_hub (
date_load date DEFAULT now() NOT NULL,
src_sys text DEFAULT ''::character varying NOT NULL,
hkey int8 GENERATED BY DEFAULT AS IDENTITY
( INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807
START 1 CACHE 20 NO CYCLE) NOT NULL,
CONSTRAINT product_demo_hub_pkey PRIMARY KEY (hkey)
)
USING heap
DISTRIBUTED REPLICATED;
COMMENT ON TABLE repo_fi.product_demo_hub IS '{ "app": "asapBI",
"descr": "Product Demo hub",
"type": "HUB",
"folder": "161"
}';
V editoru zapněte služební pole (zaškrtávací políčko). Tlačítka: přidání business klíče, satelitu, linku.
Přidejte pole product text s UNIQUE omezením a satelit:
ALTER TABLE repo_fi.product_demo_hub DROP CONSTRAINT product_demo_hub_unique;
ALTER TABLE repo_fi.product_demo_hub ADD product text;
COMMENT ON COLUMN repo_fi.product_demo_hub.product IS 'Produkt';
ALTER TABLE repo_fi.product_demo_hub ADD CONSTRAINT
product_demo_hub_unique UNIQUE ( product );
CREATE TABLE repo_fi.product_demo_hub_sat1 (
id bigint GENERATED BY DEFAULT AS IDENTITY primary key,
hkey bigint NOT NULL,
valid_from date DEFAULT now() NOT NULL,
date_load date DEFAULT now() NOT NULL,
src_sys text DEFAULT ''::character varying NOT NULL,
brand text,
categ text,
FOREIGN KEY (hkey) REFERENCES repo_fi.product_demo_hub (hkey)
)
USING heap
DISTRIBUTED REPLICATED;
COMMENT ON TABLE repo_fi.product_demo_hub_sat1 IS '{ "app": "asapBI",
"descr": "New sat",
"type": "SAT",
"owner": "repo_fi.product_demo_hub"
}';
ALTER TABLE repo_fi.product_demo_hub_sat1 ADD CONSTRAINT
product_demo_hub_sat1_unique UNIQUE (hkey, valid_from);
Hub pro zákazníka a link
Podobně vytvořte hub customer_demo_hub s polem customer text:
CREATE TABLE repo_fi.customer_demo_hub (
date_load date DEFAULT now() NOT NULL,
src_sys text DEFAULT ''::character varying NOT NULL,
hkey int8 GENERATED BY DEFAULT AS IDENTITY
( INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807
START 1 CACHE 20 NO CYCLE) NOT NULL,
customer text NULL,
CONSTRAINT customer_demo_hub_pkey PRIMARY KEY (hkey),
CONSTRAINT customer_demo_hub_unique UNIQUE (customer)
)
USING heap
DISTRIBUTED REPLICATED;
COMMENT ON TABLE repo_fi.customer_demo_hub IS '{ "app": "asapBI",
"descr": "Customer Demo hub",
"type": "HUB",
"folder": "161"
}';
Přidejte link mezi huby:
CREATE TABLE repo_fi.customer_demo_hub_link1 (
id bigint GENERATED BY DEFAULT AS IDENTITY primary key,
customer_demo_hub bigint,
date_load date DEFAULT now() NOT NULL,
src_sys text DEFAULT ''::character varying NOT NULL,
product_demo_hub bigint ,
FOREIGN KEY (customer_demo_hub) REFERENCES repo_fi.customer_demo_hub (hkey),
FOREIGN KEY (product_demo_hub) REFERENCES repo_fi.product_demo_hub (hkey)
)
USING heap
DISTRIBUTED REPLICATED;
COMMENT ON TABLE repo_fi.customer_demo_hub_link1 IS '{ "app": "asapBI",
"descr": "New link",
"type": "LINK"
}';
ALTER TABLE repo_fi.customer_demo_hub_link1
ADD CONSTRAINT customer_demo_hub_link1_unique
UNIQUE (customer_demo_hub, product_demo_hub);
Link se zobrazí pod oběma huby. K linkům se přidávají satelity (+Sat).
Struktura v DEMO:
- Hub Product + satelit (brand, categ)
- Hub Customer
- Link mezi huby
Výhody přístupu
- Autogenerování DDL: Plný SQL pro huby, linky, satelity s FK, UNIQUE, COMMENT v JSON.
- Vizualizace: Strom objektů, diagramy vazeb.
- Kompatibilita: SQL se spouští ručně (DBeaver), objekty se synchronizují.
- Flexibilita: Dočasné/permanentní objekty, balíčky pro CI/CD.
- Fokus: Skrytí služebních polí (hkey, date_load, src_sys).
Podpora Greenplum; rozšíření na jiné SÚBD možné.
Co je důležité
- Automatizuje rutinní JOIN a DDL v Data Vault.
- Integrace s VSCode/Theia pro middle/senior vývojáře.
- Generuje production-ready SQL s metadaty v COMMENT.
- Podpora linků s FK na hkey hubů.
- Vizální editace bez ztráty kontroly nad kódem.
— Editorial Team
Zatím žádné komentáře.