Zpět na domů

Modelování Data Vault v asapBI IDE

IDE asapBI zjednodušuje vytváření hubů, linků a satelitů Data Vault v Greenplum. Automatická generace DDL s FK, UNIQUE a metadaty. Vizualní rozhraní v VSCode/Theia pro efektivní modelování DWH.

asapBI: vytváření hubů a linků Data Vault v IDE
Advertisement 728x90

# 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.

Google AdInline article slot

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:

Google AdInline article slot
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).

Google AdInline article slot

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

Advertisement 728x90

Číst dál