Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Photon a Azure Databricks natív vektoros lekérdezési motor, amely felgyorsítja az SQL-számítási feladatokat, a DataFrame API-hívásokat, az ETL-folyamatokat és az állapot nélküli streamelési számítási feladatokat. A Photon oszlopos kötegekben dolgozza fel az adatokat, ami jelentős teljesítménybeli javulást eredményez a hagyományos soralapú végrehajtással szemben. A Photon kompatibilis az Apache Spark API-kkal is, így a meglévő kóddal működik, és nincs szükség módosításokra.
A Photon működése
Támogatott műveletek esetén a Photon lecseréli a JVM-alapú Spark SQL végrehajtási motort egy natív C++ futtatókörnyezetre. Az Apache Spark lekérdezésoptimalizáló (Catalyst) továbbra is tervezi a lekérdezést, de a Photon a végrehajtási rétegben veszi át a feladatát, és sorok helyett oszlopos kötegekben dolgozza fel az adatokat. Amikor a Photon nem támogatott műveletet tapasztal a lekérdezés végrehajtása során, az transzparens módon visszaesik a Spark-futtatókörnyezetbe a művelet hátralévő részében.
A Photon egyszerre több ezer sorból álló kötegekben dolgozza fel az adatokat, így a modern processzorok SIMD-utasításokat használhatnak, amelyek processzorciklusonként több értéket értékelnek ki. A JVM helyett natív C++-ban történő végrehajtással a Photon megszünteti a szemétgyűjtés szüneteltetését, a JIT bemelegítési késleltetését és a memóriaterhelést. Az oszlopos kötegfeldolgozás gyorsítótárbarát szekvenciális olvasást tesz lehetővé, ami maximalizálja a memória sávszélességét és a processzorfolyamat hatékonyságát.
A Photon architektúrája számos módon javítja a teljesítményt:
- Lekérdezésgyorsítás: A Photon akár 5-ször jobb árat/teljesítményt biztosít az adat- és elemzési számítási feladatokhoz más felhőalapú adattárházakhoz képest, az iparági szabványnak megfelelő TPC-DS teljesítménymutatók alapján.
- Optimalizált joinok és keverések: A sort-merge joinokat nagy teljesítményű hash joinokra cseréli, és egy újratervezett, oszlopalapú keverést használ a nagyméretű joinok átviteli sebességének növelésére.
-
Írási teljesítmény: A Photon natív Parquet-írója felgyorsítja a Delta Lake-, Apache Iceberg- és Parquet-írásokat, beleértve a
UPDATE,DELETE,MERGE INTO,INSERTésCREATE TABLE AS SELECTműveleteket. A több ezer oszlopot tartalmazó széles táblák esetében különösen jelentős javulás tapasztalható. - Beolvasási hatékonyság: Szűrőleküldést, szótáralapú szűkítést és sorcsoportok kihagyását alkalmazza a tárolóból beolvasott adatmennyiség csökkentése érdekében, még sok kis fájl kezelése esetén is.
- Lemezgyorsítótár és egyidejűség: Gyorsabb ismétlődő hozzáférést biztosít a lemezgyorsítótáron keresztül, és javítja az egyidejű lekérdezések átviteli sebességét az interaktív BI-számítási feladatokban.
- Integration with SQL and Dataframes API: Támogatja az SQL és DataFrame API-kat Python, R, Scala és Java kódmódosítás nélkül.
A Photon a nagy adathalmazokat feldolgozó, hosszabb ideig futó lekérdezések számára nyújtja a legnagyobb előnyt. A két másodperc alatt általában befejezett lekérdezések nem látnak értelmes javulást, mivel a végrehajtási időt az adatfeldolgozás helyett a tervezés és az ütemezés határozza meg.
Integráció a Azure Databricks platformmal
A Photon felgyorsítja a számítási feladatokat a Azure Databricks platformon. A Photon használatához nem kell módosítania a kódot vagy a lekérdezéseket.
- SQL-elemzés és BI: A Photon az összes SQL-adattárház alapértelmezett lekérdezési motorja; ez működteti az irányítópultokat, az ad hoc lekérdezéseket és az ütemezett jelentéseket.
- ETL és adatmérnökség: Az SQL-lel vagy a DataFrame API-val készített kötegelt feladatok gyorsabb beolvasást, összekapcsolásokat, aggregációkat és írási műveleteket tesznek lehetővé. A beépített Parquet-írómodul különösen hatékony a Delta Lake-, Apache Iceberg- vagy Parquet-táblákba történő betöltéshez.
- Lakeflow-folyamatok: A Photon engedélyezése a folyamatkonfigurációban segít felgyorsítani a Lakeflow-folyamatok végrehajtását.
- Adatfolyam-feldolgozás: A Photon támogatja az állapot nélküli adatfolyam-feldolgozást Delta- vagy Parquet-célba történő írás során. A támogatott források közé tartozik a Delta, a Parquet, a CSV, a JSON, a Kafka és a Kinesis. Az állapotalapú streamelés nem támogatott.
- Mesterséges intelligencia és gépi tanulás: A Photon javítja a Spark SQL, a DataFrames, a jellemzőtervezés és a GraphFrames-műveletek teljesítményét.
Foton engedélyezése
A Photon engedélyezve van kiszolgáló nélküli számítási, SQL-raktárakban és kiszolgáló nélküli Lakeflow-folyamatokban.
A klasszikus teljes célú számítás, a feladatok számítási és a klasszikus Lakeflow-folyamatok esetében a Databricks alapértelmezés szerint engedélyezi a Photon szolgáltatást. A számítás létrehozásakor vagy szerkesztésekor kapcsolja be vagy ki a Foton gyorsítás használata jelölőnégyzetet a Teljesítmény csoportban. Lásd: Foton-gyorsítás használata. Ha ezeket az erőforrásokat a Clusters API vagy a Jobs API használatával hozza létre, explicit módon engedélyeznie kell a Photont a következő beállítással runtime_enginePHOTON: . Ha a Pipelines API-t használja, állítsa a(z) photon értékét true értékre.
A Photon engedélyezését igénylő funkciók
A következő funkciók foton-engedélyezését igénylik:
- Prediktív I/O olvasáshoz és íráshoz. Lásd: Mi az előrejelző I/O?.
- Dinamikus fájlmetszet
MERGE,UPDATEésDELETEutasításokban. Lásd: Dinamikus fájlmetszet.
Támogatott példánytípusok
A Photon számos példánytípust támogat az illesztőprogram és a feldolgozó csomópontokon. A Photon példánytípusok más ütemben, mint ugyanazon példánytípus a nem-Photon futtatás során, használnak DBU-kat. További információ a Photon-példányokról és a DBU-használatról: Azure Databricks díjszabási oldal.
Támogatott operátorok, kifejezések és adattípusok
A Photon az alábbi operátorokat, kifejezéseket és adattípusokat fedi le. Ha egy lekérdezés nem támogatott műveletet használ, a Photon transzparens módon visszaesik a Spark-futtatókörnyezetbe a végrehajtás adott részére.
Operátorok
- Beolvasás (Parquet, Delta, CSV, JSON), Szűrés, Projekció
- Hash összesítés/illesztés/keverés
- Nested-Loop csatlakozás
- Null-Aware illesztésgátló
- Térbeli illesztés (broadcast- és shuffle-változatok, amelyek támogatják a(z)
ST_Intersects,ST_Contains,ST_Covers,ST_Equals,ST_Touches,ST_WithinésST_DWithinelemeket) - Összegzés (Union), Kibővítés (Expand), Skáláris Lekérdezés (ScalarSubquery)
- Delta/Parquet írási nyelő
- Rendezés, TopK, Limit
- Ablakfüggvény
Kifejezések
Ezek a kategóriák reprezentatívak, nem teljesek. Az egyes kategóriák funkcióira korlátozások vonatkozhatnak.
- Összehasonlítás / logika
- Számtani / Matematikai
- Feltételes (HA, ESET stb.)
- String
- Tükrözés
- Összesítések, beleértve a Min/Max/MinBy/MaxBy beágyazott típusok esetén
- Dátum/időbélyeg/Dátumforma
Adattípusok
- Bájt/Rövid/Int/Hosszú
- logikai
- Sztring/bináris
- Decimális
- Lebegőpontos/dupla
- Dátum/időbélyeg
- TimestampNTZ
- Struktúra
- Tömb
- Térkép
- Variant
- Null
- Geometria
- Földrajz
- Rendezett karakterlánc
Photon-használat monitorozása
A következő eszközökkel monitorozhatja, hogy a lekérdezések mekkora része fut a Photonen:
- Spark felület (klasszikus általános célú és feladat-végrehajtási számítás): A Spark felületSQL/DataFrame lapján a Photon-operátorok narancssárga színnel jelennek meg a lekérdezés DAG-vizualizációjában. A standard Spark-operátorok kék színnel jelennek meg. Ez segít azonosítani, hogy a lekérdezés mely részei élvezik a Photon előnyeit, és amelyek visszaállnak a Spark-futtatókörnyezetre.
- Lekérdezésprofil (SQL-raktárak és kiszolgáló nélküli számítás): A Végrehajtás részletei nézet a Photonben töltött tevékenységidő százalékos arányát mutatja. A lekérdezési terv megkülönbözteti a foton operátorokat (lila) a standard operátoroktól (szürke).
Ha azt tapasztalja, hogy egy lekérdezés nem a várt módon használja a Photont, ellenőrizze, hogy a lekérdezés nem támogatott műveleteket, UDF-eket vagy adatformátumokat használ-e, amelyek a Spark-futtatókörnyezetre való visszatérést okozzák.
Korlátozások
- Ha a számítási feladat nem támogatott műveletet ér el, a számítási erőforrás transzparens módon átvált a Spark-futtatókörnyezetre a művelet hátralévő részében. A lekérdezés továbbra is helyes eredményeket eredményez.
- A Photon nem támogatja az UDF-eket (felhasználó által definiált függvényeket), AZ RDD API-kat és az Adatkészlet API-kat.
- Az állapotalapú streamelés nem támogatott. A Photon csak az állapot nélküli streamelést támogatja.
- A Photon nem javítja az általában két másodperc alatt futó lekérdezéseket.