Tables hybrides¶
Une table hybride est un type de table Snowflake optimisé pour les charges de travail transactionnelles et opérationnelles hybrides qui nécessitent une faible latence et un débit élevé pour les petites lectures et écritures de points aléatoires. Une table hybride prend en charge l’application de contraintes d’intégrité unique et référentielle essentielle pour les charges de travail transactionnelles. Vous pouvez utiliser une table hybride avec d’autres tables et fonctionnalités Snowflake pour optimiser les charges de travail Unistore qui rassemblent les données transactionnelles et analytiques en une seule plateforme.
Les cas d’utilisation susceptibles de bénéficier des tables hybrides sont les suivants :
Création d’une cohorte pour une campagne marketing ciblée via une interface utilisateur interactive.
Maintien d’un état de flux de travail central pour coordonner les pipelines de transformation de données parallèles volumineux.
Fourniture d’un traitement de promotion précalculé aux utilisateurs qui consultent votre site Internet ou votre application mobile.
Architecture¶
Les tables hybrides sont intégrées en toute transparente à l’architecture Snowflake existante. Les clients se connectent au même service de base de données Snowflake. Les requêtes sont compilées et optimisées dans la couche de services Cloud et exécutées dans le même moteur de requête dans les entrepôts virtuels. Cette architecture présente plusieurs avantages clés :
Les fonctionnalités de la plateforme Snowflake telles que la gouvernance des données fonctionnent d’emblée avec les tables hybrides.
Vous pouvez exécuter des charges de travail hybrides mélangeant des requêtes opérationnelles et analytiques.
Vous pouvez joindre des tables hybrides à d’autres tables Snowflake et la requête s’exécute nativement et efficacement dans le même moteur de requête. Aucune fédération n’est obligatoire.
Vous pouvez exécuter une transaction atomique sur des tables hybrides et d’autres tables Snowflake. Il n’est pas nécessaire d’orchestrer votre propre validation en deux phases.

Les tables hybrides s’appuient sur un magasin de lignes comme magasin de données principal pour offrir d’excellentes performances de requêtes opérationnelles. Lorsque vous écrivez dans une table hybride, les données sont écrites directement dans le magasin de lignes. Les données sont copiées de manière asynchrone dans le stockage d’objets afin d’améliorer les performances et l’isolation de la charge de travail des analyses volumineuses, sans incidence sur les charges de travail opérationnelles en cours. Certaines données peuvent également être mises en cache au format de colonne dans votre entrepôt afin d’améliorer les performances des requêtes analytiques. Il vous suffit d’exécuter des instructions SQL sur la table hybride logique et l’optimiseur de requêtes de Snowflake décide où lire les données afin de fournir les meilleures performances. Vous obtenez une vue cohérente de vos données sans avoir à vous soucier de l’infrastructure sous-jacente.
Note
Étant donné que le stockage principal des tables hybrides est un magasin de lignes, les tables hybrides ont généralement une empreinte de stockage plus grande que les tables standard. La principale raison de cette différence est que les données en colonnes des tables standard atteignent souvent des taux de compression plus élevés. Pour obtenir des informations sur les coûts de stockage, voir Évaluation du coût des tables hybrides.
Fonctionnalités¶
Les tables hybrides offrent des fonctionnalités supplémentaires qui ne sont pas prises en charge par les autres types de table Snowflake.
Fonctionnalité |
Tables hybrides |
Tables standards |
---|---|---|
Disposition des données principales |
Orientation lignes, avec un stockage secondaire en colonnes |
Micro-partitions en colonnes |
Verrouillage |
Verrouillage au niveau des lignes |
Verrouillage des partitions ou des tables |
Contraintes PRIMARY KEY |
Obligatoire, appliqué |
Facultatif ; non appliqué |
Contraintes FOREIGN KEY |
Facultatif, appliqué (intégrité référentielle) |
Facultatif ; non appliqué |
Contraintes UNIQUE |
Obligatoire, appliqué |
Facultatif ; non appliqué |
Contraintes NOT NULL |
Obligatoire, appliqué |
Obligatoire, appliqué |
Index |
Pris en charge à des fins de performances ; mis à jour de manière synchrone lors de l’écriture |
Le service d’optimisation de la recherche indexe les colonnes pour de meilleures performances en matière de recherche de points ; les lots sont mis à jour/maintenus de manière asynchrone |
Une contrainte est appliquée lorsqu’elle protège une colonne contre toute mise à jour de certaines manières. Par exemple, une colonne déclarée NOT NULL ne peut pas contenir une valeur NULL. Une tentative de copie ou d’insertion d’une valeur NULL dans une colonne NOT NULL entraîne toujours une erreur. Pour les tables hybrides, vous ne pouvez pas définir la propriété NOT ENFORCED sur les contraintes PRIMARY KEY, FOREIGN KEY et UNIQUE. La définition de cette propriété entraîne une erreur « propriété de contrainte non valide ».
Une contrainte est obligatoire lorsqu’une ou plusieurs colonnes d’une table doivent avoir une telle contrainte, ce qui n’est vrai que pour les contraintes PRIMARY KEY sur les tables hybrides.
Quand utiliser une table hybride¶
Même si les tables standards Snowflake devraient offrir de meilleures performances en cas de requêtes analytiques volumineuses, les tables hybrides permettent d’obtenir des résultats plus rapides en cas de requêtes opérationnelles à court terme. Les types de requêtes suivants sont les plus susceptibles de bénéficier des tables hybrides :
Lectures de points aléatoires à haute simultanéité par rapport aux lectures de grandes plages.
Écritures aléatoires à haute simultanéité par rapport aux écritures séquentielles volumineuses (par exemple, chargement en masse).
Récupération d’un petit nombre d’enregistrements complets (par exemple, objet client) par rapport aux projections étroites avec des fonctions analytiques (par exemple, agrégations ou requêtes GROUP BY).
Si vos requêtes correspondent à l’un de ces modèles, les tables hybrides peuvent être la solution idéale pour stocker vos données.