Optimisation automatique des requêtes. Pas de réglage !

Optimisation automatique des requêtes. Pas de réglage !


J’espère que vous avez eu la chance de lire tous nos précédents 10 meilleurs articles. Nous concluons maintenant la série avec une dernière plongée en profondeur dans ma fonctionnalité cool n ° 1 de Snowflake :

#1 Optimisation automatique des requêtes. Pas de réglage !

En tant qu’architecte de données de longue date, et ne pas un DBA, c’est ma partie préférée de Snowflake. Je n’ai pas à me soucier des performances des requêtes du tout. Tout est géré « automatiquement » via un moteur d’optimisation dynamique des requêtes dans notre couche de services cloud. Je modélise, charge et interroge simplement les données.

Services infonuagiques

Le flocon de neige est un MPP, en colonne magasin donc conçu pour les requêtes analytiques à haut débit par définition. Notre couche de services cloud effectue toute la planification et l’optimisation des requêtes en fonction des profils de données qui sont collectés automatiquement au fur et à mesure que les données sont chargées. Il collecte et conserve automatiquement les informations requises statistiques pour déterminer comment répartir le plus efficacement les données et les requêtes sur les nœuds de calcul disponibles.

Donc, pas d’index, pas besoin de comprendre les partitions et les clés de partition, pas besoin de pré-partager les données pour une distribution uniforme, et pas besoin de penser à mettre à jour les statistiques.



Un autre point clé à retenir est que non seulement cette optimisation dynamique ajuste automatiquement les requêtes qui fonctionnent avec les données structurées traditionnelles, mais aussi avec les données semi-structurées (comme JSON, Avro ou XML). Lorsque des données semi-structurées sont chargées dans notre UNE VARIANTE type de données, comme mentionné dans un précédent article de blog, les données sont profilées et classées en colonnes dans les coulisses. Avec cette approche, l’interrogation des données (à l’aide de nos extensions JSON ou XML) est optimisée comme pour les données relationnelles structurées, sans avoir à consacrer du temps et des efforts à les découper en tables et colonnes relationnelles. En raison de cette approche unique de gestion des données semi-structurées, Snowflake prend non seulement en charge la jonction de données structurées et semi-structurées avec SQL, mais optimise également ces jointures.

Lâchez Luke – Faites confiance à la Force !

Comme vous pouvez l’imaginer, il y a des gens qui n’aiment pas le changement et qui veulent que nous ajoutions plus de boutons afin qu’ils puissent régler manuellement leurs requêtes.

Pourquoi? Eh bien, ils disent qu’ils connaissent mieux leur charge de travail que Snowflake et peuvent donc mieux l’optimiser que le logiciel Snowflake. D’autres disent qu’ils ont déjà fait tout le travail pour optimiser une autre plateforme pour leur charge de travail et qu’ils ne veulent pas « perdre » tout ce temps et ces efforts.

Étant donné que je viens d’un milieu d’entrepôt de données traditionnel et que je connais de nombreux architectes d’entrepôt de données experts qui sont de classe mondiale pour régler des bases de données spécifiques pour effectuer des types de requêtes spécifiques, je comprends certainement et je peux sympathiser avec ce point de vue.

Mais le monde des données a changé ! La façon dont nous construisons, déployons et utilisons les données (de toutes sortes) évolue continuellement et nous devons faire évoluer notre approche pour réussir.

Pour cette raison, il y a quelques points à considérer en ce qui concerne le réglage :

  1. Vos charges de travail sera monnaie.
  2. Le grand nombre de différent les charges de travail vont augmenter plus vite que votre bande passante pour régler manuellement (donc quelqu’un doit prioriser qui gagne).
  3. Que se passe-t-il si votre accordeur de requête expert décide de vendre un bien immobilier à la place ?

S’appuyer sur vous-même et sur d’autres experts en optimisation DBA entraînera en fin de compte un goulot d’étranglement de l’optimisation des performances, ce qui entraînera à son tour une augmentation des conflits pour les ressources de l’entrepôt de données. Peu importe à quel point vous êtes bon, à la fin, vous ne pourrez pas suivre. Alors pourquoi ne pas utiliser un entrepôt de données service pour gérer ce travail pour vous afin que vous puissiez vous concentrer sur l’accès des gens d’affaires à toutes ces données sous une forme qu’ils peuvent utiliser pour prendre de meilleures décisions commerciales ? En bref, les personnes sont la chose la plus difficile à faire évoluer dans toute solution d’analyse de données. Ainsi, toute solution qui vous permet d’évoluer sans goulots d’étranglement sur les personnes est gagnante.

Et si la requête n’est toujours pas assez rapide, avec Snowflake, vous avez toujours la possibilité de redimensionner votre entrepôt virtuel pour ajouter des ressources de calcul supplémentaires, comme nous l’avons décrit dans l’article sur élasticité. Sans l’avantage d’un moteur d’optimisation dynamique, vous ne pourriez pas modifier la configuration de calcul à la volée et voir des améliorations immédiates. Dans de nombreux autres environnements, si vous modifiez le nombre de nœuds de calcul, vous devrez redistribuer les données ou effectuer d’autres réglages manuels afin d’obtenir des performances améliorées. Ce ne serait pas élastique du tout.

Pour toutes ces raisons, notre en instance de brevet l’optimisation dynamique est, pour moi, l’une des fonctionnalités les plus importantes lorsqu’il s’agit de faire de Snowflake Elastic Data Warehouse un véritable SaaS offrant et permettant des analyses agiles et rapides à n’importe quelle échelle. Dans le cadre de notre vision, nous avons développé une offre qui aide les clients à se concentrer sur la compréhension et la dérivation évaluer de leurs données plutôt que de passer du temps à peaufiner, gérer et optimiser l’environnement. Les utilisateurs professionnels et les scientifiques des données peuvent facilement analyser leurs données en se connectant nativement à Snowflake via divers outils, sans avoir à se soucier du réglage et de l’optimisation des requêtes.

Comme je l’ai déjà dit, en tant qu’architecte et concepteur d’entrepôt de données, j’aime beaucoup ce modèle !

Fin de ce parcours… plus à venir

Eh bien, c’est le dernier de mes Top 10 liste des fonctionnalités intéressantes de Snowflake. Je tiens à remercier Saqib Mustafa pour toute son aide en collaborant à cette série de messages.

Il existe bien sûr de nombreuses autres fonctionnalités intéressantes dans Snowflake, et d’autres à venir dans le futur. Alors gardez un œil sur ce blog pour de futurs articles avec plus de détails sur le Snowflake Elastic Data Warehouse, l’entrepôt de données cloud natif en tant que service.

Comme toujours, gardez un œil sur nos flux Twitter liés à Snowflake (@SnowflakeDB), (@kentgraziano), et (@cloudsommelier) pour des mises à jour continues sur toutes les actions et activités ici à Snowflake Computing.

Liens supplémentaires

Laisser un commentaire

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