🔒 Lekce 2 – Architektura
V této lekci si popíšeme základní architekturu BNS a vysvětlíme její jednotlivé komponenty jako portál, klient, server atd., které vám pomohou lépe pochopit jednotlivé části celého systému.
Poznámka:
Vysvětlení základních pojmů k datovému modelování je součástí dokumentace školení uživatelů – Lekce 2 (podkapitoly Datový model a Dimenze, hierarchie, prvky).
BNS řešení je postavené na technologii Microsoft a založené na architektuře klient-server. Komunikace mezi klientem a serverem zajišťuje portál pomocí počítačové sítě s využitím standardního protokolu TCP/IP.

Na serveru je umístěno několik databází. Hlavní relační databáze BNSI slouží jako datový sklad pro vstupní data zákazníka, uložená ve zdrojových systémech, databázích či souborech (obecně v datových zdrojích). BNSI načítá tato vstupní data pomocí datových pump a transformuje je pro potřeby manažerských výstupů v BNS. Databáze BNSO je určená pro tvorbu datových pohledů (views) do databáze BNSI. Zde jsou data opět různě transformována za účelem tvorby datové kostky (OLAP). Samotní uživatelé poté pracují s panelovým klientským prostředím (aplikací BNS), které komunikuje se serverem skrze BNS portál.
Jednotlivé části jsou blíže popsány v podkapitolách níže.
2.1 BNS Portál a klient
BNS portál je samostatná aplikace napojená na databázový server. K jeho spuštění je dostačující webový prohlížeč, kde můžeme provádět různá nastavení aplikace a pracovat s webovými panely (či napojením na panely v aplikacích PowerBI nebo Tableau).
Chceme-li ovšem používat excelové panely, je nutné nainstalovat i desktopového klienta, který je s portálem propojený. S tím souvisí i prerekvizity typu instalace MS Excel, jenž je součástí MS Office, či jiné.

Poznámka:
I pro BNS Portál lze pro usnadnění přístupu vytvořit ikonu na ploše. Jedná se ovšem pouze o jednoduchý odkaz na URL adresu portálu.

Podrobnější popis práce s klientem, včetně jeho instalace, prerekvizit a aktualizace verze, se nachází v dalších lekcích.
Poznámka:
Na některých projektech může a nemusí být BNS portál (včetně klienta) umístěn z bezpečnostních důvodů na speciálním aplikačním serveru (mimo databázový server).
2.2 Databázový server
- Database Engine Service (32bit)
- Share Features (32bit)
- Analysis Services (64bit)
- Reporting Services (64bit)
Na databázovém serveru pracujeme s několika relačními a analytickými databázemi. Pro jejich správu se používá především nástroj MS SQL Server Management Studio (zkr. SSMS), případně MS Visual Studio (pouze pro analytickou DB).
2.2.1 Služby
Pro fungování BNS jako celku se využívají následující služby od Microsoftu. Tyto služby lze spravovat v SQL Server Configuration Manager (). Také je nutno tyto služby povolit ve firewallu, aby se předešlo případným problémům.

Služba relační instance, která je potřebná mimo jiné proto, aby správně fungovaly automatické aktualizace datového skladu. Nalézt ji lze na C:\Program Files\Microsoft SQL Server\MSSQL11.BNSI\MSSQL\Binn\sqlservr.exe.
Služba analytické instance. Nachází se na C:\Program Files\Microsoft SQL Server\MSAS11.BNS\OLAP\bin\msmdsrv.exe.
Tato služba zajišťuje komunikaci klientů s SQL Serverem. Lze ji nalézt na C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe.
Tato služba slouží k tomu, aby se daly spouštět různé procedury na pozadí z aplikace BNS (např. manuální aktualizace, převody plánů apod.). Je umístěna v C:\Program Files\Microsoft SQL Server\MSSQL11.BNSI\MSSQL\Binn\sqlagent.exe.
2.2.2 Relační instance
Pro každý projekt jsou na serveru vytvořeny minimálně 3 relační databáze:
- BNSI-XXX – datový sklad BNS Integration (→ zkratka BNSI);
- BNSO-XXX – databáze pro OLAP;
- BNSW-XXX – od verze BNS 4 databáze pro web portál;
- BNSE-XXX – databáze pro číselníky (od verze BNS 5).
Zkratkovitý název databáze je vždy doprovázen sufixem ve tvaru „-XXX“, kde XXX je třípísmenná zkratka společnosti (zákazníka).
Poznámka:
Na některých větších projektech se může stát, že bude vytvořeno vícero databází. Například může být odděleno řešení lidských zdrojů z důvodu práv, nebo samostatné databáze pro jednotlivé státy a pak řešení pro celý konsolidovaný koncern apod.
Poznámka:
Do verze BNS 3 existovala aplikační databáze BNS-XXX. Ta byla od verze BNS 4 nahrazena databází pro webový portál BNSW.
2.2.2.1 BNSI
BNSI je datový sklad, kde jsou uložena data ze zdrojových systémů, databází či txt, csv nebo xls souborů apod. Pomocí zde definovaných funkcí a procedur (datových pump) jsou načítána data skutečnosti (případně jiných verzí), vznikající mimo BNS, a následně jsou ukládána do tabulek (číselníků a vazebníků) pro dimenze a do faktových tabulek pro jednotlivé moduly. Podoba, struktura, způsob plnění a aktualizací tabulek je definována v rámci požadavků na data (dokument schválený v rámci zadání před začátkem implementace).
Dále jsou zde i tabulky administrátorské pro konfiguraci aktualizací či vytvořené pohledy (views) pro hierarchické dimenze, tj. tzv. „plachty“ s připravenými poli pro jednotlivé úrovně v hierarchiích.
Jednotlivé objekty pak můžeme rozdělit do několika typů dle jejich účelu. Pro snadnou orientaci jsou, dle tohoto dělení, používány následující prefixy u jejich názvů:
- a – administrátorské tabulky, tj. konfigurační tabulky datového skladu;
- c – faktové/datové tabulky pro kostky (c =cube), tj. tabulky obsahující ID dimenzí a jednotlivé sloupce s hodnotami ukazatelů;
- d – tabulky pro dimenze (číselníky se sloupci s ID, názvy a případně ID atributů);
- r – pomocné vazební tabulky (neboli převodní tabulky/můstek) pro relace mezi dvěma d tabulkami;
- u – uživatelské (nebývají standardně součástí řešení)
- q – view / pohled na data (query), předpřipravené plachty.
Název tabulky | Účel |
---|---|
aBNSICFG | zde jsou uloženy parametry využívané pro aktualizaci BNSI |
aBNSICUBEs | nastavují se zde periodicity aktualizací datových tabulek |
aBNSIDBIDs | obsahuje seznam databází ve smyslu entit (většinou třípísmenná zkratka názvu společnosti) |
aBNSIERRLOG | obsahuje výpis validačních kontrol, tj. prvky nahrazené v rámci aktualizace za totalX |
aBNSIMODULs | seznam vytvořených modulů v kombinaci s DB_ID |
aBNSIPERDEF | uvádí pojmenování typů období pro použití v konfiguračních tabulkách |
aBNSIPROCLIST | uvádí seznam existujících procedur |
aBNSIPROCRELATIONs | obsahuje vazby mezi jednotlivými procedurami |
aBNSIUPDATE | zde nalezneme informace o posledních aktualizacích jednotlivých period každé faktové tabulky |
aBNSIUPDATE1TIME | obdobou tabulky aBNSIUPDATEDEF (viz níže), slouží pro jednorázové aktualizace |
aBNSIUPDATEDEF | zde specifikujeme jak často a od kdy se aktualizují jednotlivé datové tabulky a která období |
aBNSIUPDATELOG | výpis celé historie provedených aktualizací |
aBNSOBJLIST | automaticky plněný seznam objektů v OLAPu - dimenzí a kostek |
aBNSOBJRELATIONS | automaticky plněný seznam vazeb mezi dimenzemi a kostkami |
aBNSPROCESSDEF | zde se vyplňují kostky, které mají podléhat aktualizaci, a pořadí, v jakém jsou procesovány |
aVARCFG | zde jsou uloženy cesty, resp. názvy načítaných souborů, v případě xls souborů i názvy listů |
Upozornění:
Nedoporučuje se tyto tabulky jakkoliv upravovat bez řádného proškolení. Špatné nastavení může zapříčinit nekorektní aktualizaci BNSI, což může vést k nesprávnému zobrazování dat v BNS.
Kromě tabulek a views se v BNSI databázi nachází již dříve zmiňované procedury (datové pumpy). Pokud jakákoliv tabulka podléhá aktualizaci (resp. je plněna automaticky z externího zdroje), souvisí s ní typicky jedna procedura. V ideálním případě se plněná tabulka a ji plnící procedura jmenují stejně. Nicméně procedury mají defaultně delší předpony v názvech, a to ve tvaru: dbo.bnsi_XXX_NazevProcedury. Za XXX se ukrývá konkrétní DB_ID, a samotný název procedury pak často bývá shodný s názvem plněné tabulky.
Poznámka:
Konkrétní standardní relační objekty (tj. tabulky a procedury) jsou blíže popsány v Lekci 3.
2.2.2.2 BNSO
Jedná se o relační databázi pro práci konzultantů, tj. pro tvorbu pohledů (views) pro dimenze a kostky, a dále pro přenosové procedury dat mezi jednotlivými moduly. Načítají se sem i tzv. writeback tabulky, do kterých se ukládají data (povětšinou plánu), která vznikla zápisem v BNS. Konzultanti v ní mají jak právo čtení, tak právo zápisu, tj. můžou vytvářet i upravovat tabulky a pohledy. Jde o zdrojové pohledy a tabulky pro OLAP, proto BNSO jako BNS Olap.
Tato databáze je předpřipravena od ETL specialisty a pro nový projekt už obsahuje tabulky i views pro globální dimenze období, verze, roku, typu hodnot, přepočtu měn apod.
2.2.2.3 BNSW (resp. BNS)
Jedná se o relační databázi pro portál BNS. Obsahuje důležité tabulky pro fungování portálu BNS, jako např. tabulku datových zdrojů, uživatelů, oprávnění, všech objektů (modulů, složek, panelů), jejich překladů apod.
Pro sledování využití panelů slouží tabulka [dbo].[PanelUsage], do které se ukládá statistika, tj. ID uživatele, ID položky (panel), typ aplikace (web vs. desktop), počet otevření a čas posledního otevření dané položky.
Konzultanti mají v této databázi pouze práva pro čtení.
dbo Settings tabulka
2.2.2.4 BNSE
Jedná se o relační databázi určenou pro tzv. číselníky v BNS portále, které slouží uživatelům jakožto prostředí pro zadávání nebo nahrávání datových struktur, event. dat, pro datový sklad. Konzultanti mají plná práva pro tvorbu zdrojových tabulek číselníků, které vytváří dle zadání. Jedná se o tabulky, které nahrazují načítané soubory pro dimenze, dále o tabulky pro číselníky rolí a přiřazení uživatelů k daným rolím (z hlediska práv na data), nebo i tabulky pro načítání hodnot plánu apod.
2.2.3 Analytická databáze
Jedná se o OLAP databázi (OLAP = On-Line Analytical Processing). Obsahuje dimenze, multidimenzionální kostky s výpočty a role, které jsou postavené nad objekty z relačních databází – primárně databáze BNSO, výjimečně i BNSI či BNSE. Analytickou databázi pojmenováváme pouze třípísmennou zkratkou společnosti (XXX).
Pro práci s analytickou databází využíváme program MS Visual Studio, ale lze se k ní připojit i skrze SSMS.
2.3 Datové zdroje
Zdrojová data vstupují do datového skladu BNSI v předepsané struktuře. Pokud nelze získat data připojením přímo na základní systém, dochází k extrakci dat z jiných databází či souborů.
2.3.1 Databáze
Data do BNSI mohou být načítána z DB zákazníka. Je však třeba zajistit, aby v době aktualizace BNSI běžela zdrojová DB a bylo umožněné čtení dat z tabulek či views, jež byly k tomuto účelu vybrány. Je nutné, aby název DB a tabulek/views, jež BNSI využívá pro import dat, zůstal neměnný. V případě jakékoliv změny je nutné před aktualizaci BNSI změnit tyto údaje v tabulce [aVARCFG] v BNSI, jež slouží k definování datových zdrojů.
Pokud se daná DB nenachází na stejném PC/serveru, je nutné, aby síťová cesta k DB zůstala neměnná, resp. název PC/serveru zůstal neměnný. Pokud dojde ke změně názvu PC/serveru na němž je zdrojová DB, odkud se data exportují do BNSI, je nutné tyto změny provést v již vytvořených spojeních:
- Linked Server – součást MS SQL (změny je možné provést v Management Studiu);
- Datové zdroje (ODBC) – součást Windows (změny nutno provést přímo ve Windows pro příslušný zdroj: ovládací panely → nástroje pro správu → datové zdroje ODBC → systémové DSN).
2.3.2 Soubory
Načítané soubory lze rozdělit na dva druhy:
- S pevným jednoznačným názvem, např.: „zakaznik.txt/xls/csv“ (název souboru je záměrně bez diakritiky). Často používané pro číselníky a převodové můstky. Obsahují struktury a data většinou bez udání času platnosti (nemusí být pravidlem).
- S periodicitou (roční, měsíční nebo jinou), např.: „trzby_2008_01.txt/xls/csv” (název souboru je záměrně bez diakritiky). Obsahují data (hodnoty ukazatelů) s udáním data (obvykle rok a měsíc, popř. jiné periody), k němuž byla data pořízena.
Pro všechny soubory platí:
- soubory je nutné uchovávat v adresáři, jenž byl zřízen k tomuto účelu. Pokud se změní cesta k datovým souborů, je nutné tuto cestu změnit opět v tabulce [aVARCFG] v BNSI, jenž slouží k definování datových zdrojů (v případě problémů kontaktujte svého administrátora BNS).
- struktura těchto souborů (počet sloupců a jejich názvy, znaková sada u csv souborů) musí zůstat neměnná.