Qu'est-ce qu'Apache Spark ?

Apache Spark est un moteur d'analyse unifié conçu pour le traitement des données à grande échelle avec des modules intégrés pour SQL, le traitement en flux continu, le machine learning et le traitement graphique. Spark peut être exécuté sur Kubernetes, des clusters autonomes ou de façon native dans le cloud. Par ailleurs, il peut s'appliquer à des sources de données diverses. Il fournit des API riches en Java, Scala, Python (PySpark) et R, ce qui le rend accessible à un large éventail de développeurs et de data scientists.

Sur Google Cloud, Apache Spark devient une plate-forme facilitant la transition des données vers l'IA avec Managed Service pour Apache Spark. En exploitant les clusters gérés ou les options Spark sans serveur, ainsi que les améliorations révolutionnaires des performances comme Lightning Engine, Google Cloud élimine les coûts d'optimisation associés aux déploiements Spark traditionnels. Les intégrations étroites à une plate-forme unifiée de données et d'IA permettent aux utilisateurs de passer de données brutes à des actions optimisées par l'IA plus rapidement que jamais.

Présentation d'Apache Spark

L'écosystème Spark inclut cinq composants clés :

  • Spark Core est un moteur de traitement de données distribué à usage général. Il s'agit du moteur d'exécution de base, qui gère la planification, la distribution des tâches et les E/S de base. Spark Core a introduit le concept d'ensembles de données distribués résilients (RDD), des collections d'objets distribués immuables qui peuvent être traitées en parallèle avec tolérance aux pannes, sur lequel sont installées des bibliothèques pour SQL, le traitement par flux, le machine learning et le calcul graphique, qui peuvent toutes être utilisées ensemble dans une application.
  • Spark SQL est le module Spark conçu pour les données structurées. Il a introduit les DataFrames, qui fournissent une API plus optimisée et plus conviviale que les RDD pour la manipulation de données structurées. Il vous permet d'interroger des données structurées dans des programmes Spark à l'aide de SQL ou d'une API DataFrame familière. Spark SQL est compatible avec la syntaxe HiveQL et permet d'accéder à des entrepôts Apache Hive existants. Google Cloud améliore encore les performances des jobs Spark, en particulier pour les opérations SQL et DataFrame, grâce à des innovations telles que Lightning Engine. Vous bénéficiez ainsi d'une accélération significative de vos requêtes et de vos tâches de traitement des données lorsque vous exécutez Spark sur Google Cloud.
  • Spark Streaming permet de créer facilement des solutions de traitement par flux tolérantes aux pannes et évolutives. Il intègre l'API avec langage intégré Spark au traitement par flux, ce qui vous permet d'écrire des jobs de traitement par flux de la même façon que des jobs par lot, en utilisant des flux de données ou la nouvelle API Structured Streaming basée sur des cadres de données. Spark Streaming est compatible avec Java, Scala et Python, et inclut une sémantique prête à l'emploi de type "exactement une fois" et avec état.
  • MLlib est la bibliothèque de machine learning (ML) évolutive de Spark, avec des outils qui facilitent le ML et permettent de l'adapter. MLlib contient de nombreux algorithmes de machine learning courants, par exemple de classification, de régression, de recommandation et de clustering. Elle contient également un workflow et des utilitaires de transformation de caractéristiques, de création de pipelines de ML, d'évaluation de modèles, d'algèbre linéaire distribué et de statistiques, entre autres. En combinant Gemini Enterprise Agent Platform aux workflows Spark MLlib, vous pouvez intégrer facilement ces workflows aux pipelines MLOps. Vous pouvez également améliorer le développement en utilisant Gemini pour le codage et le dépannage.
  • GraphX est l'API Spark pour les graphes et le calcul parallèle de graphes. Flexible et compatible aussi bien avec les graphes que les collections, elle unifie l'ETL (extraction, transformation et chargement), l'analyse exploratoire et le calcul graphique itératif dans un même système.

Écosystème et composants Apache Spark

L'écosystème Spark inclut cinq composants clés, chacun étant amélioré par l'infrastructure de Google Cloud :

  • Spark Core : moteur d'exécution de base qui gère la distribution des tâches et les E/S. Il a introduit les ensembles de données distribués résilients (RDD), des collections d'objets distribuées et immuables pouvant être traitées en parallèle, tout en étant tolérantes aux pannes.
  • Spark SQL : module permettant de travailler avec des données structurées à l'aide de DataFrames. Google Cloud accélère encore ces opérations avec Lightning Engine, ce qui permet d'améliorer considérablement les performances sans nécessiter de réglage manuel.
  • Spark Streaming : permet de créer des solutions de traitement par flux tolérantes aux pannes et évolutives pour les jobs par lots et en temps réel.
  • MLlib : bibliothèque de machine learning évolutive. En combinant la plate-forme d'agents Gemini Enterprise aux workflows MLlib, vous pouvez intégrer facilement ces workflows aux pipelines MLOps. Vous pouvez également améliorer le développement en utilisant Gemini pour le codage et le dépannage.
  • GraphX : l'API pour les graphes et le calcul parallèle de graphes.

Quels sont les avantages d'Apache Spark ?

Vitesse

Le traitement en mémoire et le planificateur DAG de Spark permettent d'exécuter des charges de travail plus rapidement que les moteurs de traitement sur disque, en particulier pour les tâches itératives. Google Cloud accélère encore le processus grâce à une infrastructure optimisée et à Lightning Engine.

Simplicité d'utilisation

Les opérateurs de haut niveau de Spark simplifient la création d'applications parallèles. L'utilisation interactive de Scala, Python, R et SQL permet un développement rapide. Google Cloud offre des options sans serveur et des notebooks intégrés avec Gemini.

Évolutivité

Spark offre une évolutivité horizontale, en traitant de grandes quantités de données en distribuant le travail sur les nœuds du cluster. Google Cloud simplifie l'évolutivité grâce à l'autoscaling sans serveur et aux clusters gérés.

Portée générale

Spark fournit une pile de bibliothèques, telles que SQL et DataFrames, MLlib pour le machine learning, GraphX et Spark Streaming. Vous pouvez facilement les combiner dans une même application.

Innovation du framework Open Source

Spark exploite le pouvoir des communautés Open Source pour innover et résoudre les problèmes rapidement. Google Cloud adopte cet esprit d'ouverture en proposant Apache Spark standard tout en améliorant ses fonctionnalités.

Pourquoi préférer Spark à un moteur uniquement SQL ?

Apache Spark est un moteur de calcul en clusters ou sans serveur rapide et à usage général. Spark permet aux programmeurs d'écrire rapidement des applications dans Java, Scala, Python, R et SQL, ce qui en fait une solution accessible aux développeurs, aux data scientists et aux experts commerciaux avec des connaissances en statistiques. Spark SQL permet aux utilisateurs de se connecter à une source de données quelconque et de la présenter sous forme de tables destinées aux clients SQL. Les algorithmes de machine learning interactif peuvent en outre être facilement mis en œuvre dans Spark.

Avec un moteur uniquement SQL tel que Apache Impala, Apache Hive ou Apache Drill, les utilisateurs ne peuvent utiliser que le langage SQL ou des langages de type SQL pour interroger des données stockées dans plusieurs bases de données. Cela signifie que les frameworks sont plus petits qu'avec Spark. Cependant, sur Google Cloud, vous n'avez pas à faire de choix strict. BigQuery fournit de puissantes fonctionnalités SQL, et Managed Service pour Apache Spark vous permet d'utiliser la polyvalence de Spark sur les mêmes données via Lakehouse avec des formats ouverts tels qu'Apache Iceberg.

Comment les entreprises utilisent-elles Spark ?

De nombreuses entreprises utilisent Spark pour simplifier la tâche complexe (et gourmande en ressources de calcul) de traitement et d'analyse d'importants volumes de données structurées et non structurées, en temps réel ou archivées. Spark permet également aux utilisateurs d'intégrer facilement des fonctionnalités complexes pertinentes, telles que le machine learning ou les algorithmes de graphe. Voici quelques exemples d'applications courantes :

  • ETL/ELT à grande échelle
  • Traitement des données en temps réel
  • Machine learning
  • Exploration interactive des données
  • Analyse de graphes

Ingénieurs de données

Les ingénieurs de données s'appuient sur Spark pour concevoir, créer et gérer des pipelines de traitement de données robustes et des workflows ETL à grande échelle. Sur Google Cloud, les ingénieurs de données peuvent exploiter Managed Service pour Apache Spark afin d'éliminer les tâches répétitives d'infrastructure, en choisissant entre une exécution sans serveur et sans opération ou des clusters entièrement gérés. En intégrant parfaitement BigQuery et Knowledge Catalog, les ingénieurs peuvent créer des architectures de lakehouse ouvertes et gouvernées à l'aide de formats tels qu'Apache Iceberg. De plus, avec l'aide des agents de données et de Gemini, ils peuvent automatiser le data wrangling et accélérer la génération de code PySpark, passant des données brutes à des pipelines prêts pour la production plus rapidement que jamais.

Data scientists

Les data scientists peuvent optimiser leur expérience d'analyse et de ML en utilisant Spark avec des GPU. La capacité à traiter plus rapidement d'importants volumes de données avec un langage familier peut permettre d'accélérer l'innovation. Google Cloud offre une prise en charge robuste des GPU pour Spark et une intégration parfaite avec la plate-forme d'agents Gemini Enterprise, ce qui permet aux data scientists de créer et de déployer des modèles plus rapidement. Ils peuvent connecter leurs IDE préférés, tels que Jupyter ou VS Code, pour une expérience de développement flexible. Combinée à Gemini, cette expérience de développement flexible permet d'accélérer le workflow, de l'exploration initiale au déploiement en production.

Il existe une meilleure façon d'utiliser Spark sur Google Cloud

La nouvelle façon d'utiliser Spark plus facilement, plus intelligemment et plus rapidement

Google Cloud résout les problèmes courants liés à l'exécution de Spark à grande échelle, ce qui vous permet de vous concentrer sur les insights, et non sur l'infrastructure. Optimisez votre expérience avec Managed Service pour Apache Spark. Managed Service pour Apache Spark :

  • Options de déploiement flexibles : choisissez l'environnement adapté à votre charge de travail. Éliminez les frais généraux opérationnels avec Spark sans serveur et sans opération, ou gardez un contrôle précis avec des clusters entièrement gérés.
  • Des performances de pointe : accélérez vos charges de travail ETL et de data science les plus exigeantes jusqu'à 4,9 fois avec Lightning Engine. Disponible pour les clusters sans serveur et gérés, il réduit les coûts de calcul et élimine la nécessité d'effectuer des réglages manuels sans aucune modification du code.
  • Développement unifié dans l'IDE de votre choix : écrivez et exécutez du code Spark directement dans votre environnement préféré, qu'il s'agisse de VS Code, Jupyter ou d'autres. Profitez d'une expérience fluide entre SQL et Spark sur les mêmes données régies, sans changer de contexte.
  • Développement de l'IA agentique : accélérez votre workflow avec des agents de données qui automatisent le codage PySpark et le data wrangling (formatage des données). Utilisez Gemini Cloud Assist pour l'analyse automatisée des causes fondamentales et le dépannage des jobs complexes.
  • Gouvernance unifiée : utilisez Knowledge Catalog pour gérer la gouvernance des données et de l'IA, fournir des sémantiques pour les agents et assurer un cycle de vie des données cohérent, de l'ingestion aux insights basés sur l'IA.

Autres ressources

Passez à l'étape suivante

Commencez à créer sur Google Cloud avec 300 $ de crédits inclus et plus de 20 produits toujours sans frais.

Google Cloud