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 INTOINSERTés CREATE TABLE AS SELECThaszná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.