keboola / db-writer-snowflake

Snowflake database writer
MIT License
0 stars 1 forks source link

Full load - truncate + structure check #49

Open ErikZigo opened 5 years ago

ErikZigo commented 5 years ago

Vychazi z issues v common writeru https://github.com/keboola/db-writer-common/issues/7 a https://github.com/keboola/db-writer-common/issues/20

Jako koncept se to vyzkousi tady na Snowflake writeru, kde to lidi pali co nejvic.

V soucasne dobe se pri full loadu dela kombinace DROP TABLE + CREATE TABLE + IMPORT. Nove by se mel import nahradit TRUNCATE TABLE + IMPORT.

Pred samotnym importem se musi provest kontrola zda struktura tabulky v DB odpovida strukture v mappingu.

ErikZigo commented 5 years ago

Na validaci datovych typu bych vyuzil existujici knihovnu https://github.com/keboola/php-datatypes a inspiroval se postupem jakym validuje KBC strukturu tabulky pri loadu do workspacu.

ErikZigo commented 5 years ago

Kvuli zpetny kompatabilite bych zvazil moznost prepinace rezimu DROP + CREATE a TRUNCATE rezim.

ErikZigo commented 5 years ago
tomasfejfar commented 5 years ago

Je to problém i pro DWHM: https://keboolaglobal.slack.com/archives/CCNV7TZUH/p1549364644121200?thread_ts=1549356107.113800&cid=CCNV7TZUH

tomasfejfar commented 5 years ago

And again https://keboolaglobal.slack.com/archives/CBX9MB2NT/p1557963656137700

padak commented 5 years ago

@ErikZigo můžeme jednoduše při full loadu udělat TRUNCATE a insert into ze tmp stage tabulky? Pokud failne struktura, hodí to error. Ve Writeru bude optional "load+drop", kterej to vždy 'opraví'. Bude job usera v týhle verzi, aby si to nerozbil na straně snowflake. Novej sloupec v KBC by dělal to samé jako při inc loadu. Tohle je podle mě jednoduché a schůdné a fixne to hned a elegantně.

padak commented 5 years ago

Teď mi David Ešner povídal, jak tím trpí v Mallu (hodil jsem to @JakubMatejka do pipeline s vyšší prio https://keboola.productboard.com/feature-board/656881-feature-planning/features/2248065/detail) #fyi