Vad är Photon?
Den här artikeln beskriver fördelarna med att köra dina arbetsbelastningar på Photon-frågemotorn.
Photon är en högpresterande Azure Databricks-inbyggd vektoriserad frågemotor som kör dina SQL-arbetsbelastningar och DataFrame API-anrop snabbare för att minska din totala kostnad per arbetsbelastning. Photon är kompatibelt med Apache Spark-API:er, så det fungerar med din befintliga kod.
Fotonfunktioner
Följande är viktiga funktioner och fördelar med att använda Photon.
- Stöd för SQL och motsvarande DataFrame-åtgärder med Delta- och Parquet-tabeller.
- Accelererade frågor som bearbetar data snabbare och inkluderar aggregeringar och kopplingar.
- Snabbare prestanda när data används upprepade gånger från diskcachen.
- Robust genomsökningsprestanda på tabeller med många kolumner och många små filer.
- Snabbare Delta- och Parquet-skrivning med hjälp av
UPDATE
,DELETE
,MERGE INTO
,INSERT
ochCREATE TABLE AS SELECT
, inklusive breda tabeller som innehåller tusentals kolumner. - Ersätter sorteringskopplingar med hash-kopplingar.
- För AI- och ML-arbetsbelastningar förbättrar Photon prestanda för program med hjälp av Spark SQL, Spark DataFrames, funktionsteknik, GraphFrames och xgboost4j.
Aktivering av foton
Aktivering av foton varierar beroende på beräkningstyp:
Foton körs som standard på SQL-lager och serverlös beräkning för notebook-filer och arbetsflöden.
Photon är aktiverat som standard vid beräkning som kör Databricks Runtime 9.1 LTS och senare.
Foton kan aktiveras manuellt vid beräkning som kör Databricks Runtime 15.2 för Machine Learning eller senare.
Konfigurera photon-aktivering
Om du vill aktivera eller inaktivera Foton för all-purpose och jobbberäkning markerar du kryssrutan Använd fotonacceleration i beräkningsgränssnittet.
Photon är inte aktiverat som standard på någon beräkning som skapats med kluster-API:et eller jobb-API:et. Om du vill aktivera Photon måste du ange runtime_engine
attributet till PHOTON
.
Instanstyper som stöds
Photon stöder ett antal instanstyper på drivrutins- och arbetsnoderna. Photon-instanstyper använder DBU:er med en annan hastighet än samma instanstyp som kör körningen som inte är photon. Mer information om Photon-instanser och DBU-förbrukning finns på prissättningssidan för Azure Databricks.
Operatorer, uttryck och datatyper som stöds
Följande är operatorer, uttryck och datatyper som Photon omfattar.
Operatorer
- Genomsökning, filter, projekt
- Hash-aggregering/koppling/blandning
- Kapslad loopkoppling
- Null-medveten antikoppling
- Union, Expand, ScalarSubquery
- Delta/Parquet skrivmottagare
- Sortera
- Fönsterfunktion
Uttryck
- Jämförelse/logik
- Aritmetik/matematik (mest)
- Villkorsstyrd (IF, CASE osv.)
- Sträng (vanliga)
- Kastar
- Aggregeringar (de vanligaste)
- Datum/tidsstämpel
Datatyper
- Byte/Short/Int/Long
- Booleskt
- Sträng/binär
- Decimal
- Flyttal/dubbel
- Datum/tidsstämpel
- Struct-datatyp
- Matris
- Mappning
Funktioner som kräver foton
Följande är funktioner som kräver Foton.
- Förutsägande I/O för läsning och skrivning. Se Vad är förutsägande I/O?.
- H3 geospatiala uttryck. Se geospatiala H3-funktioner.
- Dynamisk filrensning. Se Dynamisk filrensning.
Begränsningar
- Strukturerad direktuppspelning: Photon stöder för närvarande tillståndslös strömning med Delta, Parquet, CSV och JSON. Tillståndslös Kafka- och Kinesis-strömning stöds när du skriver till en Delta- eller Parquet-mottagare.
- Photon stöder inte UDF:er eller RDD-API:er.
- Foton påverkar inte frågor som normalt körs på under två sekunder.
Om din arbetsbelastning drabbar en åtgärd som inte stöds växlar beräkningsresursen till standardkörningsmotorn för resten av arbetsbelastningen.