Conseils pour optimiser l’architecture Data Vault sur Snowflake (Partie 2)

Conseils pour optimiser l’architecture Data Vault sur Snowflake (Partie 2)


Dans cet article, je vais expliquer comment concevoir la charge de votre coffre-fort de données dans Snowflake Cloud Data Platform pour une vitesse maximale. Si vous n’êtes pas familier avec la méthode Data Vault (DV), veuillez lire cet article de blog d’introduction et partie 1 de cette série avant de lire cet article.

Parce que flocon de neige sépare le calcul du stockage et permet la définition de plusieurs clusters de calcul indépendants, il offre des opportunités vraiment uniques de configurer des entrepôts virtuels pour prendre en charge un débit optimal des charges DV.

En plus d’utiliser des entrepôts plus grands « taille de t-shirt » pour augmenter le débit, en utilisant entrepôts multi-clusters pendant le chargement des données augmente la simultanéité pour des charges encore plus rapides à grande échelle.

Modèle de chargement de clé séquentiel

Il s’agit du modèle standard de chargement des entrepôts DV 1.0, comme mentionné dans la partie 1 de cette série.

DataValut 1

Dans le chargement DV 1.0, vous pouvez effectuer les chargements d’étape (première barre verticale) avec un entrepôt multi-cluster (pour permettre la simultanéité d’évolution automatique de plusieurs tables chargées à la fois). En aval du processus, vous pouvez appliquer plusieurs entrepôts virtuels à différents stades du processus pour optimiser le débit et la simultanéité tout en minimisant les conflits.

  • Vous pouvez exécuter des chargements stage-to-Hub (deuxième barre verticale) à l’aide d’un deuxième entrepôt multicluster. Cela permet aux charges de scène de fonctionner en continu sans conflit avec les charges HUB.
  • Étant donné que les clés de substitution Hub doivent être créées avant de charger les tables Satellite (Sat), vous pouvez exécuter des chargements Hub-to-Hub Sat (troisième barre verticale) à l’aide du même entrepôt multi-cluster, bien que vous puissiez utiliser un entrepôt virtuel séparé de taille différente si , par exemple, il y avait beaucoup de sats changeant rapidement avec beaucoup de colonnes. Dans ce cas, un entrepôt plus grand pourrait avoir plus de sens.
  • De plus, une fois les chargements Hub terminés, vous pouvez exécuter les chargements Link en parallèle avec les chargements Hub Sat en utilisant un troisième entrepôt multicluster.
  • Enfin, vous pouvez exécuter les charges Links-to-Link Sats (quatrième barre verticale) à l’aide d’un quatrième entrepôt multi-cluster.

Le diagramme ci-dessous montre où les différents entrepôts virtuels se situeraient dans le processus.

DataVault Stage Loads

Comme pour toutes les configurations d’entrepôt virtuel dans Snowflake, nous vous recommandons d’activer suspension automatique et reprise automatique pour minimiser la maintenance et les coûts en cours.

Modèle de chargement de clé naturelle/hachée

En raison de l’utilisation de clés calculées (hachées) ou de clés métier naturelles trouvées dans les données source, l’approche DV 2.0 permet une parallélisation maximale du processus de chargement, comme illustré dans le diagramme ci-dessous.

image3 2

Comme avec l’approche DV 1.0, Snowflake offre la possibilité de tirer pleinement parti de cette architecture de charge.

Les recommandations pour la mise en place de cette approche sont de nature très similaire aux recommandations ci-dessus. Tout d’abord, mettez en place un entrepôt multi-cluster pour les charges scéniques (première barre verticale). À partir de là, vous pouvez exécuter toutes les charges (deuxième barre verticale) en parallèle à l’aide de quatre entrepôts multi-cluster distincts, comme illustré dans le schéma suivant.

DataVault Vault Loads

Avec cette configuration, vous pouvez exécuter des scénarios de chargement continu sur votre DV sans aucun conflit. L’utilisation d’entrepôts multi-cluster vous permet également d’ajouter de manière itérative non seulement de nouvelles charges sources, mais aussi de nouveaux objets (Hubs, Links, Sats) au modèle sans avoir à vous soucier d’atteindre un seuil de simultanéité. Et rappelez-vous : vous ne payez que ce que vous utilisez, donc même un entrepôt multi-cluster avec un paramètre de 10 pour le nombre maximal de clusters n’activera ces clusters supplémentaires que s’il y a une file d’attente dans les charges.

Conseils supplémentaires

Pour les deux modèles de charge discutés ici, nous vous recommandons de faire quelques tests initiaux pour déterminer la taille de t-shirt optimale pour les différents entrepôts virtuels. Il est probable que vous constaterez que vous pouvez utiliser des entrepôts plus petits pour les Hubs et les Liens, mais vous pourriez bénéficier de l’utilisation de plus grands pour les Sats. La meilleure façon de choisir une taille consiste à effectuer des tests empiriques.

Dans la partie 3 de cette série, je discuterai de quelques fonctionnalités supplémentaires de Snowflake que vous pourriez utiliser dans un DV. Celles-ci incluent l’utilisation de types de colonnes VARIANT et l’utilisation d’insertions multi-tables.

En attendant, assurez-vous de nous suivre sur Twitter à @SnowflakeDB et @kentgraziano pour vous tenir au courant de toutes les dernières nouvelles et innovations sur DV et Snowflake Cloud Data Platform.

Un merci spécial à Keith Hoyle, Snowflake Solution Architect, pour m’avoir aidé à examiner et tester ces concepts, et pour avoir créé les diagrammes originaux.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.