Revenir au contenu principal

Nouvelles améliorations des performances de Databricks SQL

The initial release of Databricks SQL offered significant performance benefits -- up to 6x price/performance -- compared to traditional cloud data warehouses as per the TPC-DS 30 TB scale benchmark

Published: September 8, 2021

Produit7 min de leitura

Databricks SQL est désormais en disponibilité générale sur AWS et Azure.


Annoncé initialement lors du Data + AI Summit 2020 Europe, Databricks SQL vous permet d'exploiter une architecture lakehouse multi-cloud qui offre les performances d'un entreposage des données aux coûts d'un lac de données. Notre vision est de fournir aux data analysts un outil simple mais agréable pour obtenir et partager des insights à partir de leur lakehouse, en utilisant une interface utilisateur SQL spécialement conçue et un excellent support pour les outils de BI populaires.

Ce blog est le premier d'une série sur Databricks SQL qui vise à présenter les innovations que nous apportons constamment pour concrétiser cette vision : performance, facilité d'utilisation et gouvernance. Ce blog présentera les récentes optimisations de performance dans le cadre de Databricks SQL pour :

  • Charges de travail analytiques hautement concurrentes
  • Gestion intelligente des charges de travail
  • Lectures hautement parallèles
  • Amélioration de la récupération des résultats de Business Intelligence avec Cloud Fetch

 <a href="https://www.databricks.com/resources/ebook/rise-data-lakehouse?itm_data=performancedatabrickssql-blog-riselakehousebook" target="_blank">Découvrez pourquoi les lakehouses sont l'architecture de données du futur</a> avec le père du data warehouse, Bill Inmon.</p><h2>Performances réelles au-delà des requêtes volumineuses</h2><p>La version initiale de Databricks SQL a démarré avec des avantages significatifs en termes de performances (un rapport prix/performance jusqu'à 6 fois supérieur) par rapport aux traditionnels data warehouses cloud, selon le benchmark TPC-DS à l'échelle de 30 To ci-dessous. Étant donné que le TPC-DS est un benchmark standard de l'industrie défini par les fournisseurs d'entreposage des données, nous sommes très fiers de ces résultats.</p><figure><a href="https://www.databricks.com/wp-content/uploads/2021/08/sql-perf-blog-img-1.png" data-lightbox><img class="size-full wp-image-164737" style="width:512px;" src="https://www.databricks.com/wp-content/uploads/2021/08/sql-perf-blog-img-1.png" alt="La version initiale de Databricks SQL offrait des avantages significatifs en termes de performances (un rapport prix/performances jusqu'à 6 fois supérieur) par rapport aux data warehouses cloud traditionnels, selon le benchmark TPC-DS à l'échelle de 30 To." height="329"></a><p>&nbsp;Prix/performance TPC-DS de 30&nbsp;To (plus c'est bas, mieux c'est)</p></figure><p>Bien que ce benchmark simule bien les requêtes volumineuses telles que les charges de travail ETL ou les charges de travail analytiques approfondies, il ne couvre pas tout ce que nos clients exécutent. C'est pourquoi nous avons travaillé en étroite collaboration avec des centaines de clients au cours des derniers mois pour fournir des performances rapides et prévisibles pour les charges de travail d'analyse de données réelles et les queries de données SQL.</p><p>Alors que nous lançons officiellement la preview aujourd'hui, nous sommes très heureux de partager certains des résultats et des gains de performance que nous avons obtenus à ce jour.</p><h2>Scénario&nbsp;1&nbsp;: charges de travail analytiques hautement simultanées</h2><p>En travaillant avec nos clients, nous avons remarqué qu'il est courant que des charges de travail analytiques hautement concurrentes s'exécutent sur de petits datasets. Intuitivement, c'est logique&nbsp;: les analystes appliquent généralement des filtres et ont tendance à travailler avec des données récentes plutôt qu'avec des données historiques. Nous avons décidé de rendre ce cas d'utilisation courant plus rapide. Pour optimiser la simultanéité, nous avons utilisé le même benchmark TPC-DS avec un facteur d'échelle beaucoup plus petit (10&nbsp;Go) et 32&nbsp;Streams simultanés. Nous avons donc 32 bots qui soumettent des requêtes en continu au système, ce qui simule en réalité un nombre beaucoup plus important d'utilisateurs réels, car les bots ne se reposent pas entre l'exécution des requêtes.</p><p>Nous avons analysé les résultats pour identifier et supprimer les goulots d'étranglement, et nous avons répété ce processus plusieurs fois. Après des centaines d'optimisations, nous avons multiplié la simultanéité par 3 ! Databricks SQL surpasse désormais certains des meilleurs data warehouses cloud, tant pour les grandes queries que pour les petites queries avec de nombreux utilisateurs.</p><figure><a href="https://www.databricks.com/wp-content/uploads/2021/08/Databricks-SQL-Perf-Gain-Blog-img-2.png" data-lightbox><img class="size-large wp-image-163664" style="width:1024px;" src="https://www.databricks.com/wp-content/uploads/2021/08/Databricks-SQL-Perf-Gain-Blog-img-2-1024x588.png" alt="Databricks SQL surpasse certains des meilleurs data warehouses cloud, non seulement pour les requêtes volumineuses, mais aussi pour les petites requêtes avec de nombreux utilisateurs. " height="588"></a><figcaption>Requêtes TPC-DS de 10 Go/h avec 32 flux simultanés (plus le chiffre est élevé, mieux c'est)</figcaption></figure><h2>Scénario 2 : Gestion intelligente de la charge de travail</h2><p>Cependant, les charges de travail réelles ne se limitent pas aux requêtes volumineuses ou aux petites requêtes. Elles comprennent généralement un mélange de petites et de grandes requêtes. Par conséquent, les capacités de mise en file d'attente et d'équilibrage de charge de Databricks SQL doivent également en tenir compte. C'est pourquoi Databricks SQL utilise un double système de mise en file d'attente qui donne la priorité aux petites queries sur les plus volumineuses, car les analystes se soucient généralement davantage de la latence des queries courtes que de celle des queries volumineuses.</p><figure><a href="https://www.databricks.com/wp-content/uploads/2021/08/Databricks-SQL-Perf-Gain-Blog-img-3.png" data-lightbox><img class="size-full wp-image-163665" style="width:861px;" src="https://www.databricks.com/wp-content/uploads/2021/08/Databricks-SQL-Perf-Gain-Blog-img-3.png" alt="Databricks SQL utilise un double système de file d'attente qui donne la priorité aux petites requêtes par rapport aux requêtes volumineuses, car les analystes se soucient généralement plus de la latence des requêtes courtes que de celle des requêtes volumineuses. " height="387"></a><p>&nbsp;Mise en file d'attente et équilibrage de charge de requêtes mixtes avec des files d'attente doubles</p></figure>

Scénario 3 : Lectures hautement parallèles

Il est courant que certaines tables d'un lakehouse soient composées de nombreux fichiers, par exemple dans des scénarios de streaming tels que l'ingestion IoT lorsque les données arrivent en continu. Dans les systèmes hérités, le moteur d'exécution peut passer beaucoup plus de temps à lister ces fichiers qu'à exécuter réellement la query ! Nos clients nous ont également dit qu'ils ne voulaient pas sacrifier les performances au profit de la fraîcheur des données.

Nous sommes fiers d'annoncer l'inclusion d'E/S asynchrones et hautement parallèles dans Databricks SQL. Lorsque vous exécutez une query, Databricks lit automatiquement les blocs de données suivants à partir du stockage cloud pendant que le bloc actuel est en cours de traitement. Cela augmente considérablement les performances globales des query sur les petits fichiers (multipliées par 12 pour les fichiers de 1 Mo) et également pour les cas d'utilisation de données "froides" (données qui ne sont pas mises en cache).

Databricks a conçu une nouvelle technique de scan qui peut lire automatiquement les blocs de données suivants pendant que le bloc actuel est en cours de traitement, augmentant considérablement les performances globales des requêtes sur les petits fichiers.

Benchmark du scénario de lectures hautement parallèles sur de petits fichiers (nombre de lignes analysées/s) (plus le chiffre est élevé, mieux c'est)

Scénario 4 : Amélioration de la récupération des résultats BI avec Cloud Fetch

Une fois les résultats de la query calculés, la dernière étape consiste à accélérer la manière dont le système livre les résultats au client, généralement un outil de BI comme PowerBI ou Tableau. Les data warehouse cloud traditionnels collectent souvent les résultats sur un nœud leader (ou driver) et les streament au client. Cela ralentit considérablement l'expérience dans votre outil de BI si vous récupérez plus de quelques mégaoctets de résultats.

C'est pourquoi nous avons réinventé cette approche avec une nouvelle architecture appelée Cloud Fetch. Pour les résultats volumineux, Databricks SQL écrit les résultats en parallèle sur tous les nœuds de calcul vers le stockage cloud, puis renvoie la liste des fichiers au client à l'aide d'URL pré-signées. Le client peut alors télécharger en parallèle toutes les données depuis le stockage cloud. Nous sommes ravis d'annoncer une amélioration des performances jusqu'à 10 fois supérieure dans des scénarios clients réels ! Nous collaborons avec les outils de BI les plus populaires pour activer cette fonctionnalité automatiquement.

Pour les résultats volumineux, le cluster sous-jacent écrit désormais en parallèle sur tous les nœuds de calcul dans le stockage cloud, puis renvoie la liste des fichiers au client à l'aide d'URL pré-signées.
« Cloud Fetch permet une connectivité plus rapide et à plus large bande passante

Décryptage de Databricks SQL

Ce ne sont là que quelques exemples des optimisations de performance et des innovations apportées à Databricks SQL pour vous offrir les meilleures performances SQL de leur catégorie sur votre data lake, tout en conservant les avantages d'une approche ouverte. Alors, comment cela fonctionne-t-il ?

Databricks SQL : sous le capot (marchitecture)
Databricks SQL sous le capot

Delta Lake open source est la base de Databricks SQL. Il s'agit du format de stockage de données ouvert qui apporte le meilleur des systèmes de data warehouse aux data lakes, avec des Transactions ACID, la data lineage, le versionnage, le Data Sharing, etc., pour les données structurées, non structurées et semi-structurées.

Au cœur de Databricks SQL se trouve Photon, un nouveau moteur vectoriel natif sur Databricks conçu pour exécuter plus rapidement les charges de travail SQL. Lisez notre blog et regardez la vidéo Radical Speed for SQL Queries on Databricks: Photon Under the Hood pour en savoir plus.

Enfin et surtout, nous avons travaillé en étroite collaboration avec un grand nombre de fournisseurs de logiciels pour nous assurer que les équipes de données (analystes, data scientists et développeurs SQL) peuvent facilement utiliser leurs outils de prédilection sur Databricks SQL. Nous avons facilité la connexion, l'importation de données et l'authentification via Single Sign On, tout en augmentant la vitesse grâce aux améliorations des performances en matière de simultanéité et de queries courtes que nous avons abordées précédemment.

Étapes suivantes

Ce n'est qu'un start, car nous prévoyons d'être continuellement à votre écoute et d'ajouter d'autres innovations au service. Databricks SQL apporte déjà une valeur considérable à de nombreuses organisations comme Atlassian ou Comcast, et nous sommes impatients de recevoir également vos commentaires !

Si vous êtes déjà un utilisateur de Databricks, vous pouvez commencer à utiliser Databricks SQL dès aujourd'hui en consultant notre guide de démarrage pour Azure Databricks ou AWS. Si vous n'utilisez pas encore Databricks, rendez-vous sur databricks.com/try-databricks pour démarrer un Essai gratuit.

Enfin, si vous souhaitez en savoir plus sur la plateforme Databricks Lakehouse, regardez notre webinar – gestion de données : le bon, la brute et le truand. De plus, nous proposons une formation en ligne sur Databricks SQL pour une expérience pratique et des ateliers personnalisés. Contactez votre représentant commercial pour en savoir plus. Nous serions ravis de savoir comment vous utilisez Databricks SQL et comment nous pouvons rendre la BI et l'analytique des données sur votre data lake encore plus simples.

Regardez le keynote et la démo de DAIS ci-dessous

Ne manquez jamais un article Databricks

Abonnez-vous à notre blog et recevez les derniers articles dans votre boîte mail.

Et ensuite ?

Introducing AI/BI: Intelligent Analytics for Real-World Data

Produto

June 12, 2024/11 min de leitura

Apresentando o AI/BI: analítica inteligente para dados do mundo real

Five Simple Steps for Implementing a Star Schema in Databricks With Delta Lake

Produto

September 12, 2024/8 min de leitura

Cinco etapas simples para implementar um esquema de estrela na Databricks com Delta Lake