Partager via


Qu’est-ce que Photon ?

Cet article explique les avantages de l’exécution de vos charges de travail sur le moteur de requête Photon.

Photon est un moteur de requête vectorisé natif d’Azure Databricks. Très performant, il exécute vos charges de travail SQL et appels d’API DataFrame plus rapidement pour réduire votre coût total par charge de travail. Photon est compatible avec les API Apache Spark. Il fonctionne donc avec votre code existant.

Fonctionnalités de Photon

Voici les principales fonctionnalités de Photon et les avantages qui découlent de son utilisation.

  • Prise en charge des opérations SQL et DataFrame équivalentes avec des tables Delta et Parquet.
  • Requêtes accélérées qui traitent les données plus rapidement et incluent des agrégations et des jointures.
  • Performances plus rapides lorsque l’accès aux données s’effectue à plusieurs reprises à partir du cache de disque.
  • Analyses plus performantes sur les tables comportant de nombreuses colonnes et de nombreux petits fichiers.
  • Écriture Delta et Parquet plus rapide avec UPDATE, DELETE, MERGE INTO, INSERT et CREATE TABLE AS SELECT, notamment dans des tables larges contenant des milliers de colonnes.
  • Remplace les jointures de fusion de tri par des jointures de hachage.
  • Pour les charges de travail liées à l’IA et au ML, Photon utilise Spark SQL, Spark DataFrames, l’ingénierie de caractéristiques, GraphFrames et xgboost4j pour améliorer les performances des applications.

Activation de Photon

L’activation de Photon varie selon le type de calcul :

Configurer l’activation de Photon

Pour activer ou désactiver Photon sur tous les calculs à usage général et de travaux, cochez la case Utiliser l’accélération Photon dans l’interface utilisateur de calcul.

Photon n’est pas activé par défaut sur tous les calculs créés avec l’API Clusters ou l’API Travaux. Pour activer Photon, vous devez définir l’attribut runtime_engine sur PHOTON.

Types d’instances pris en charge

Photon prend en charge un certain nombre de types d’instances sur les nœuds Worker et de pilote. Les types d’instance de photons consomment DBUs à un taux différent du même type d’instance exécutant le runtime non-photon. Pour plus d’informations sur les instances de photons et la consommation de DBU, consultez la page de tarification Azure Databricks.

Opérateurs, expressions et types de données pris en charge

Voici les opérateurs, expressions et types de données couverts par Photon.

Opérateurs

  • Analyse, Filtre, Projet
  • Agrégat de hachage/Jointure/Shuffle
  • Jointure de boucle imbriquée
  • Anti-jointure compatible avec Null
  • Union, Extension, ScalarSubquery
  • Récepteur d’écriture Delta/Parquet
  • Trier
  • Fonction de fenêtre

Expressions

  • Comparaison / Logique
  • Arithmétique / Mathématique (la plupart)
  • Conditionnel (IF, CASE, etc.)
  • Chaîne (les plus courantes)
  • Casts
  • Agrégats (les plus courants)
  • Date/Horodatage

Types de données

  • Octet/Short/Int/Long
  • Boolean
  • String/binaire
  • Decimal
  • Float/Double
  • Date/Horodatage
  • Struct
  • Array
  • Mappage

Fonctionnalités qui nécessitent Photon

Voici les fonctionnalités qui nécessitent Photon.

Limites

  • Flux structuré : Photon prend actuellement en charge la diffusion sans état avec Delta, Parquet, CSV et JSON. Le streaming Kafka et Kinesis sans état est pris en charge lors de l’écriture dans un récepteur Delta ou Parquet.
  • Photon ne prend pas en charge les UDF ou les API RDD.
  • Photon n’affecte pas les requêtes qui s’exécutent normalement en moins de deux secondes.

Si votre charge de travail atteint une opération non prise en charge, la ressource de calcul bascule vers le moteur d’exécution standard pour le reste de la charge de travail.