Accélération des requêtes Azure Data Lake Storage

En utilisant l’accélération des requêtes, les applications et les cadres d’analytique peuvent optimiser le traitement des données. Ils ne récupèrent que les données nécessaires pour effectuer une opération donnée. Cette approche réduit le temps et la puissance de traitement nécessaires pour obtenir des informations sur les données stockées.

Aperçu

L’accélération des requêtes prend en charge les prédicats de filtrage et les projections de colonnes. En utilisant ces prédicats et projections, les applications peuvent filtrer les lignes et colonnes lors de la lecture de données sur disque. Seules les données qui remplissent les conditions d’un prédicat sont transférées via le réseau vers l’application. Cette approche réduit la latence réseau et le coût de calcul.

Utilisez SQL pour spécifier les prédicats du filtre de ligne et les projections de colonnes dans une requête d’accélération de requête. Gardez à l’esprit les contraintes suivantes :

  • Une requête traite un seul fichier.
  • L’accélération des requêtes ne prend pas en charge les fonctionnalités relationnelles avancées de SQL, telles que les jointures et le groupe par agrégats.
  • L’accélération des requêtes prend en charge les données au format CSV et JSON comme entrée dans chaque requête.

La fonctionnalité d’accélération des requêtes n’est pas limitée à Data Lake Storage (comptes de stockage pour lesquels l’espace de noms hiérarchique est activé). L’accélération des requêtes est compatible avec les blobs dans les comptes de stockage pour lesquels l’espace de noms hiérarchique n’est pas activé. Cette compatibilité signifie que vous pouvez obtenir la même réduction de la latence réseau et des coûts de calcul lorsque vous traitez des données déjà stockées sous forme de blobs dans des comptes de stockage.

Pour obtenir un exemple d’utilisation de l’accélération des requêtes dans une application cliente, consultez Filtrer les données à l’aide de l’accélération des requêtes Azure Data Lake Storage.

Flux de données

Le diagramme suivant illustre comment une application classique utilise l’accélération des requêtes pour traiter les données.

Diagramme montrant comment une application utilise l’accélération des requêtes pour filtrer et traiter les données.

  1. L’application cliente demande des données de fichier en spécifiant des prédicats et des projections de colonnes.

  2. L’accélération des requêtes analyse la requête SQL spécifiée et distribue le travail pour analyser et filtrer les données.

  3. Les processeurs lisent les données du disque, analysent les données en utilisant le format approprié, puis filtrent les données en appliquant les prédicats et projections en colonnes spécifiés.

  4. L’accélération des requêtes combine les fragments de réponse pour les renvoyer vers l’application client.

  5. L’application cliente reçoit et analyse la réponse diffusée. L’application n’a pas besoin de filtrer d’autres données et peut appliquer directement le calcul ou la transformation souhaités.

Meilleures performances à moindre coût

L’accélération des requêtes optimise la performance en réduisant la quantité de données que votre application transfère et traite.

Pour calculer une valeur agrégée, les applications récupèrent généralement toutes les données d’un fichier, puis traitent et filtrent les données localement. Une analyse des schémas d’entrée et de sortie (E/S) pour les charges analytiques révèle que les applications nécessitent généralement seulement 20% des données qu’elles lisent pour effectuer un calcul donné. Cette statistique reste valable même après l’application de techniques comme le partition pruning. Ce résultat signifie que les applications transfèrent, analysent et filtrent inutilement 80% des données. Ce modèle, conçu pour supprimer des données inutiles, entraîne un coût de calcul significatif.

Même si Azure propose un réseau haute performance, en termes de débit et de latence, transférer inutilement des données à travers ce réseau reste coûteux pour la performance des applications. En filtrant les données indésirables pendant la demande de stockage, l’accélération des requêtes élimine ce coût.

De plus, la charge CPU nécessaire pour analyser et filtrer les données inutiles oblige votre application à provisionner davantage de machines virtuelles et des machines virtuelles plus grandes pour effectuer son travail. En transférant cette charge de calcul à l’accélération des requêtes, les applications peuvent réaliser des économies significatives.

Applications qui peuvent tirer parti de l’accélération des requêtes

L’accélération des requêtes est conçue pour les cadres d’analyse distribuée et les applications de traitement des données :

  • Les frameworks d’analyse distribuée tels qu’Apache Spark et Apache Hive incluent une couche d’abstraction de stockage au sein du cadre. Ces moteurs incluent également des optimiseurs de requête qui peuvent incorporer des connaissances sur les fonctionnalités du service d’E/S sous-jacent lors de la détermination d’un plan de requête optimal pour les requêtes utilisateur. Ces frameworks intègrent l’accélération des requêtes. Par conséquent, les utilisateurs de ces frameworks voient une latence de requête améliorée et un coût total inférieur de possession sans avoir à apporter de modifications aux requêtes.

  • Les applications de traitement de données réalisent généralement des transformations de données à grande échelle qui ne mènent pas directement à des insights analytiques, elles n’utilisent donc pas toujours des cadres d’analytique distribuée établis. Ces applications ont souvent une relation plus directe avec le service de stockage sous-jacent, ce qui leur permet de bénéficier directement de fonctionnalités telles que l’accélération des requêtes.

Pour obtenir un exemple de la façon dont une application peut intégrer l’accélération des requêtes, consultez Filtrer les données à l’aide de l’accélération des requêtes Azure Data Lake Storage.

Tarification

En raison de la charge de calcul accrue au sein du service Azure Data Lake Storage, le modèle tarifaire pour l’accélération des requêtes diffère du modèle de transaction classique d’Azure Data Lake Storage. L’accélération des requêtes facture un coût pour la quantité de données analysées ainsi qu’un coût pour la quantité de données retournées à l’appelant. Pour plus d’informations, consultez la tarification d’Azure Data Lake Storage.

Malgré le changement du modèle de facturation, le modèle tarifaire de l’accélération des requêtes est conçu pour réduire le coût total de possession d’une charge de travail, compte tenu de la réduction des coûts beaucoup plus élevés des machines virtuelles.

Étapes suivantes