tacrpy.datahub package
Submodules
tacrpy.datahub.data_lineage module
Soubor funkcí, které slouží k hromadnému vytváření podkladů k tvorbě a úpravě data lineage v DataHubu přes API.
- tacrpy.datahub.data_lineage.create_dataset_lineage(entity_name: str, platform: str, lineage_dict: dict[str, any], field_level: bool = False) dict[str, any][source]
Vytvoří data lineage (vazby) pro daný dataset.
Umožňuje vytvářet data lineage na úrovni datasetů i na úrovni jednotlivých fieldů.
- Parameters:
entity_name – název datasetu, pro který se data lineage vytváří
platform – název platformy, která je zdrojem datasetu (např. etalon, googlesheets, ISTA, Postgres, OpenAPI…)
lineage_dict – dict datasetu, který obsahuje jednotlivé vazby (na úrovni datasetů nebo na úrovni fieldů)
field_level – informace, jestli obsahuje dataset lineage na úrovni fieldů
- Returns:
dict vazeb (data lineage) pro daný dataset
tacrpy.datahub.datasets module
Soubor funkcí, které slouží k vytváření podkladů pro DataHub a k nahrávání dat přes API včetně checků vyplněných údajů.
- class tacrpy.datahub.datasets.OwnerType(*values)[source]
Bases:
Enum- BUSINESS_OWNER = 'Business Owner'
- DATA_STEWARD = 'Data Steward'
- TECHNICAL_OWNER = 'Technical Owner'
- tacrpy.datahub.datasets.create_etalon(etalon_df: DataFrame, etalon_name: str, platform: str, nested_fields: bool, foreign_keys: bool, subfolder: str = None) dict[str, any][source]
Vytvoří dict datasetu k importu do DataHub pro jednu datovou entitu.
Z načteného souboru získá, případně vytvoří potřebné informace k vytvoření informací o datasetu. Název entity získává z názvu souboru => v názvu souboru musí být název entity.
Povinné sloupce v načteném souboru:
field_name
field_description
field_data_type
Volitelné sloupce:
upstream_lineage
foreign_key
- Parameters:
etalon_df – zdrojový dataframe s informacemi o etalonu
etalon_name – název etalonu
platform – název platformy, která je zdrojem datasetu (např. etalon, googlesheets, ISTA, Postgres, OpenAPI…)
nested_fields – informace, jestli dataset obsahuje vnořené fieldy (nested fields)
foreign_keys – informace, jestli dataset obsahuje cizí klíče (foreign keys)
subfolder – podsložka, v rámci které má být dataset uložený
- Returns:
etalon ve formě dict, které je možné převést do JSON a importovat do DataHub
- tacrpy.datahub.datasets.create_etalon_bulk(etalon_df: DataFrame, platform: str, nested_fields: bool, foreign_keys: bool, subfolder: str = None) list[dict[str, any]][source]
Vytvoří dict datasetu k importu do DataHub pro více datových entit.
Z načteného souboru získá, případně vytvoří potřebné informace k vytvoření informací o datasetu. Název entity získává ze sloupce entity_name, ten slouží i k filtrování jednotlivých entit a jejich následné zpracování.
Povinné sloupce v načteném souboru:
entity_name
field_name
field_description
field_data_type
Volitelné sloupce:
upstream_lineage
foreign_key
- Parameters:
etalon_df – zdrojový dataframe s informacemi o etalonu
platform – název platformy, která je zdrojem datasetu (např. etalon, googlesheets, ISTA, Postgres, OpenAPI…)
nested_fields – informace, jestli dataset obsahuje vnořené fieldy (nested fields)
foreign_keys – informace, jestli dataset obsahuje cizí klíče (foreign keys)
subfolder – podsložka, v rámci které má být dataset uložený
- Returns:
etalon ve formě dict, které je možné převést do JSON a importovat do DataHub
- tacrpy.datahub.datasets.dataset_description(urn: str, description: str) list[dict[str, any]][source]
Vytvoří JSON pro přiřazení popisu datové sady k existující datové sadě.
- Parameters:
urn – URN existujícího datasetu, ve kterém se mají vytvořit/upravit údaje
description – popis datasetu
- Returns:
list dictů s potřebnými informace k nahrání do DataHub
- tacrpy.datahub.datasets.dataset_link(urn: str, link_name: str, link_url: str, corpuser: str) list[dict[str, any]][source]
Vytvoří JSON pro přiřazení odkazů k existujícímu datasetu.
V současné chvíli funguje pouze pro jeden odkaz.
- Parameters:
urn – URN existujícího datasetu, ve kterém se mají vytvořit/upravit údaje
link_name – zobrazený název odkazu
link_url – odkaz ve formátu url
corpuser – uživatel, který odkaz vytvořil (ve formátu jmeno.prijmeni, bez diakritiky)
- Returns:
list dictů s potřebnými informace k nahrání do DataHub
- tacrpy.datahub.datasets.dataset_ownership(urn: str, corpuser: str, owner_type: OwnerType) list[dict[str, any]][source]
Vytvoří JSON pro přiřazení vlastníka k existujícímu datasetu.
V současné chvíli funguje pouze pro jednoho vlastníka.
- Parameters:
urn – URN existujícího datasetu, ve kterém se mají vytvořit/upravit údaje
corpuser – uživatel, který se má přiřadit jako vlastník datasetu (ve formátu jmeno.prijmeni, bez diakritiky)
owner_type – typ vlastníka (DATA_STEWARD, TECHNICAL_OWNER, BUSINESS_OWNER)
- Returns:
list dictů s potřebnými informace k nahrání do DataHub
- tacrpy.datahub.datasets.dataset_tag(urn: str, tags: list[str]) list[dict[str, any]][source]
Vytvoří JSON pro přiřazení tagu/tagů k existujícímu datasetu.
- Parameters:
urn – URN existujícího datasetu, ve kterém se mají vytvořit/upravit údaje
tags – list tagů, které se mají přiřadit k datasetu
- Returns:
list dictů s potřebnými informace k nahrání do DataHub
tacrpy.datahub.glossary module
Soubor dílčích a agregujících funkcí sloužících k vytváření nových pojmů v DataHubu skrze API post.
- tacrpy.datahub.glossary.import_data(df: DataFrame, urn_actor: str, test: bool = True)[source]
Finální agregující funkce (2/2), která otestuje úplnost a správnost vstupních dat a skrze kterou se přes API importují jednotlivé prvky glossary terms do datahubu.
- Parameters:
df – předpřipravený a otestovaný df, v kterém jsou obsažena veškerá data tvořící jednotlivé glossary terms potřebná pro import do datahubu
urn_actor – urn osoby, která glossary terms nahrává (urn:li:corpuser:jmeno.prijmeni nebo urn:li:corpuser:prijmeni - dle struktury gmailu)
test – určení, jestli se jedná o test (True) nebo produkci (False)
- Returns:
nahrání glossary terms na zvolený server datahubu (s informací o průběhu uploadu na úrovni jednotlivých terms a nově vytvořeném urn pro daný term)
- tacrpy.datahub.glossary.preprocess_data(df_entities: DataFrame, df_regs: DataFrame, df_owners: DataFrame, parentnode: str = None) DataFrame[source]
Finální agregující funkce (1/2), která vstupní data (z dataframů) transformuje a doplní do potřebné struktury tak, aby mohla posloužit jako vstup do importovací funkce.
- Parameters:
df_entities – pd.DataFrame obsahující vstupní data s informacemi o nahrávaných položkách (musí obsahovat následující povinné sloupce:’Název pojmu’, ‘Definice pojmu’, ‘Kód výskyt pojmu’, ‘Garanti pojmů’, ‘Zkratka pojmu’, ‘Název pojmu (EN)’, ‘Zkratka (EN)’, ‘Kategorie’, ‘Datová entita’)
df_regs – pd.DataFrame obsahující přehled přespisů (dostupný na intranetu)
df_owners – pd.DataFrame obsahující seznam existujících uživatelských účtú v datahubu
parentnode – v případě hromadného zařazení všech nahrávaných položek do jedné nadřazené složky
- Returns:
pd.DataFrame obsahující všechny položky nutné k importu do datahubu
- tacrpy.datahub.glossary.records_into_rows(df: DataFrame, key_column: object, parse_column: object, separator: any) DataFrame[source]
Dílčí funkce, která rozparsuje buňky v cílovém sloupci s více záznamy do jednotlivých řádků (na základě separátoru), přičemž je zachována příslušnost k hlavnímu klíči.
- Parameters:
df – název pd.DataFrame, v rámci kterého chci danou funkci použít
key_column – název sloupce s klíčem/ID, ke kterému chci rozparsované záznamy vztáhnout
parse_column – název sloupce, v rámci kterého chci záznamy rozparsovat do řádků
separator – volba separátoru, kterým jsou jednotlivé záznamy v buňce odděleny
- Returns:
pd.DataFrame obsahující sloupec s rozparsovanými záznamy a klíč, ke kterému se dané záznamy vztahují
- tacrpy.datahub.glossary.row_transform(df: DataFrame, new_column: object, key_column: object, base_column_1: object, base_column_2: object) DataFrame[source]
Dílčí funkce agregující řádky vstupního df na základě klíče a ze záznámů z vybraných sloupců vytvoří list slovníků.
- Parameters:
df – název pd.DataFrame, v rámci kterého chci danou funkci použít
new_column – název nového sloupce, jehož obsahem bude agregace záznamů do struktury listu slovníků
key_column – název sloupce, který představuje klíč pro agregaci řádků
base_column_1 – název prvního sloupce, jehož hodnoty jsou agregovány do struktury listu slovníků
base_column_2 – název druhého sloupce, jehož hodnoty jsou agregovány do struktury listu slovníků
- Returns:
pd.DataFrame obsahující dva sloupce - klíč a hodnoty ve struktuře listu slovníků
tacrpy.datahub.import_checks module
Modul obsahuje předdefinované funkce, které slouží jako kontrola úplnosti dat importovaných skrze API do datahubu. Primárním využitím je testování skrze tyto předdefinované funkce nad cílovým souborem.
- tacrpy.datahub.import_checks.are_all_values_objects_in_column(df: DataFrame, column_name: object) bool[source]
Ověřovací funkce určená primárně jako vstup do testu, indikuje, zda se ve sloupci vyskytují pouze object hodnoty.
- Parameters:
df – dataframe, v rámci kterého chci danou podmínku ověřovat
column_name – sloupec v rámci dataframu, na který chci danou podmínku aplikovat
- Returns:
bool hodnota podle toho, jestli je nebo není podmínka pro vybraný sloupec splněna
- tacrpy.datahub.import_checks.contains_boolean_values(df: DataFrame, column_name: object) bool[source]
Ověřovací funkce určená primárně jako vstup do testu, indikuje, zda se ve sloupci vyskytují pouze bool hodnoty.
- Parameters:
df – dataframe, v rámci kterého chci danou podmínku ověřovat
column_name – sloupec v rámci dataframu, na který chci danou podmínku aplikovat
- Returns:
bool hodnota podle toho, jestli je nebo není podmínka pro vybraný sloupec splněna
- tacrpy.datahub.import_checks.has_specific_values(df: DataFrame, column_name: object, predefined_values: list[any]) bool[source]
Ověřovací funkce určená primárně jako vstup do testu, indikuje, zda se ve sloupci vyskytují pouze předdefinované hodnoty.
- Parameters:
df – dataframe, v rámci kterého chci danou podmínku ověřovat
column_name – sloupec v rámci dataframu, na který chci danou podmínku aplikovat
predefined_values – list předdefinovaných hodnot
- Returns:
bool hodnota podle toho, jestli je nebo není podmínka pro vybraný sloupec splněna
- tacrpy.datahub.import_checks.is_column_filled(df: DataFrame, column_name: object) bool[source]
Ověřovací funkce určená primárně jako vstup do testu, indikuje, zda je sloupec kompletně vyplněný, tj. zda v daném sloupci nejsou obsaženy prázdné hodnoty.
- Parameters:
df – dataframe, v rámci kterého chci danou podmínku ověřovat
column_name – sloupec v rámci dataframu, na který chci danou podmínku aplikovat
- Returns:
bool hodnota podle toho, jestli je nebo není podmínka pro vybraný sloupec splněna
- tacrpy.datahub.import_checks.is_column_list_of_dicts(df: DataFrame, column_name: object) bool[source]
Ověřovací funkce určená primárně jako vstup do testu, ověřuje, zda buňky ve sloupci obsahují pouze obsah strukturovaný do listu slovníků (v případě, že nejsou prázdné).
- Parameters:
df – dataframe, v rámci kterého chci danou podmínku ověřovat
column_name – sloupec v rámci dataframu, na který chci danou podmínku aplikovat
- Returns:
bool hodnota podle toho, jestli je nebo není podmínka pro vybraný sloupec splněna
- tacrpy.datahub.import_checks.no_duplicates_in_column(df: DataFrame, column_name: object) bool[source]
Ověřovací funkce určená primárně jako vstup do testu, indikuje, zda se ve sloupci vyskytují duplicitní hodnoty.
- Parameters:
df – dataframe, v rámci kterého chci danou podmínku ověřovat
column_name – sloupec v rámci dataframu, na který chci danou podmínku aplikovat
- Returns:
bool hodnota podle toho, jestli je nebo není podmínka pro vybraný sloupec splněna
- tacrpy.datahub.import_checks.notnan_in_columns_with_list_of_dicts(df: DataFrame, column_name: object) bool[source]
Ověřovací funkce určená primárně jako vstup do testu, ověřuje, zda buňky s obsahem strukturovaným do listu slovníků neobsahují Nan values uvnitř slovníků.
- Parameters:
df – dataframe, v rámci kterého chci danou podmínku ověřovat
column_name – sloupec v rámci dataframu, na který chci danou podmínku aplikovat
- Returns:
bool hodnota podle toho, jestli je nebo není podmínka pro vybraný sloupec splněna
tacrpy.datahub.openapi module
Soubor funkcí k práci s OpenAPI DataHubu.
- tacrpy.datahub.openapi.delete_data(urn: str, test: bool = True, soft: bool = False) Response[source]
Vymaže data vybrané entity přes OpenAPI
- Parameters:
urn – URN entity, kterou chceme vymazat
test – vymaže data z testovacího nebo produkčního prostředí
soft – můžeme entitu vymazat pouze z vyhledávání (soft = True) nebo kompletně (soft = False)
- Returns:
objekt třídy Response, který reprezentuje odezvu serveru
- tacrpy.datahub.openapi.get_data(urn: str, test: bool = True) dict[source]
Získá data k vybrané entitě přes OpenAPI.
- Parameters:
urn – URN entity, pro kterou chceme získat data
test – získá data buď z testovacího nebo produkčního prostředí
- Returns:
data ve formátu JSON
- tacrpy.datahub.openapi.post_data(json_data: list[dict], test: bool = True) Response[source]
Nahraje přes OpenAPI data do DataHubu.
Než se data nahrají je vhodné provést kontroly správnosti dat.
- Parameters:
json_data – data ve formátu JSON, které se mají nahrát do DataHubu
test – nahraje data buď na testovací nebo produkční prostředí
- Returns:
objekt třídy Response, který reprezentuje odezvu serveru