Snowflake Flashcards
Quels sont les types de Tables
- Permanent
- Temporary
- Transient
- External
Quel est le type de table par défaut?
Permanent
Quel type de table accepte le Fail Safe?
Table permanent
Quelle(s) table(s) est(sont) supprimé que si on le demande avec un drop?
table permanent, transient et external
Quelle est la caractéristique d’une table Extenrnal?
Elle contient des données de l’extèrieur (ex: s3)
Pourquoi utiliser une table Transient plutôt qu’une table Permanent?
Pour éviter les coûts du fail safe
Quelle table possède du Time Travel?
Permanent
Transient
Temporary
Quelle table ne possède pas du Time Travel?
External
Quelle feature permet de récupérer les donnée 7j après la deadline du time travel ?
Le Fail Safe
Comment utiliser le fail Safe?
En dernier recourt en demandant à Snowflake
Qu’est ce que le Fail Safe?
Permet de récupérer des données pendant 7j après la fin du Time travel
Qu’est ce qu’une sequence?
Objet qui permet de faire des incrémentation (positive ou négative)
Comment avance une séquence ?
En faisant des requêtes dessus
Peut ont avoir des doublons avec les Séquences?
Oui, en modifiant la séquence en cours
Ex:
avec un pat de 1 on va générer 1=> 2=>3
on change le pas à -1 on va retomber sur 2=>1=>0=>-1
Pour quel use-case, sont le plus souvent utilisé les séquences?
Pour générer des ids incrémentals
Est-ce qu’il est garanti de ne pas avoir de trous entre deux valeurs avec une Séquence?
Non snow ne garanti pas les gap entre les valeurs
A quoi sert un Stream?
C’est un marque page il sert à savoir ce qu’il s’est passé depuis la dernière lecture d’une table
Quels sont les types de view?
Standard
Materialized
Secure
Quel est le type de view par défaut?
Standard
Que stock une view Standard?
Elle stock uniquement la query select pas de données
Qu’est ce qu’une Materialized view? (détail)
C’est ce qu’on appelle un PRECOMPUTED DATASET cad c’est une view qui stock le comptenu d’une table
le contenu est refresh à chaque DML sur la table source par snowflake
On ne peut pas avoir de join dans la query c’est MONOSOURCE
Quel est l’avantage d’une materialized view?
Utile si la table source ne fait pas des modification tout le temps car modif à chaque DML
Si la requête de la vue est couteuse on l’execute moins (si: lecture view > DML table source)
Utile sur les external tables car on réduit le chemin vers la donnée
On peut avoir une clé de clustering différentes que sur la table source
Quel sont les couts de stockage d’une vue Standard?
Aucun coût
Quels sont les coûts d’une vue Materialized?
Stockage de la données + coût lié au requêtage?
Quelles view peuvent être secure ?
Toutes :
Materialized & Standard
A quoi ça sert de rendre une view sécure ?
ça permet d’augmenter la data privacy
comment fonctionne une view secure?
Avec une vue classique les optim interne de snowFlake accède à toutes les données de la table source et donc à des données cachés
la secure vue N’UTILISE PLUS ces optim et donc le risque d’avoir accès à des données cachées”
Quel est le désavantage d’une vue secure ?
Enlève de l’optim et réduit donc les perfs
Combien y a t il de bloc principale dans l’archi Snow? et quels sont ils?
Il y en a 3
Data Storage Layer
Query Procesing Layer
Cloud services Layer
Qu’est ce que le data Storage Layer?
C’est le layer qui stock toutes les donées et il les partages à tous les noeud comme sur du Shared Disk
A quoi correspond le Query processing Layer?
Il représente les WH snow
Chaque WH à accès au données partagé et il possède un cache
Quel Layer de l’archi snow correspond au WH?
C’est le Query Processing Layer
A quoi sert le Cloud Service Layer?
Il correspond à toute la partie gestion de l’infra
* Gestion de l’auth et du contrôle d’accès au ressource
* Création des ressources cloud derrière (ex: blob s3)
* Management des Transaction pour le respect du concept ACID
* les métadata
* Optim des query
* Sécu + data encryption
Est-ce que nous gérons le Cloud Service Layer?
Non c’est transparent pour nous
Qu’est ce que stock un stream?
Uniquement l’offeset il ne stock pas de data de la table
Comment peut ont savoir les modification qu’une table/view a subit depuis la dernière fois que nous avons regarder?
On utilise un STREAM.
On REGARDE L’OFFSET qu’il stock et on utilise le change data capture pour trouver toutes les actions DML effectué depuis l’offset
Il est également possible si nous connaissons la dernière date d’utiliser l’attribut CHANGES dans notre requête pour voir ces infos
Comment évolue le versionning d’une table ?
il s’incrémente à chaque transactions commit contenant 1 ou + DML
Le stream a un impact sur la table ?si oui explique
l ajoute 3 colonnes cachés
- Metadata$Action: action effectué (uniquement insert et delete)
- Metadata$Update: indique si cette ligne fait partie d’un update (U= 2 lignes I + D)
*Metadata$Row_ID: id de la ligne affecté
Y a-t-il plusieurs style de stream si oui quels sont-ils?
Standard
Append Only
Insert Only
Quel est le type de stream par défaut?
Standard
Sur quel type d’objet peut être appliqué un stream standard?
Table, View, Directory
Quels sont les diffs entre un stream Standard et un stream AppendOnly?
L’appendOnly note juste les actions d’insert
Quelle est la différence entre un stream Append Only et insert Only?
L’append Only est applicable sur les table, view et directory
le Insert Only l’est que sur les external table
Que se passe-il si un stream n’est pas maj avant le fin de la période de rétention ?
Il devient obsolète