Che cos'è Photon?
Questo articolo illustra i vantaggi dell'esecuzione dei carichi di lavoro nel motore di query Photon.
Photon è un motore di query vettoriale nativo di Azure Databricks ad alte prestazioni che esegue i carichi di lavoro SQL e le chiamate API DataFrame più velocemente per ridurre il costo totale per carico di lavoro. Photon è compatibile con le API Apache Spark, dunque funziona con il codice esistente.
Funzionalità Photon
Di seguito sono riportate le caratteristiche chiave e i vantaggi dell'uso di Photon.
- Supporto per operazioni SQL e dataframe equivalenti con tabelle Delta e Parquet.
- Query accelerate che elaborano i dati più velocemente e includono aggregazioni e join.
- Prestazioni più veloci quando si accede ripetutamente ai dati dalla cache del disco.
- Prestazioni di analisi affidabili nelle tabelle con molte colonne e molti file di piccole dimensioni.
- Scrittura Delta e Parquet più veloce usando
UPDATE
,DELETE
,MERGE INTO
,INSERT
eCREATE TABLE AS SELECT
, incluse tabelle wide che contengono migliaia di colonne. - Sostituisce i join di tipo sort-merge con hash-join.
- Per quanto riguarda i carichi di lavoro di IA e ML, Photon migliora le prestazioni per le applicazioni che usano Spark SQL, DataFrame Spark, progettazione di funzionalità, GraphFrame e xgboost4j.
Abilitazione di Photon
L'abilitazione di Photon varia in base al tipo di calcolo:
Photon viene eseguito per impostazione predefinita nei warehouse SQL e nelle risorse di calcolo serverless per notebook e flussi di lavoro.
Photon è abilitato per impostazione predefinita nel calcolo che esegue Databricks Runtime 9.1 LTS e versioni successive.
Photon può essere abilitato manualmente nella risorsa di calcolo che esegue Databricks Runtime 15.2 per Machine Learning o versione successiva.
Configurare l'abilitazione Photon
Per abilitare o disabilitare Photon nel calcolo universale e dei processi, selezionare la casella di controllo Usa accelerazione Photon nell’interfaccia utente dell’ambiente di calcolo.
Photon non è abilitato per impostazione predefinita in alcun calcolo creato con l'API Clusters o l'API Processi. Per abilitare Photon, è necessario impostare l'attributo runtime_engine
su PHOTON
.
Tipi di istanza supportati
Photon supporta diversi tipi di istanza nei nodi driver e di lavoro. I tipi di istanza di Photon utilizzano unità DI database a una frequenza diversa rispetto allo stesso tipo di istanza che esegue il runtime non Photon. Per altre informazioni sulle istanze di Photon e sul consumo di DBU, si veda la pagina dei prezzi di Azure Databricks.
Operatori, espressioni e tipi di dati supportati
Di seguito sono riportati gli operatori, le espressioni e i tipi di dati coperti da Photon.
Operatori
- Scansione, Filtro, Progetto
- Aggregazione hash/join/shuffle
- Join a cicli annidati
- Anti join compatibile con Null
- Unione, Espansione, ScalarSubquery
- Sink di scrittura Delta/Parquet
- Ordinamento
- Funzione window
Espressioni
- Confronto / Logica
- Aritmetica / Matematica (la maggior parte)
- Condizionale (IF, CASE e così via)
- Stringa (quelle comuni)
- Cast
- Aggregazioni (le più comuni)
- Date/Timestamp
Tipo di dati
- Byte/Short/Int/Long
- Booleano
- String / Binary
- Decimale
- Float / Double
- Date/Timestamp
- Struct
- Array
- Mappa
Funzionalità che richiedono Photon
Di seguito sono riportate le funzionalità che richiedono Photon.
- I/O predittivo per la lettura e la scrittura. Si veda Che cos'è l'I/O predittivo?.
- Espressioni geospaziali H3. Si veda Funzioni geospaziali H3.
- Eliminazione dinamica di file. Si veda Eliminazione dinamica di file.
Limiti
- Flusso strutturato: Photon supporta attualmente lo streaming senza stato con Delta, Parquet, CSV e JSON. Lo streaming stateless di Kafka e Kinesis è supportato quando si scrive su un sink Delta o Parquet.
- Photon non supporta funzioni definite dall'utente o API RDD.
- Photon non influisce sulle query che normalmente vengono eseguite in meno di due secondi.
Se il carico di lavoro raggiunge un'operazione non supportata, la risorsa di calcolo passa al motore di runtime standard per il resto del carico di lavoro.