Cursus
Snowflake biedt een gespecialiseerde architectuur voor veilige en efficiënte gegevensdeling in verschillende omgevingen. Of je nu samenwerkt binnen je organisatie of met externe partners, Snowflake biedt meerdere doelgerichte opties, zoals directe shares, data-exchanges en de Snowflake Marketplace.
In een enterprise-context maken deze functies naadloze samenwerking mogelijk, met grip op kosten en sterke beveiliging. Dit artikel helpt je de verschillende deelmethoden te begrijpen en geeft praktische handvatten om ze effectief toe te passen in realistische scenario’s. Als je nieuw bent met Snowflake, raad ik je aan onze Snowflake Foundations skill track te bekijken.
Wat is Snowflake-gegevensdeling?
Traditioneel is gegevensdeling afhankelijk van ETL-processen (Extract, Transform, Load), waarbij gegevens uit een bronsysteem worden gehaald en in een doelsysteem worden geladen. Deze methode vereist het kopiëren en fysiek verplaatsen van data, wat zowel opslag- als compute-resources kost.
Snowflake maakt het overbodig om data te kopiëren of fysiek te verplaatsen. Met Snowflake’s architectuur voor gegevensdeling kan één account (de provider) live, alleen-lezen-toegang verlenen tot specifieke datasets aan een ander account (de consument), zonder data over te zetten of te dupliceren.
Consumenten kunnen de data bevragen alsof die lokaal staat, ook al is deze fysiek opgeslagen in het account van de provider. Omdat de data op één plek blijft, betaalt de provider alleen de opslagkosten. Dit maakt de aanpak veel efficiënter en schaalbaarder voor samenwerking tussen accounts.
Hoe werkt Snowflake-gegevensdeling?
Snowflake maakt veilige, zero-copy-gegevensdeling mogelijk met metadatapointers in plaats van data te kopiëren of te verplaatsen tussen systemen. Het creëert een verwijzing naar het oorspronkelijke object in het account van de provider, waardoor consumenten via die verwijzing de gedeelde data kunnen bevragen.
Consumenten krijgen alleen-lezen-toegang: ze kunnen de data lezen en verkennen, maar de brondata niet wijzigen. Omdat consumenten direct de opslag van de provider bevragen zonder te dupliceren, zijn er geen opslagkosten voor het consumentenaccount.
Bovendien scheidt de architectuur van Snowflake compute en opslag, wat kostenefficiënte data-operaties faciliteert. De provider betaalt voor opslag en voor eventuele compute die hij gebruikt, terwijl de consument alleen betaalt voor de compute die hij inzet.
Gegevensdeling met Snowflake is ook schaalbaar. Elk Snowflake-account met toegang tot de gedeelde data kan zijn eigen virtual warehouse aanmaken en onafhankelijk queries draaien, wat schaalbare gegevensdeling ondersteunt.
Daarnaast bevat Snowflake governance- en beveiligingscontroles om gedeelde toegang te managen. Providers kunnen datavisibiliteit definiëren met role-based access control en gebruik monitoren met auditlogs. Deze functies zorgen voor volledige zichtbaarheid en controle over de gedeelde data.
Manieren om data te delen in Snowflake
Gegevensdeling in Snowflake kent verschillende vormen, elk ontworpen voor specifieke use-cases. Laten we de mogelijkheden verkennen, zodat je weet welke je wanneer gebruikt.
Directe shares
Gebruik directe shares om data te delen met meerdere gebruikers binnen dezelfde Snowflake-regio. Je maakt een share-object met geselecteerde databases, tabellen en views, en verleent vervolgens toegang aan specifieke Snowflake-accounts van consumenten. Je moet expliciet elk account opgeven dat toegang mag hebben.
De consument maakt een database aan op basis van de share en kan die direct bevragen. Deze database verbruikt geen dataopslag; het is een logische verwijzing naar de gedeelde data.
Directe shares werken alleen als je data deelt binnen dezelfde cloudprovider en regio. Ze zijn ideaal voor het delen met interne teams, vertrouwde zakenpartners of een beperkt aantal Snowflake-accounts. Deze setup werkt het best in één-op-weinig-relaties.
Data-exchanges
Als je data met veel consumentenaccounts of groepen wilt delen, worden directe shares al snel inefficiënt omdat je elk Snowflake-account afzonderlijk moet opgeven. In dat geval is een data-exchange de betere optie.
Met een data-exchange publiceer je je datasets als dataprodukten in een private marketplace en nodig je consumentengroepen uit om toegang te krijgen. Deze opzet werkt als een doorzoekbare catalogus waarin consumenten kunnen browsen en zich abonneren op de data die ze nodig hebben. Omdat de exchange privé is, hebben alleen uitgenodigde interne accounts of groepen toegang.
Data delen over regio’s of clouds heen is mogelijk via Snowflake’s datareplicatie, waardoor data-exchanges ideaal zijn om te delen tussen verschillende businessunits of franchises in grote organisaties.
Stel dat je klantverkoopdata wilt delen met verschillende teams binnen het bedrijf. Je kunt dan een private Snowflake Data Exchange aanmaken met de naam “customer_behaviour_data” en meerdere listings van dezelfde dataset publiceren, elk met verschillende toegangsrechten. Elk team kan zich abonneren op de listing die bij zijn databehoeften past, wat soepelere en veiligere samenwerking mogelijk maakt tussen teams met verschillende toegangsniveaus.
Snowflake Marketplace
Snowflake Marketplace werkt als de App Store van Apple, maar dan voor data. Het is een publieke marketplace waar providers dataprodukten delen met elke Snowflake-gebruiker. Providers maken listings, voegen metadata toe, bieden previews en stellen gebruiksvoorwaarden in, zodat consumenten makkelijk vinden wat ze nodig hebben.
Bij het publiceren kunnen providers kiezen tussen publieke listings (zichtbaar voor alle Snowflake-klanten) of private listings (alleen zichtbaar voor geselecteerde accounts).
Consumenten kunnen de Marketplace doorzoeken met relevante trefwoorden. Voor publieke listings kunnen ze zich direct abonneren; voor private listings moeten ze toegang aanvragen. Na goedkeuring kunnen ze de datasets direct bekijken en bevragen in hun Snowflake-accounts.
Snowflake Marketplace ondersteunt betaalde listings met gebruiks- en abonnementsprijzen. De facturatie verloopt via Snowflake (bijv. via Stripe) en kan bij in aanmerking komende consumenten worden verrekend met gecontracteerde capaciteit. Zo kan een financiële partij een pakket verkopen met realtime aandelendata en historische prijzen. Snowflake factureert gebruikers op basis van het prijsmodel van de provider en het daadwerkelijke gebruik.
Reader-accounts
Met Snowflake reader-accounts kun je data delen met derden die geen Snowflake-account hebben.
In plaats van dat de consument zelf Snowflake moet inrichten en betalen, maakt en beheert de provider het reader-account namens hen.
De provider deelt vervolgens databases met reader-accounts via shares en verstrekt deze accounts aan consumenten. Belangrijk: een reader-account kan alleen data afnemen van het provideraccount dat het heeft aangemaakt.
Reader-accounts zijn primair bedoeld om gedeelde datasets te bevragen. Alle compute die binnen het reader-account via virtual warehouses wordt gebruikt, wordt gefactureerd aan het account van de provider. Om het gebruik te beperken kun je een resource monitor voor het warehouse instellen.
Overzicht van dataprovideers en -consumenten
Nu je de verschillende typen data-shares in Snowflake kent, bekijken we dataprovideers en -consumenten. Waar is elke rol verantwoordelijk voor en met welke beperkingen moet je rekening houden bij het delen of afnemen van data?
Over providers
In Snowflake zijn dataprovideers eigenaar van de data die ze willen delen. Ze hebben volledige controle over de gedeelde data en bepalen welke data gedeeld wordt en wie toegang krijgt. Vaak zijn ze verantwoordelijk voor:
- Bepalen welke content gedeeld wordt en met wie
- Verlenen of intrekken van toegangsrechten
- Zorgen dat gedeelde data schoon, betrouwbaar en up-to-date is
- Toegang auditen en gebruik volgen via logs voor compliance
Volg deze best practices om veilig en betrouwbaar data te delen:
- Gebruik secure views om alleen noodzakelijke kolommen of rijen bloot te leggen en gevoelige of ruwe data te maskeren
- Pas metadatacatalogi toe om gedeelde assets makkelijker vindbaar en begrijpelijk te maken
- Neem lineage-tracking op en logging om wijzigingen in gedeelde datasets te monitoren
- Handhaaf role-based access control zodat alleen geautoriseerde gebruikers specifieke data kunnen inzien
Over consumenten
Consumenten zijn de afnemers van gegevensdeling in Snowflake. Zij zijn niet de eigenaar van de data; ze bevragen data die door providers gedeeld wordt, met hun eigen compute-resources. Met andere woorden: consumenten benaderen en analyseren de data.
Omdat ze niet voor opslag betalen, is hun belangrijkste verantwoordelijkheid het beheren van hun virtual warehouses en het efficiënt uitvoeren van queries voor optimale compute-kosten.
Als ze via reader-accounts bevragen, worden de gebruikte compute-resources ook bij de providers in rekening gebracht.
De belangrijkste beperking voor een consument is dat hij de gedeelde data alleen kan lezen. Hij kan geen records wijzigen, invoegen of verwijderen. Ook ziet de consument geen interne wijzigingen van de provider; hij ziet altijd de meest recente versie van de beschikbare data.
Gegevensdeling implementeren in Snowflake
We hebben de kernconcepten behandeld om je op weg te helpen met gegevensdeling in Snowflake. Of je nu een providerprofiel instelt, een consumentenaccount configureert of een reader-account beheert: in dit gedeelte komt het allemaal aan bod.
Aan de slag als dataprovideer
Om data te publiceren naar de Snowflake Marketplace of een private Data Exchange, moet je eerst een providerprofiel instellen. Nadat je het providerprofiel hebt aangevraagd, beoordeelt en keurt Snowflake je bedrijfsgegevens goed. Na goedkeuring kun je beginnen met het maken en publiceren van je listings.
Zo stel je een providerprofiel in:
- Stap 1: Log in op je Snowflake-account.
- Stap 2: Zorg dat je de rol ACCOUTADMIN hebt.
- Stap 3: Klik in de linkerzijbalk op Data Products en selecteer vervolgens Provider Studio.

- Stap 4: Selecteer het tabblad Profiles en klik vervolgens op de knop Create Profile, zoals in de afbeelding hieronder.

- Stap 5: Vul in het formulier dat verschijnt de vereiste organisatie- en contactgegevens in om de setup van je providerprofiel te voltooien.
Aan de slag als dataconsument
- Stap 1: Log in op je Snowflake-account.
- Stap 2: Klik in de linkerzijbalk op Data Products en selecteer vervolgens Private Sharing.

- Stap 3: Ga naar het tabblad Shared with You om data-shares te bekijken die naar jou zijn gestuurd.
Delen met reader-accounts
Stap 1: Log in op je Snowflake-account.
Stap 2: Selecteer in het menu aan de linkerkant Admin en Accounts.

Stap 3: Selecteer het tabblad Accounts en ga vervolgens naar het subtabblad Reader Accounts.
Stap 4: Klik rechtsboven op de knop +Reader Account om een nieuw reader-account toe te voegen en vul de vereiste gegevens in het pop-upformulier in.

Beveiligingsarchitectuur
Data-shares in Snowflake zijn van nature veilig omdat consumenten alleen-lezen-toegang hebben en geen gedeelde data kunnen wijzigen, invoegen of verwijderen. Om de beveiliging verder te versterken bovenop deze standaardtoegangscontrole, volgt Snowflake ook deze maatregelen:
Veilige data-objecten
Je kunt tabellen, secure views en secure UDF’s delen; niet-secure views zijn niet te delen. Secure views voorkomen dat consumenten toegang krijgen tot onderliggende basistabellen of de SQL-logica zien die de view definieert. Dit zorgt ervoor dat gevoelige bedrijfslogica, eigen berekeningen of zelfgedefinieerde functies verborgen blijven voor eindgebruikers.
Secure views ondersteunen ook row-level-toegangsbeleid en column-level-masking, wat ze effectief maakt voor fijnmazige toegangscontrole. Je kunt deze policies combineren met role-based access control, zodat elke consument alleen de data ziet waarvoor hij geautoriseerd is.
Snowflake ondersteunt ook het gebruik van afzonderlijke schema’s voor interne en externe shares. Zo kun je ruwe, gevoelige datasets in het ene schema opslaan en alleen gemaskeerde of geaggregeerde views in een ander schema ontsluiten, waardoor de toegang van consumenten tot gevoelige data wordt beperkt.
Beveiliging over regio’s heen
Bij directe shares deelt Snowflake metadata en pointers naar oorspronkelijke objects binnen dezelfde regio en cloud. Maar als het consumentenaccount zich in een andere regio of cloud bevindt, werken directe shares niet. Daar komt replicatie om de hoek kijken.
De provider repliceert de data eerst naar een regio waar een consumentenaccount bestaat. Vervolgens maakt hij een share-object dat verwijst naar de gerepliceerde data en verleent hij toegang aan de consument. De consument bevraagt daarna de gerepliceerde data met alleen-lezen-toegang, net als bij directe shares.
Snowflake beveiligt alle gerepliceerde data door deze versleuteld op te slaan en te verzenden.
Daarnaast volgt datareplicatie door Snowflake beheerde interne datapaden en geen routes over het publieke internet. Net als bij directe shares is de gerepliceerde database nooit eigendom van de consument; de toegang blijft alleen-lezen.
Best practices voor Snowflake-data-shares
Deze best practices beschermen gevoelige data, optimaliseren resourcegebruik en borgen naleving van privacyregels, zodat samenwerking schaalbaar is over verschillende omgevingen.
Governanceframework
Een sterk governanceframework zorgt dat data-shares de juiste gebruikers bereiken met passende toegangsrechten. Het voorkomt misbruik en houdt alle toegang en acties traceerbaar.
Begin met dataclassificatie. Label je data duidelijk als gevoelig, beperkt of publiek en pas categorie-specifieke beveiligingsmaatregelen toe om risico te minimaliseren en onbedoelde blootstelling te voorkomen.
Voer regelmatig toegangsreviews en gebruiksaudits uit. Dat iemand zes maanden geleden toegang nodig had, betekent niet dat dat nu nog zo is. Beoordeel en werk rechten periodiek bij zodat toegang aansluit op actuele rollen en verantwoordelijkheden.
Gebruik Snowflake-toegangslogs om gebruik van gedeelde data te monitoren. Deze logs registreren wie de data bekeek, hoe vaak en welke acties zijn uitgevoerd, wat helpt bij compliance en performance tuning.
Pas row-level- en column-level-beveiliging toe voor fijnmazige toegangscontrole. Column-level-masking verbergt gevoelige velden terwijl de rest van de dataset zichtbaar blijft. Row-level-beleid beperkt toegang tot specifieke records op basis van gebruikersrollen of -attributen.
Performance-optimalisatie
Naast het beveiligen van gedeelde data zijn providers verantwoordelijk voor het optimaliseren van de performance van datasets, zodat consumenten efficiënt toegang hebben en kunnen query’en.
Gebruik clustering keys in Snowflake om query-prestaties en opslag-efficiëntie te verbeteren. Dit werkt vergelijkbaar met partitionering voor tabellen. Als je salesdataset bijvoorbeeld vaak wordt bevraagd op “price” en “region”, kun je die als clustering keys instellen. Snowflake organiseert de onderliggende data fysiek zo dat rijen met vergelijkbare waarden voor “price” en “region” dicht bij elkaar worden opgeslagen. Dat zorgt voor snellere toegang en efficiënter query’en.
Deel voor veelgebruikte businessmetrics materialized views naast de basisdatasets. Dit betekent dat je metrics zoals maandelijkse omzet per regio, gemiddelde wekelijkse verkoop of aantallen promoties vooraf berekent en samen met de onderliggende data deelt. Consumenten kunnen deze views direct bevragen, wat zowel performance als consistentie over use-cases heen verbetert.
Valideren en updaten van data-shares
Het delen van accurate data is cruciaal voor efficiënt gebruik van Snowflake-gegevensdeling. Valideer je gedeelde data tegen de bron om de kwaliteit te borgen. Vergelijk rijaantallen, draai aggregaties of samenvattingscontroles en voer schema-integriteit-, null- en metadatavalidaties uit. Deze validaties zorgen dat je complete en correcte data deelt.
Nieuwe databronnen toevoegen of schema’s wijzigen is lastig te beheren, zeker over meerdere data-shares heen. Deel om migraties te vereenvoudigen liever views dan ruwe tabellen. Views fungeren als flexibele laag, zodat je de onderliggende datastructuur of backendtabellen kunt wijzigen zonder queries van consumenten te verstoren.
Gebruik versiebeheer wanneer je gedeelde datasets bijwerkt. Geversioneerde views of schemaversies laten je wijzigingen volgen, nieuwe logica testen en terugrollen als er iets misgaat.
Informeer je consumenten over aankomende wijzigingen die invloed kunnen hebben op gedeelde data. Een simpele heads-up geeft gebruikers tijd om zich aan te passen en de overgang voor te bereiden.
Beperkingen en aandachtspunten
Snowflake-data-shares kennen enkele ingebouwde beperkingen. Dat zijn geen showstoppers, maar wel zaken om op te anticiperen.
Niet alle objecttypen zijn deelbaar. Je kunt tabellen, secure views en secure UDF’s delen. Je kunt geen niet-secure views, stored procedures, file stages en tasks of streams delen.
Hoewel Snowflake Marketplace en data-exchanges data over regio’s heen delen, kunnen directe data-shares alleen binnen dezelfde regio en cloudomgeving. Om deze beperking te omzeilen heb je Snowflake’s cross-region/cross-cloud-replicatie nodig (vereist Enterprise Edition of hoger).
Consumenten hebben alleen-lezen-toegang tot gedeelde data. Ze kunnen geen records wijzigen, invoegen of verwijderen. Als ze data willen transformeren of beschrijven, moeten ze die naar hun eigen omgeving kopiëren, wat extra opslag- en compute-kosten met zich meebrengt.
Conclusie
Door data-shares effectief te gebruiken in Snowflake haal je het maximale uit veilige, kostenefficiënte samenwerking. Providers kunnen live, querybare data delen met consumenten, zonder ETL of dataduplicatie. Eventuele updates aan de brondata worden direct zichtbaar in de consumentenaccounts, zodat altijd de meest actuele informatie beschikbaar is.
Door Snowflake’s model voor gegevensdeling te omarmen, kunnen organisaties samenwerking rond analytics opschalen, governance versterken en de waarde van hun data-assets maximaliseren. Dit is echter alleen zinvol wanneer consumenten de gedeelde data niet hoeven te bewerken.
Als je nieuw bent met Snowflake, begin dan met deze beginnersvriendelijke gids over hoe je Snowflake leert. Wil je je expertise verdiepen? Bekijk dan onze Snowflake Foundations skill track en onze cursus over datamodellering in Snowflake.
Snowflake-gegevensdeling: veelgestelde vragen
Hoe waarborgt Snowflake de databeveiliging tijdens het delen?
Snowflake gebruikt een zero-copy-architectuur die consumenten alleen-lezen-toegang geeft via veilige metadatapointers. Bij gegevensdeling worden standaard ook secure views gebruikt.
Wat zijn de belangrijkste verschillen tussen directe shares en data-exchanges in Snowflake?
Directe shares gebruik je om data te delen met specifieke Snowflake-accounts binnen dezelfde regio. Ze zijn geschikt voor één-op-één- of één-op-weinig-setups. Data-exchanges zijn geschikt voor schaalbare gegevensdeling, waarbij providers data publiceren naar een marketplace en consumenten het daar afnemen.
Wat zijn de voordelen van het gebruik van secure views voor gegevensdeling in Snowflake?
Secure views voorkomen dat consumenten de onderliggende basistabellen en SQL-logica zien. Ze ondersteunen beveiliging op rij- en kolomniveau, waardoor je de zichtbaarheid fijnmazig kunt regelen.
Welke objecten kun je delen in Snowflake?
Je kunt tabellen, views (standaard, secure), materialized views, UDF’s, sequences, external tables en secure functions delen.
Kunnen we het gebruik van onze gedeelde data volgen?
Ja. Snowflake biedt access history- en query history-functies waarmee je kunt monitoren hoe gedeelde objecten worden gebruikt, door wie en wanneer. Dit ondersteunt auditing en governance.
Srujana is een freelance techschrijver met een vierjarige opleiding in Computer Science. Schrijven over uiteenlopende onderwerpen, waaronder data science, cloud computing, development, programmeren, security en veel meer, gaat haar vanzelf af. Ze houdt van klassieke literatuur en het ontdekken van nieuwe bestemmingen.


