Open Halama opened 7 years ago
disablovani IM hotove https://github.com/keboola/db-writer-snowflake/issues/19
Ještě mě napadla jedna věc ohledně config rows. U varianty kdy to zapisuje do "cizího" snowflake by se hodilo kdyby jednotlivé tabulky na export byly uložené v rows. Zafungovalo by tak správně disablování atd.
U varianty kdy to loaduje přímo do workspace by to zase naopak nemělo být v config rows at tam není zbytečná režie a udělá se to celé v jednom SAPI jobu.
Nevím jestli ta kombinace obou chování by nebyl moc velký bastl. Zatím bych to asi nechal. Třeba z toho přímého loadovače do workspace časem vyleze něco čemu budeme říkat jinak než writer, občas se to někde nakouslo.
Možná ta režie nebude tak velká? Pokud někdo bude zapisovat desítky tabulek, tak asi jo :-/ Bastl to bude asi jen v UI, ale nějakým šikovným adaptérem by to nemuselo bejt tak hrozný (odpojení vizualizace configu od jeho uložený struktury).
Velka nebude ale precijenom to bude znat, zvlast v moment kdy treba ten load interne prepneme na CLONE.
Aktuálně writer funguje tak že dostane libovolné SNFLK credentials a zapíše do databáze pomocí S3 COPY. Tohle je bez problému pro Snowflake účty dodané přímo zákazníky, mají to pod kontrolou.
Problematičtější je to pro writery které poskytuje Keboola - tzn. SNFLK schémata které leží ve stejné SNFLK accountu jako samotný backend projekt:
Writer by tedy měl podporovat pro Keboola provisioned credentials přímo prací s workspaces. Představa je taková že taková konfigurace by měla u sebe uloženu pouze referenci na workspace a mohla by vypadat např.:
V tomhle případě by komponenta provedla Load data into workspace, k tomu by musela podporovat
forward_token
. Workspace by připravilo UI a credentials do něj ukázalo pouze jednou. Nově by podporovalo jejich reset - vygenerování nového hesla. UI bude pracovat z workspaces napřímo, využité Provisioningu úplně odpadne.Původní funkčnost kdy jsou zadány celé credentials bude zachována pouze bude v appce přepnutí chování podle toho jaký typ credentials dostane. Zbytek konfigurace by měl být nezávislý na typu credentials, tzn. v obou případech bude vyplněný Input Mapping. Aby komponenta zbytečně neprováděla IM v případě Keboola workspace bude input mapping komponenty disablovaný pomocí
staging_storage.input: none
. Komponenta v případě že bude mít zadané db credentials bude muset provést IM sama pomocí https://github.com/keboola/input-mappingAby to celé fungovalo bude potřeba v dalších komponentách:
SAPI
Docker Runner
Výchází to z issue https://github.com/keboola/connection/issues/820 kde jsme se o tom bavili.