Open ErikZigo opened 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.
Kvuli zpetny kompatabilite bych zvazil moznost prepinace rezimu DROP + CREATE
a TRUNCATE
rezim.
php-datatypes
, aby akceptoval vsechny datove typy podporovane writeremDESC TABLE
TIMESTAMP
ktery je ale zavisly na aktualnim nataveni session https://docs.snowflake.net/manuals/sql-reference/parameters.html#label-timestamp-type-mappingVARCHAR
vs VARCHAR(16777216)
)@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ě.
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
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 nahraditTRUNCATE TABLE
+IMPORT
.Pred samotnym importem se musi provest kontrola zda struktura tabulky v DB odpovida strukture v mappingu.