Data z vlastního PostgreSQL systému ve Snowflake, propojená s marketingem i účetnictvím

    PostgreSQL je open-source relační databáze, kterou firmy běžně používají jako produkční úložiště pro e-shop nebo interní systém. Snowflake je cloudová datová platforma, která odděluje výpočet od úložiště dat, compute řeší přes virtuální warehousy, jež si firma sama škáluje podle potřeby. Napojíme PostgreSQL na Snowflake podle konkrétní struktury vašich dat, šetrně k výkonu živého provozu, se stejnou logikou konektoru, jakou u PostgreSQL standardně stavíme na BigQuery, který zůstává naším výchozím datovým skladem.

    K čemu propojení slouží

    Vlastní e-shop nebo interní systém postavený na PostgreSQL má svá transakční data, objednávky, zákazníky, stav skladu, uzavřená ve vlastní databázi. Napojení do Snowflake tato data pravidelně kopíruje do datového skladu, odkud jdou spojit s daty z reklamy a účetnictví, aniž by těžké dotazy zatěžovaly produkční databázi, ze stejného důvodu, který popisujeme u pojmu Transakční a analytická databáze.

    Data mimo hranice produkční databáze

    Objednávky, zákazníci a stav skladu z vlastní PostgreSQL databáze se pravidelně ukládají do Snowflake, odkud s nimi může pracovat i zbytek firmy, ne jen ten, kdo má přístup přímo do produkčního systému.

    Kde se data dál používají

    Maržový report, skladové predikce a segmentace produktů v Google Ads pracují se stejným zdrojem, takže čísla z vašeho e-shopu, účetnictví a marketingu sedí na sebe, ať už nad nimi stojí BI nástroj napojený na Snowflake, nebo jiný nástroj.

    Na co si dát pozor

    PostgreSQL není packaged platforma s daným schématem, je to obecná databáze, na které si každá firma postavila vlastní e-shop nebo systém po svém. To má přímý dopad na to, jak napojení vzniká, a proč u něj neexistuje jeden univerzální konektor jako u krabicových řešení.

    • Čtení nesmí zatěžovat živý provoz

      Přímé těžké dotazy na produkční databázi mohou zpomalit checkout nebo příjem objednávek. Napojení proto typicky čte přes read repliku, nebo přes logickou replikaci, která čte změny přímo z WAL (write-ahead logu) pomocí replikačního slotu a umožňuje sledovat jen vybrané tabulky, ne celou databázi jako fyzická replika.

    • Žádné standardní schéma

      Struktura vlastní databáze je unikátní pro každý projekt, není tam žádné dané schéma jako u packaged platformy. Napojení proto vždy začíná zmapováním konkrétních tabulek a vztahů mezi nimi, teprve podle toho se navrhne rozsah přenášených dat.

    • Replikační slot musí být pod kontrolou

      Dokud replikační slot nepokročí, PostgreSQL nesmí smazat WAL segmenty, které si přes něj konzument teprve má vyzvednout. Zaseknutý nebo zapomenutý slot proto může nechat WAL růst a zaplnit disk na produkční databázi, počet současně otevřených slotů má navíc svůj limit (max_replication_slots), který je potřeba počítat spolu s ostatními napojeními na stejnou databázi.

    • Snowflake nemá vlastní on-premises gateway

      Pokud PostgreSQL běží na vlastním serveru nebo cloudové VM bez veřejně dostupného přístupu, Snowflake sám o sobě nenabízí lokální bránu k datům, jako to řeší třeba Microsoft Fabric. Data proto nejdřív projdou stejnou extrakční pipeline, kterou používáme pro napojení na BigQuery, a přistanou v cloudovém stagingu, odkud je Snowflake načte přes Snowpipe nebo COPY INTO. Pokud PostgreSQL běží jako spravovaná cloudová služba s veřejně dostupným koncovým bodem, jde o běžný cloudový zdroj bez téhle dodatečné komplikace.

    • Přístup do databáze je citlivější než API

      Přímé připojení do produkční databáze zákazníka je z hlediska přístupových údajů a bezpečnosti citlivější než napojení přes veřejné API. Pracujeme proto jen s právy omezenými na čtení a jen na to, co je pro synchronizaci skutečně potřeba.

    • Compute u Snowflake běží, i když nikdo nedotazuje

      Snowflake účtuje compute zvlášť od úložiště, po vteřinách s minimem 60 vteřin podle velikosti virtuálního warehousu. Bez nastaveného automatického pozastavení (auto-suspend) warehouse čerpá kredity, i když na něm zrovna nikdo nepočítá, na rozdíl od BigQuery, kde platíte za jednotlivé dotazy.

    Jak to Datimo řeší

    1. 1

      Konektor šitý na vaše schéma

      Konektor stavíme podle konkrétní struktury vaší databáze, ne jako univerzální řešení pro PostgreSQL obecně. Nejdřív zmapujeme tabulky a vztahy, které reálně používáte, teprve podle toho navrhneme rozsah přenášených dat. Datový model je stejný jako u napojení na BigQuery, mění se jen cílová platforma.

    2. 2

      Synchronizace šetrná k provoznímu výkonu

      Data čteme přes read repliku nebo naplánovaný export, podle toho, co vaše infrastruktura umožňuje, případně, pokud databáze neběží na veřejně dostupné síti, přes existující extrakční pipeline do cloudového stagingu, aby dotazy nezatěžovaly databázi, na které běží živý provoz.

    3. 3

      Data do Snowflake přes Snowpipe nebo COPY INTO

      Data landujeme v cloudovém úložišti a do Snowflake je načítáme přes Snowpipe pro průběžné načítání, nebo dávkově přes COPY INTO, podle toho, jak často potřebujete aktuální čísla.

    4. 4

      Správa napojení v ceně

      Technickou správu, úpravy při změnách schématu na vaší straně, konfiguraci auto-suspend u virtuálních warehousů i aktivní monitoring hlídáme za vás, v rámci ceny.

    5. 5

      Modulární rozsah dat

      Rozsah přenášených tabulek jde kdykoli rozšířit podle toho, co zrovna potřebujete reportovat, bez nutnosti stavět napojení znovu od nuly.