¿Qué es Photon?

En este artículo se explican las ventajas de ejecutar las cargas de trabajo en el motor de consultas Photon.

Photon es el motor nativo de consultas vectorizadas de Azure Databricks de alto rendimiento que ejecuta sus cargas de trabajo SQL y llamadas a las API DataFrame de forma más rápida para reducir el costo total por carga de trabajo. Photon es compatible con las API de Apache Spark, por lo que funciona con el código existente.

Características de Photon

A continuación se muestran las características y ventajas clave del uso de Photon.

  • Compatible con SQL y operaciones DataFrame equivalentes en tablas Delta y Parquet.
  • Consultas aceleradas que procesan los datos más rápido e incluyen agregaciones y combinaciones.
  • Rendimiento más rápido cuando se accede a los datos repetidamente desde la caché de disco.
  • Rendimiento de examen sólido en tablas con muchas columnas y muchos archivos pequeños.
  • Escritura más rápida de Delta y Parquet con UPDATE, DELETE, MERGE INTO, INSERT y CREATE TABLE AS SELECT, incluyendo tablas anchas que contienen miles de columnas.
  • Reemplaza las combinaciones de ordenar y fusionar por combinaciones hash.
  • Para las cargas de trabajo de IA y ML, Photon mejora el rendimiento de las aplicaciones que usan Spark SQL, Spark DataFrames, ingeniería de características, GraphFrames y xgboost4j.

Habilitación de Photon

La habilitación de Photon varía según el tipo de proceso:

  • Photon se ejecuta de forma predeterminada en almacenes de SQL y proceso sin servidor para cuadernos y flujos de trabajo.

  • Photon está habilitado de forma predeterminada en procesos que ejecuten Databricks Runtime 9.1 LTS y versiones posteriores.

  • Photon se puede habilitar manualmente en el proceso que ejecuta Databricks Runtime 15.2 para Machine Learning o versiones posteriores.

Configuración de la habilitación de Photon

Para habilitar o deshabilitar Photon en el proceso de uso general y de trabajos, seleccione la casilla Usar aceleración de Photon en la interfaz de usuario de proceso.

Photon no está habilitado de forma predeterminada en ningún proceso creado con la API de clústeres o la API de trabajos. Para habilitar Photon, debe establecer el atributoruntime_engine en PHOTON.

Tipos de instancia admitidos

Photon admite una cantidad de tipos de instancia en los nodos de controlador y de trabajo. Los tipos de instancia de Photon consumen DBU (unidades de Databricks) a una velocidad diferente a la del mismo tipo de instancia que ejecuta el entorno de ejecución que no es Photon. Para más información sobre las instancias de Photon y el consumo de DBU, consulte la página de precios de Azure Databricks.

Operadores, expresiones y tipos de datos compatibles

A continuación se muestran los operadores, expresiones y tipos de datos que Photon cubre.

Operadores

  • Examen, filtro, proyecto
  • Agregar / Combinar / Ordenar de forma aleatoria un hash
  • Unión de bucle anidado
  • Unión anti null-aware
  • Union, Expand, ScalarSubquery
  • Receptor de escritura Delta/Parquet
  • Sort
  • Función de ventana

Expresiones

  • Comparación / Lógica
  • Aritmética / Matemáticas (la mayoría)
  • Condicional (IF, CASE, etc.)
  • Cadena (comunes)
  • Conversiones
  • Agregados (los más comunes)
  • Fecha / Marca de tiempo

Tipos de datos

  • Byte/Short/Int/Long
  • Boolean
  • Cadena/binario
  • Decimal
  • Float / Doble
  • Fecha / Marca de tiempo
  • Estructura
  • Array
  • Map

Características que requieren Photon

A continuación se muestran las características que requieren Photon.

Limitaciones

  • Structured Streaming: Photon admite actualmente streaming sin estado con Delta, Parquet, CSV y JSON. El streaming de Kinesis y Kafka sin estado se admite cuando se escribe en un receptor Delta o Parquet.
  • Photon no admite UDF ni API RDD.
  • Photon no afecta a las consultas que normalmente se ejecutan en menos de dos segundos.

Si la carga de trabajo alcanza una operación no admitida, el recurso de proceso cambia al motor en tiempo de ejecución estándar durante el resto de la carga de trabajo.