Runtime de Photon

Photon es el motor nativo vectorizado de consultas en Azure Databricks, escrito para ser directamente compatible con las API de Apache Spark, por lo que funciona con el código existente. Se ha desarrollado en C++ para aprovechar el hardware moderno y usa las técnicas más recientes en el procesamiento vectorizado de consultas para aprovechar el paralelismo de nivel de datos e instrucciones en las CPU, lo que mejora el rendimiento de los datos y las aplicaciones reales, todo ello de forma nativa en el lago de datos. Photon forma parte de un entorno de ejecución de alto rendimiento que ejecuta las llamadas API SQL y DataFrame existentes más rápidamente y reduce el coste total por carga de trabajo. Photon se usa de forma predeterminada en los almacenes de Databricks SQL.

Clústeres de Azure Databricks

Photon está disponible para clústeres que ejecutan Databricks Runtime 9.1 LTS y versiones posteriores.

Para habilitar la aceleración de Photon, active la casilla Usar aceleración de Photon al crear el clúster. Si crea el clúster mediante la API de clústeres, establezca runtime_engine en PHOTON.

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.

Cobertura de Photon

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
  • Asignación

Ventajas de Photon

  • Admite SQL y operaciones DataFrame equivalentes en tablas Delta y Parquet.
  • Se espera que acelere las consultas que procesan una cantidad significativa de datos (más de 100 GB) 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 más 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, especialmente para tablas anchas (de cientos a miles de columnas).
  • Reemplaza las combinaciones de ordenar y fusionar por combinaciones hash.

Limitaciones

  • Structured Streaming: Photon admite actualmente streaming sin estado con Delta, Parquet y CSV. La compatibilidad con Kafka y Kinesis está en versión preliminar pública.
  • No admite UDF.
  • No admite las API de RDD.
  • No se espera que mejore las consultas de ejecución corta (<2 segundos), por ejemplo, las consultas en pequeñas cantidades de datos.

Las características no admitidas por Photon se ejecutan de la misma manera que lo harían con Databricks Runtime; no hay ninguna ventaja de rendimiento para esas características.