Projekt

Obecné

Profil

Správa datasetů » Historie » Verze 18

Petr Hlaváč, 2020-05-27 16:40

1 1 Petr Hlaváč
h1. Správa datasetů
2
3 18 Petr Hlaváč
Data script je implementován v Pythonu 3.8.2 jedná se o script, který je spouštěn pomocí Cronu ve večerních hodinách aby stáhl nová data, zpracoval a nahrál je do databáze ve správném formátu.
4 1 Petr Hlaváč
5 18 Petr Hlaváč
6 1 Petr Hlaváč
h1. Správa
7 18 Petr Hlaváč
8
* *[[Přidání datasetu]]* - Návod pro přidání nového datasetu
9
10 17 Petr Hlaváč
11 1 Petr Hlaváč
Data script je implementován v Pythonu 3.8.2 jedná se o script, který je spouštěn pomocí Cronu ve večerních hodinách aby stáhl nová data, zpracoval a nahrál je do databáze ve správném formátu.
12
13
h2. Architektura 
14
15 2 Petr Hlaváč
h3. Adresáře
16
17 1 Petr Hlaváč
* *[[CrawledData]]* - Složka určená pro data stažená crawlerem
18 4 Petr Hlaváč
* *[[CrawlerLogs]]* - Složka určená k ukládání logů aplikace.
19 1 Petr Hlaváč
* *[[DatasetConfigs]]* - Konfigurační soubory datasetů
20
* *[[DatasetCrawler]]* - Implementace crawlerů k datasetům
21
* *[[DatasetProcessing]]* - Implementace processorů pro zpracování crawlerem stažených dat.
22
* *[[ProcessedData]]* - Data zpracovaná pomocí processorů a připravená pro nahrání do DB.
23
* *[[Utilities]]* - Obsahuje pomocné funkce
24 2 Petr Hlaváč
25
h3. Skripty
26
27
* *crone_update_script.py* - skript určen pro automatické spouštění Cronem. Pro každý dataset, který má vytvořen konfigurační soubor spustí celý proces stažení,zpracování a nahrání dat do DB.
28 3 Petr Hlaváč
* *docker_prepare_structure.py* - vytvoří složky určené pro stažená a zpracovaná data vnich podadresáře pro každý dataset registrovaný v architektuře konfiguračním souborem. Dále vytvoří složku pro logy.
29 2 Petr Hlaváč
* *force_update_datasets.py* - skript určen pro ruční spuštění updatu vybraného nebo všech datasetů tento skript zároveň kontroluje jestli nenastali v konfiguračním souboru nějaké změny.
30
* *fully_clean_database.py* - skript uvede databázi do počátečního stavu (smaže všechny kolekce)
31
* *pipeline.py* - Spojuje funkčnost jednotlivých částí (crawler, processor, databaseloader) do jedné pipeliny. Funkčnost pipeliny je využita scripty pro update datasetů.
32
* *prepare_new_dataset.py* - skript určen pro přidání nového datasetu do architektury.
33
* *remove_dataset.py* - skript určen pro odstranění architektury datasetu z databáze.
34
* *reset_datasets.py* - skript slouží pro uvedení architektury datasetu do počátečního stavu (smazání zpracovaných dat/stažených dat, odstranění záznamů datasetu z databáze)
35
36
h3. Konfigurační soubory
37
38
crontab - soubor obsahující nastavení pro spuštění crone_update_script.py
39
requirements.txt - textový soubor specifikující knihovny potřebné pro spuštění skriptu (knihovny jsou staženy pomocí pipu při buildu docker containeru)
40
41 6 Petr Hlaváč
h2. Znázornění architektury
42 5 Petr Hlaváč
43 7 Petr Hlaváč
Zpracování datasetu se dělí do třech hlavních částí.
44 5 Petr Hlaváč
45
# Stažení dat
46 8 Petr Hlaváč
# Zpracování dat
47 1 Petr Hlaváč
# Nahrání dat do DB 
48
49
!Architektura.png!
50 11 Petr Hlaváč
51
h1. Databáze
52 16 Petr Hlaváč
53 15 Petr Hlaváč
Skript pro správu datasetů vytváří v databázi následující strukturu a kolekce
54 12 Petr Hlaváč
55
!DB.png!