LEES
Data Nieuws

Projective Group publiceert eerste app op Snowflake Marketplace

Datum:29 september 2023

We zijn erg trots om te kunnen aankondigen dat we onlangs een Snowflake Native App hebben gepubliceerd op de Snowflake Marketplace. In dit artikel introduceren we onze data transformatie framework, TiPS, en vatten we onze reis samen om het om te zetten in een Native App en een vermelding op de Snowflake Marketplace te bereiken.

Achtergrond

Snowflake kwam oorspronkelijk naar voren als een revolutionair cloud data warehouse voordat het evolueerde naar 'The Data Cloud ' als erkenning voor de zes extra workloads die worden ondersteund (zie onderstaand diagram). Een van de mogelijkheden die alle workloads ondersteunt is de Snowflake Marketplace en nu ondersteunt de marketplace, naast het kopen van gecureerde datasets, ook de aankoop van apps die kunnen interageren met de data die u in Snowflake bewaart.

Bij de lancering (publieke preview in juni 2023) waren er 23 Snowflake Native Apps. Per 30 augustus 2023 is dit aantal gestegen tot 31 (een volledige lijst is hier te vinden), die verschillende mogelijkheden bieden zoals:

  • Identificerend data opgeslagen in Snowflake maar nooit geopend.
  • Rapporten genereren over het verbruik en de prestaties van Snowflake-krediet.
  • Het gemakkelijker maken om toegang te krijgen tot een bestaand aanbod (bijvoorbeeld onze partner Coherent.global en hun fantastische Microsoft Excel model risk saneringsplatform 'Spark').

TiPS introduceren

TiPS is een metadata gedreven data transformatie framework die gebruikt kan worden om data pipelines te bouwen en uit te voeren. Omdat TiPS alleen gebaseerd is op eersteklas databaseobjecten, is er bijna geen leercurve en kunnen ingenieurs die al bedreven zijn in SQL zich richten op het schrijven van transformatielogica in plaats van hun kostbare tijd te besteden aan het leren van nog een andere tool.

TiPS is een metadata-gedreven data transformatie framework die kan worden gebruikt om data pipelines te bouwen en uit te voeren.

Zodra uw data bron is aangemaakt in de database (meestal een view die de juiste bedrijfslogica inkapselt) en er een doel is aangemaakt (meestal een tabel), wordt een stap van uw data pijplijn gedefinieerd en zorgt TiPS ervoor dat alle DML-statements die nodig zijn om die stap uit te voeren en de data over te zetten, dynamisch worden gegenereerd.

TiPS werd ongeveer twee jaar geleden oorspronkelijk gebouwd voor een klant, waar hun specifieke vereisten andere data transformatieopties onmogelijk maakten. De mogelijkheden zijn in de tussentijd geëvolueerd en vandaag de dag ondersteunt het al hun Snowflake data transformatiebehoeften. Sindsdien hebben we TiPS bij andere klanten gebruikt en we hebben gemerkt dat het bijzonder goed werkt als een 'accelerator' in een Proof of Concept om het aantal nieuwe leveranciers of technologieën te minimaliseren waarmee de klant zich vertrouwd moet maken en/of die door hun InfoSec-team moeten worden beoordeeld.

TiPS werkt bijzonder goed als een 'accelerator' in een Proof of Concept om het aantal nieuwe leveranciers of technologieën te minimaliseren.

Kenmerken van TiPS

Enkele opvallende kenmerken van TiPS zijn:

Beveiliging
  • Data verlaat nooit uw beveiligde Snowflake-omgeving.
  • De enige rechten die nodig zijn, zijn uitvoeringsrechten op één TiPS opgeslagen procedure, wat betekent dat de gebruiker (of rol) die de pijplijn uitvoert geen toegang nodig heeft om te lezen of te schrijven data.
Zichtbaarheid
  • Alle data pijplijnen worden gedefinieerd in gemeenschappelijke databasetabellen. Dit ondersteunt:
  • De lineage op objectniveau kan worden bepaald door metadata van de pijplijn op te vragen, zodat de impact van aankomende wijzigingen heel eenvoudig te bepalen is.
  • Mogelijkheid om door te dringen tot het kolomniveau door gebruik te maken van aangepaste query's of weergaven met behulp van data die beschikbaar zijn in het Snowflake informatieschema in combinatie met TiPS-metagegevens.
Infrastructuur
  • TiPS draait volledig binnen Snowflake en er is dus geen extra infrastructuur nodig om data pipelines te bouwen en uit te voeren met TiPS.
Data Kwaliteit
  • Data kwaliteitscontroles kunnen inline geschreven worden binnen een data pijplijn, met configuratieopties om af te breken als een controle mislukt of om door te gaan met een waarschuwing.
  • Data kwaliteitscontroles kunnen ook worden gedefinieerd als een op zichzelf staande pijplijn die volgens een gedefinieerd schema kan worden uitgevoerd.
Uitvoeringslogboeken
  • TiPS legt alle logboekinformatie vast tijdens de uitvoering van data pijplijn (in JSON) en slaat dit op in een tabel zodra de pijplijn is uitgevoerd. Er is een speciale weergave gemaakt om de JSON af te vlakken, zodat het makkelijker te interpreteren is met menselijke ogen.

TiPS: wat het niet is

  1. Planning: TiPS ondersteunt geen scheduling of orkestratie. Hiervoor gebruiken we tools zoals Airflow, Control-M, Snowflake taken of Unix Cron.
  2. Data Invoer: TiPS ondersteunt data transformatie (waar data al in toegankelijke staged files of in Snowflake zit). Voor data ingestion vanuit externe bronsystemen gebruiken we tools zoals Fivetran / HVR, Matillion, Rivery.
  3. Meldingen: TiPS legt gedetailleerde logbestanden vast voor elke pijplijnuitvoering op data . Meldingen op basis van de inhoud van deze logbestanden worden overgelaten aan de planner tool.

TiPS was oorspronkelijk geschreven in JavaScript stored procedures om te voldoen aan de behoefte van onze klant aan een tool die volledig binnen Snowflake zou draaien. De volgende evolutie bestond uit een Python-versie van TiPS, waarbij SQL buiten Snowflake werd gegenereerd. Dit was een opstap naar een Snowpark (Python) versie die compliance herstelde met de vereiste om volledig binnen Snowflake te draaien. Precies dezelfde Python-code, met een of twee wijzigingen zoals u hieronder zult zien, is nu de basis geworden voor onze Snowflake Native Apps versie van TiPS.

Voor meer gedetailleerde informatie over TiPS, inclusief een handleiding om aan de slag te gaan en onze routekaart voor de toekomst, zie onze documentatie.

TiPS als een Snowflake Native App

Toegang tot TiPS als een Snowflake Native App betekent dat u profiteert van het strenge en veilige proces dat Snowflake heeft ingesteld om alle apps te beoordelen voordat ze op de marktplaats worden geaccepteerd. Dit omvat controles zoals:

  1. Geschiktheid van de leverancier: Elke app-aanbieder wordt onderworpen aan een beoordelingsproces waarin Snowflake ervoor zorgt dat ze een duidelijke visie hebben over het doel en de bruikbaarheid van hun app. In ons geval case werd er een afspraak gemaakt met een Snowflake Marketplace Specialist voordat we werden goedgekeurd.
  2. Veiligheidsscan: Elke app wordt onderworpen aan een strenge beveiligingsscan om te zoeken naar code die de veiligheid van iedereen die de app gebruikt in gevaar kan brengen. In eerste instantie werd onze app afgekeurd nadat de scan een case van de Python 'eval' functie had geïdentificeerd, maar gelukkig was refactoring om deze functie te verwijderen eenvoudig te realiseren.
  3. Handmatige end-to-end test: Tot slot wordt de app getest door een Snowflake Marketplace-specialist om ervoor te zorgen dat hij werkt zoals bedoeld en in overeenstemming met de meegeleverde documentatie. We hebben zelfs feedback gekregen op een of twee details in onze documentatie die we nu hebben aangepakt.

We zijn verheugd dat TiPS nu is goedgekeurd en opgenomen in de marktplaats, wat betekent dat u alleen nog maar op een knop hoeft te klikken om het te installeren in uw Snowflake-account. De installatie bevat ook een voorbeeldpijplijn die direct kan worden uitgevoerd, die controleert of de installatie is gelukt en TiPS in actie laat zien. Aangezien alles op Snowflake wordt gehost, kunt u er zeker van zijn dat alles in uw vertrouwde veilige omgeving draait en dat uw data nergens naartoe verhuist.

Overwegingen bij het ontwikkelen van een Snowflake Native App

Snowflake Native Apps bevindt zich momenteel in een publieke preview en is nog in ontwikkeling. Er zijn een aantal databasemogelijkheden die nog niet worden ondersteund, maar die hopelijk beschikbaar zullen zijn in toekomstige releases, een aantal die misschien nooit zullen worden ondersteund (vanwege de beveiliging) en een aantal procesverbeteringen die nuttig zouden zijn. Onze belangrijkste observaties zijn

  • Meldingen voor beveiligingsscans: Er is momenteel geen meldingsproces, dus zodra je je app indient voor beoordeling moet je periodiek de status handmatig controleren. We hebben begrepen dat er binnenkort meldingen over statusupdates worden toegevoegd.
  • Native App als virtuele database: Elke Native App wordt geïnstalleerd als een logische entiteit zoals een database binnen Snowflake. Oorspronkelijk was TiPS gebouwd op de veronderstelling dat het een entiteit binnen een database is zonder zichtbaarheid van objecten buiten die database. Daarom werden databaseobjecten waarnaar verwezen werd in data pipelines alleen gekwalificeerd met de schemanaam (dit werkt naadloos bij het klonen). Gezien de manier waarop Snowflake Native Apps heeft geïmplementeerd, moesten we TiPS wijzigen om de databasenaam als parameter te accepteren om alle gebruikte databaseobjecten volledig te kwalificeren.
  • Tijdelijke tabellen: Ondersteuning voor tijdelijke tabellen is momenteel niet beschikbaar in Native Apps. TiPS maakte gebruik van tijdelijke tabellen om gelijktijdige runs van dezelfde data pijplijnen mogelijk te maken, elk in een eigen sessie, en we moesten de code herformuleren met een klein verlies aan mogelijkheden. Deze mogelijkheid zal worden hersteld zodra tijdelijke tabellen worden ondersteund (wat naar wij begrijpen later dit jaar zou kunnen gebeuren).
  • Streamlit componenten op maat: Native Streamlit componenten worden ondersteund, maar geen eigen Streamlit componenten. De oorspronkelijke TiPS UI was sterk afhankelijk van aangepaste componenten (ReactJS), dus in onze eerste versie van de Native App moesten we de UI verwijderen. We zijn momenteel bezig met het herontwikkelen van de UI met behulp van volledig native Streamlit componenten die we zullen vrijgeven zodra Snowflake Native Apps een recentere versie van Streamlit ondersteunt; op dit moment wordt alleen Streamlit 1.22 ondersteund.

Native Apps zijn een zeer opwindende nieuwe mogelijkheid in Snowflake. Het is een interessante reis geweest om ze onder de knie te krijgen en we hebben onderweg veel geleerd. Afgezien van de documentatie van Snowflake (die ook in ontwikkeling is), is er op dit moment niet veel informatie in het publieke domein. We raden u echter aan om u hierdoor niet te laten afschrikken, omdat de ondersteuning die het Snowflake Marketplace-team biedt fantastisch is.   

Je hoeft alleen maar op een knop te klikken om het te installeren in je Snowflake-account.

Als je meer wilt weten over TiPS, je eigen ideeën voor een Snowflake Native App wilt bespreken of wilt praten over alles wat te maken heeft met Snowflake en Data Engineering, neem dan contact met ons op.

Installeer TiPS hier.

Over Projective Group

Projective Group is opgericht in 2006 en is een toonaangevende veranderspecialist voor de financiële sector. Met diepgaande expertise op practices in Data, Payments, Transformatie en Risk & Compliance.

We worden binnen de sector erkend als een provider van complete oplossingen, die samenwerkt met klanten in de financiële dienstverlening om oplossingen te bieden die zowel holistisch als pragmatisch zijn. We hebben ons ontwikkeld tot een betrouwbare partner voor bedrijven die willen gedijen en bloeien in een steeds veranderend landschap van financiële dienstverlening.