Odpovídající vývoj BI-analýzy v asapBI: lokální stack a grafické View
V systému asapBI je plně podporována offline práce při vývoji BI-analýz. Používá se lokální Docker-stack s PostgreSQL a ClickHouse, grafické SQL-View ve formátu JSON a verzování pomocí Git. To umožňuje vytvářet dotazy, experimentovat s daty a dokumentovat logiku bez nutnosti připojení k vzdáleným serverům – tím se vyhýbáme zastavení práce kvůli nestabilnímu internetu.
Lokální prostředí zajišťuje izolaci dat, bezpečnost experimentů a kontrolu verzí. Vývojář má plnou kontrolu nad objemy, procesorem a pamětí kontejnerů.
Výhody lokálního stacku
Lokální vývoj řeší klíčové problémy týmové spolupráce:
- Izolace dat: Objemy v Dockeru jsou chráněny proti vnějším změnám. Neexistuje riziko ztráty testovacích tabulek kvůli migracím nebo čištěním.
- Bezpečné experimenty: Náročné JOIN nebo View zatěžují pouze lokální kontejner, neovlivňují celý cluster.
- Verzování přes Git: Grafické View jsou uloženy jako JSON-soubory. Podporovány jsou diff, code review i vrácení zpět.
- Digitální dvojník DB: Změny schématu, typů dat a vazeb probíhají bez zátěže produkčního prostředí.
Nastavení offline prostředí
Příprava trvá tři kroky.
1. Klonování projektu z Git
Stáhněte si projekt do místní složky. Struktura projektu odpovídá oblastem: finance, prodej atd. Soubory View a dbcopy-json jsou uloženy v repozitáři.
2. Spuštění BI-stacku přes Docker Compose
Použijte soubor docker-compose.yml pro PostgreSQL a ClickHouse. Příklad konfigurace:
services:
asapbi-postgres:
image: postgres:15-alpine
container_name: asapbi-postgres
restart: unless-stopped
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: admin
POSTGRES_DB: demo
PGDATA: /var/lib/postgresql/data/pgdata
ports:
- "15432:5432"
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U admin -d demo"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
networks:
- asapbi-net
asapbi-clickhouse:
image: clickhouse/clickhouse-server:24.8-alpine
container_name: asapbi-clickhouse
restart: unless-stopped
environment:
CLICKHOUSE_USER: admin
CLICKHOUSE_PASSWORD: admin
CLICKHOUSE_DB: analytics
ports:
- "18123:8123" # HTTP
- "19000:9000" # Native
volumes:
- clickhouse-data:/var/lib/clickhouse
- clickhouse-logs:/var/log/clickhouse-server
healthcheck:
test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:8123/ping || exit 1"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
networks:
- asapbi-net
volumes:
postgres-data:
driver: local
clickhouse-data:
driver: local
clickhouse-logs:
driver: local
networks:
asapbi-net:
driver: bridge
Spuštění přes rozhraní asapBI nebo CLI. Docker si automaticky stáhne image.
3. Naplnění databáze daty
Použijte soubory *.dbcopy-json pro kopírování testovacích dat. Příklad:
{
"description": "Kopírování klientů s přípravou a čištěním",
"beforeSQL": [
"BEGIN;",
"SET session_replication_role = replica;",
"CREATE TEMP TABLE IF NOT EXISTS _copy_log (ts timestamptz, msg text);"
],
"afterSQL": [
"SET session_replication_role = DEFAULT;",
"INSERT INTO _copy_log VALUES (now(), 'Copy completed');",
"COMMIT;"
],
"tables": [
{
"schema": "reference",
"table": "clients",
"where": "is_active = true AND created_at >= '2024-01-01'",
"beforeSQL": [
"DROP INDEX IF EXISTS idx_clients_region_id",
"DELETE FROM reference.clients WHERE created_at >= '2024-01-01'"
],
"afterSQL": [
"CREATE INDEX IF NOT EXISTS idx_clients_region_id ON reference.clients (region_id)",
"ANALYZE reference.clients"
]
},
{
"schema": "sales",
"table": "orders",
"where": "order_date >= '2024-01-01'",
"beforeSQL": "ALTER TABLE sales.orders DISABLE TRIGGER ALL",
"afterSQL": "ALTER TABLE sales.orders ENABLE TRIGGER ALL"
},
{
"schema": "analytics",
"table": "user_sessions",
"where": "",
"beforeSQL": null,
"afterSQL": null
}
]
}
Vyberte zdroj a cíl v rozhraní. Používejte pouze testovací data z dev-serverů.
Grafické SQL-View
Připojte se k lokálnímu ClickHouse a vytvořte grafické View. Jedná se o JSON-soubor s verzováním a možností code review. View se odděluje od dashboardů, což zajišťuje jedinou pravdu pro výpočty.
Výhody:
- Shromažďování algoritmů výpočtů.
- Opakované použití v různých dashboardech.
- Sledování změn přes Git diff.
Integrace dokumentace
Ke View připojujte soubory do stejné složky: MD, draw.io. Dokumentace se aktualizuje automaticky při změnách modelu. Textové soubory jsou vhodné pro AI-zpracování a automatickou generaci dokumentace.
Co je důležité
- Lokální Docker-stack s objemy zajišťuje izolaci a trvalost dat.
- Grafické View jako JSON-soubory podporují Git-verzování a code review pro analýzu.
- Soubory *.dbcopy-json automatizují bezpečné kopírování testovacích dat.
- Integrace dokumentace (MD, draw.io) do projektové složky zaručuje aktuálnost.
- Plná sandboxová prostředí pro experimenty bez rizika pro produkci.
— Editorial Team
Zatím žádné komentáře.