In een doorsnee tabel worden de gegevens opgeslagen in de database. In Snowflake hebben we sinds kort de mogelijkheid om een externe tabel aan te maken, maar wat houdt dit in, wat is hiervan het nut en wat maakt dit allemaal mogelijk?
Om te beginnen met een simpele definitie van wat dit inhoudt; De gegevens worden niet in Snowflake opgeslagen, maar in bestanden in een externe stage omgeving. Deze externe stage omgeving is een simpele opslag in de vorm van AWS S3, Google Cloud Storage of Azure Storage. Voor externe tabellen wordt de metadata over de gegevensbestanden opgeslagen, hierbij moet je denken aan de bestandsnaam, een versie-ID en de bijbehorende eigenschappen. Aan de hand van deze metadata kun je gegevens opvragen die in de bestanden, in de externe stage omgeving zit. Voor de eindgebruiker lijkt het alsof de opgeslagen gegevens, zich in het Snowflake Datawarehouse bevinden, maar feitelijk wordt de data opgehaald uit een aparte storage account.
Doordat Snowflake nu de mogelijkheid biedt om externe tabellen te gebruiken in Snowflake, kun je nu zonder dat je een dataset fysiek laadt deze toch beschikbaar maken als tabel voor de gebruikers. Externe tabellen zijn read-only, daarom kunnen er geen data manipulatie bewerkingen op worden uitgevoerd maar externe tabellen kunnen wel worden gebruikt voor query- en join-bewerkingen. Zo kun je views maken die de externe tabellen raadplegen.
Alle soorten data ondersteund door het COPY_INTO command, zijn beschikbaar om een externe tabel mee aan te maken, dit biedt je dus de mogelijkheid om bijvoorbeeld JSON data in een externe stage via Snowflake beschikbaar te maken met een SQL query.
Als je het schema van de data in de storage goed kent, kun je Virtual Columns definieren, dit helpt om datatypes en het schema te valideren omdat de data exact moet matchen met de gespecificeerde Virtual Column.
Door de functie AUTO_REFRESH kun je de metadata van de externe tabel automatisch laten vernieuwen op het moment dat er nieuwe data of een update aan de stage omgeving wordt toegevoegd.
Al met al is de mogelijkheid om externe tabellen aan te maken in Snowflake een waardevolle optie waarmee je Snowflake nog beter kunt integreren in je bestaande infrastructuur, hiermee zorg je ervoor dat je nog meer verschillende databronnen centraal beschikbaar kunt maken via het SQL datawarehouse ontwikkeld voor de cloud. Wil je weten hoe je Snowflake kunt integreren in jouw huidige architectuur? Twijfel niet om contact met ons op te nemen.