Photon-futtatókörnyezet
A Photon az Azure Databricks natív vektorizált lekérdezési motorja, amely közvetlenül kompatibilis az Apache Spark API-kkal, így működik a meglévő kóddal. A C++ verzióban fejlesztették ki, hogy kihasználja a modern hardver előnyeit, és a vektorizált lekérdezésfeldolgozás legújabb technikáinak használatával kihasználja az adat- és utasításszintű párhuzamosságot a CPU-kban, növelve a valós adatok és alkalmazások teljesítményét – mindezt natív módon a data lake-en. A Photon egy nagy teljesítményű futtatókörnyezet része, amely gyorsabban futtatja a meglévő SQL- és DataFrame API-hívásokat, és csökkenti az egy számítási feladatra eső teljes költségeket. A Photon alapértelmezés szerint a Databricks SQL-adattárakban használatos.
Azure Databricks-fürtök
A Photon a Databricks Runtime 9.1 LTS-t vagy újabb verziót futtató fürtökhöz érhető el.
A Photon-gyorsítás engedélyezéséhez jelölje be a Photon-gyorsítás használata jelölőnégyzetet a fürt létrehozásakor. Ha a fürtöt a clusters API használatával hozza létre, állítsa a következőre runtime_engine
: PHOTON
.
A Photon számos példánytípust támogat az illesztőprogram és a munkavégző csomópontokon. A photon-példánytípusok a nem Photon-futtató példánytípustól eltérő sebességgel használnak adatbázis-adatbázisokat. A Photon-példányokkal és a DBU-használattal kapcsolatos további információkért tekintse meg az Azure Databricks díjszabási oldalát.
Foton előnyei
- Támogatja az SQL- és az azzal egyenértékű DataFrame-műveleteket Delta- és Parquet-táblákon.
- Felgyorsítja azokat a lekérdezéseket, amelyek jelentős mennyiségű adatot dolgoznak fel (100 GB+), és aggregációkat és illesztéseket tartalmaznak.
- Gyorsabb teljesítmény, ha a lemez gyorsítótárából többször is hozzáférnek az adatokhoz.
- Robusztusabb vizsgálati teljesítmény a sok oszlopot és sok kis fájlt tartalmazó táblákon.
- Gyorsabb Delta- és Parquet-írás a ,
DELETE
, ,MERGE INTO
INSERT
ésCREATE TABLE AS SELECT
használatávalUPDATE
, különösen széles táblák (több száz vagy több ezer oszlop) esetén. - A rendezési-egyesítési illesztéseket kivonat-illesztésekre cseréli.
Foton lefedettsége
Operátorok
- Vizsgálat, szűrés, projekt
- Kivonat összesítése/illesztés/shuffle
- csatlakozás Nested-Loop
- Null-Aware Anti Join
- Union, Expand, ScalarSubquery
- Delta/Parquet írási fogadó
- Rendezés
- Window függvény
Kifejezések
- Összehasonlítás / logika
- Számtani / Matematikai (legtöbb)
- Feltételes (HA, CASE stb.)
- Sztring (gyakoriak)
- Vet
- Összesítések (leggyakoribbak)
- Dátum/időbélyeg
Adattípusok
- Bájt/Rövid/Int/Hosszú
- Logikai
- Sztring/bináris
- Tizedesjegy
- Lebegtetés/dupla
- Dátum/időbélyeg
- Struktúra
- Tömb
- Térkép
Az alábbi táblázat a támogatott Azure Databricks-kifejezéseket és az azt támogató minimális Databricks Runtime-verziót sorolja fel.
Name |
---|
Abs |
Acos |
Hozzáadás |
AddMonths |
AesDecrypt |
AesEncrypt |
And |
ArrayContains |
ArrayDistinct |
ArrayExcept |
ArrayExists |
ArrayFilter |
ArrayForAll |
ArrayIntersect |
Tömbcsatlakozás |
Tömbméret |
ArrayTransform |
ArrayUnion |
Atan |
Atan2 |
Átlag |
Base64 |
Doboz |
BitAndAgg |
Bitlength |
BitOrAgg |
Bitenkénti és |
BitwiseNot |
Bitenkéntior |
Bitenkénti átjárás |
BitwiseXor |
BitXorAgg |
BoundaryAsGeojson |
BoundaryAsWkb |
BoundaryAsWkt |
Leadott |
Cbrt |
CeilExpressionBuilder |
CenterAsGeojson |
CenterAsWkb |
CenterAsWkt |
Chr |
Coalesce |
CollectList |
Összefűzés |
Összefűzések |
Konvenció |
Cos |
Darabszám |
CreateArray |
Létrehozási térkép |
CreateNamedStruct |
CreateStruct |
CurrentCatalog |
CurrentDatabase |
CurrentDate |
CurrentTimestamp |
CurrentTimeZone |
CurrentUser |
DateAdd |
DateDiff |
DateFormatClass |
DateFromUnixDate |
DateSub |
HónapNapja |
HétNapja |
DayOfYear |
Megfejt |
DenseRank |
Osztás |
ElementAt |
EqualNullSafe |
EqualTo |
Exp |
Felrobban |
Kinyerés |
Első |
FloorExpressionBuilder |
FromUnixTime |
FromUTCTimestamp* |
Lekérés |
GetJsonObject |
GreaterThan |
GreaterThanOrEqual |
Legnagyobb |
GridDistance |
H3ToString |
Hex |
Óra |
Ha a(z) |
In |
InitCap |
InputFileBlockLength |
InputFileBlockStart |
InputFileName |
Süllyesztés |
IntegralDivide |
IsChildOf |
IsNaN |
IsNotNull |
IsNull |
IsPentagon |
isValid |
JsonToStructs |
Lag |
Utolsó |
LastDay |
Lead (Érdeklődő) |
Legkevésbé |
Hossz |
LengthOfJsonArray |
LessThan |
Levenshtein |
Mint |
Napló |
Log2 |
LongLatAsH3 |
LongLatAsH3String |
Alacsonyabb |
LPadExpressionBuilder |
MakeDate |
MakeTimestamp |
Max |
MaxChild |
Md5 |
MicrosToTimestamp |
MillisToTimestamp |
Min |
MinChild |
Minute |
Monoton módonIncreasingID |
Month (hónap) |
HónapokBetween |
Szorzás |
Murmur3Hash |
NaNvl |
Következő nap |
Not |
Now |
NthValue |
NTile |
NullIf |
Nvl |
Nvl2 |
OktetLength |
ParseToDate |
ParseToTimestamp |
Percentilis |
PercentRank |
Pi |
Pmod |
PosExplode |
Pow |
Quarter (negyedév) |
Rand |
Sorszám |
RegExpExtract |
RegExpExtractAll |
RegExpReplace |
RegrAvgX |
RegrAvgY |
Maradék |
Feloldás |
Reverse |
Reverse |
RLike |
Round |
Sorszám |
RPadExpressionBuilder |
Second |
SecondsToTimestamp |
Sha1 |
Sha2 |
ShiftLeft |
ShiftRight |
ShiftRightUnsigned |
Sin |
Méret |
Szelet |
SoundEx |
SparkVersion |
Sqrt |
StddevPop |
StddevSamp |
StringInstr |
StringLocate |
StringRepeat |
Sztringtér |
StringSplit |
StringToH3 |
StringTranslate |
StringTrim |
StringTrimBoth |
StringTrimLeft |
StringTrimRight |
StructsToJson |
Substring |
Kivonás |
Összeg |
Tan |
ToChildren |
ToParent |
ToRadians |
ToUnixTimestamp |
ToUTCTimestamp |
TruncDate |
TruncTimestamp |
TryElementAt |
TryValidate |
UnaryMinus |
UnBase64 |
Kibontás |
UnixDate |
UnixMicros |
UnixMillis |
UnixSeconds |
UnixTimestamp |
Upper |
Uuid |
Érvényesítés |
VarianceSamp |
Hétköznapi |
WeekOfYear |
XxHash64 |
Year |
*from_utc_timestamp a Photon nem támogatja teljes mértékben. További információ: from_utc_timestamp . |
Korlátozások
- Strukturált streamelés: A Photon jelenleg a Delta, a Parquet és a CSV használatával támogatja az állapot nélküli streamelést. A Kafka és a Kinesis támogatása nyilvános előzetes verzióban érhető el
- Nem támogatja az UDF-eket.
- Nem támogatja az RDD API-kat.
- A rövid ideig futó lekérdezések (<2 másodperc) javítása nem várható, például a kis mennyiségű adatra irányuló lekérdezések.
A Photon által nem támogatott funkciók ugyanúgy futnak, mint a Databricks Runtime-tal; nincs teljesítményelőny ezekhez a funkciókhoz.