光子運行時
Photon是Databricks上的原生向量化查詢引擎,直接與Apache Spark api兼容,因此它可以與您現有的代碼一起工作。它是用c++開發的,以利用現代硬件,並在向量化查詢處理中使用最新的技術,以利用cpu中的數據和指令級並行,增強真實數據和應用程序的性能——所有這些都是數據湖上的原生數據。Photon是高性能運行時的一部分,它可以更快地運行您現有的SQL和DataFrame API調用,並降低您的每個工作負載的總成本。Photon在Databricks SQL倉庫中默認使用。
磚集群
Photon可用於運行的集群Databricks Runtime 9.1 LTS及以上。
要啟用光子加速,請選擇使用光子加速複選框時創建集群.如果使用集群API,設置runtime_engine
來光子
.
Photon在驅動和工作節點上支持許多實例類型。Photon實例類型消耗DBUs的速度與運行非Photon運行時的相同實例類型不同。有關Photon實例和DBU消耗的更多信息,請參見磚定價的頁麵.
光子的優勢
支持針對Delta和Parquet表的SQL和等效的DataFrame操作。
加速處理大量數據(100GB以上)並包括聚合和連接的查詢。
當從磁盤緩存重複訪問數據時,性能會更快。
對具有許多列和許多小文件的表具有更健壯的掃描性能。
更快的Delta和拚花書寫使用
更新
,刪除
,合並成
,插入
,創建表格作為選擇
特別是對於寬表(數百至數千列)。用散列連接替換排序合並連接。
光子的報道
運營商
掃描,過濾器,項目
哈希總/加入/洗牌
嵌套循環連接
Null-Aware反加入
聯盟,擴大,ScalarSubquery
δ/鋪寫下沉
排序
窗口函數
表達式
比較/邏輯
算術/數學(最多)
條件(IF, CASE等)
字符串(常用)
數據類型轉換
總量(最常見的)
日期/時間戳
數據類型
字節/短/ Int /長
布爾
字符串/二進製
小數
浮動/雙
日期/時間戳
結構體
數組
地圖
下表列出了所支持的Databricks表達式以及支持該表達式的Databricks Runtime最低版本。
的名字 |
釋放 |
---|---|
腹肌 |
磚8.3運行時 |
這些“可信賴醫療組織” |
Databricks Runtime 10.4 LTS |
添加 |
磚8.3運行時 |
AddMonths |
磚8.3運行時 |
AesDecrypt |
Databricks Runtime 10.4 LTS |
AesEncrypt |
Databricks Runtime 10.4 LTS |
和 |
磚8.3運行時 |
ArrayContains |
磚8.3運行時 |
ArrayDistinct |
磚10.0運行時 |
ArrayExcept |
磚10.1運行時 |
ArrayExists |
Databricks Runtime 10.4 LTS |
ArrayFilter |
Databricks Runtime 10.4 LTS |
ArrayForAll |
Databricks Runtime 10.4 LTS |
ArrayIntersect |
磚10.1運行時 |
ArrayJoin |
Databricks Runtime 10.4 LTS |
ArraySize |
Databricks Runtime 10.4 LTS |
ArrayTransform |
Databricks Runtime 10.4 LTS |
ArrayUnion |
磚10.1運行時 |
: |
Databricks Runtime 9.1 LTS |
量化 |
Databricks Runtime 9.1 LTS |
平均 |
磚8.3運行時 |
Base64 |
Databricks Runtime 9.1 LTS |
箱子 |
磚10.0運行時 |
BitAndAgg |
磚8.3運行時 |
BitLength |
Databricks Runtime 11.3 LTS |
BitOrAgg |
磚8.3運行時 |
BitwiseAnd |
磚8.3運行時 |
BitwiseNot |
磚8.3運行時 |
BitwiseOr |
磚8.3運行時 |
BitwiseReverse |
磚8.3運行時 |
BitwiseXor |
磚8.3運行時 |
BitXorAgg |
磚8.3運行時 |
BoundaryAsGeojson |
Databricks Runtime 11.3 LTS |
BoundaryAsWkb |
Databricks Runtime 11.3 LTS |
BoundaryAsWkt |
Databricks Runtime 11.3 LTS |
投 |
磚8.3運行時 |
Cbrt |
磚8.4運行時 |
CeilExpressionBuilder |
磚8.3運行時 |
CenterAsGeojson |
Databricks Runtime 11.3 LTS |
CenterAsWkb |
Databricks Runtime 11.3 LTS |
CenterAsWkt |
Databricks Runtime 11.3 LTS |
空空的 |
磚10.1運行時 |
合並 |
磚8.3運行時 |
CollectList |
磚9.0運行時 |
Concat |
磚8.3運行時 |
ConcatWs |
磚8.3運行時 |
Conv |
磚8.3運行時 |
因為 |
Databricks Runtime 10.4 LTS |
數 |
磚8.3運行時 |
CreateArray |
磚8.3運行時 |
CreateMap |
磚8.4運行時 |
CreateNamedStruct |
磚8.3運行時 |
CreateStruct |
磚8.3運行時 |
CurrentCatalog |
磚8.3運行時 |
CurrentDatabase |
磚8.3運行時 |
CurrentDate |
磚8.3運行時 |
CurrentTimestamp |
磚8.3運行時 |
CurrentTimeZone |
磚8.3運行時 |
CurrentUser |
磚8.3運行時 |
返回 |
磚8.3運行時 |
DateDiff |
磚8.3運行時 |
DateFormatClass |
磚8.3運行時 |
DateFromUnixDate |
磚8.3運行時 |
DateSub |
磚8.3運行時 |
DayOfMonth |
磚8.3運行時 |
DayOfWeek |
磚8.3運行時 |
DayOfYear |
磚8.3運行時 |
解碼 |
磚8.3運行時 |
DenseRank |
Databricks Runtime 10.4 LTS |
分 |
磚8.3運行時 |
ElementAt |
磚8.3運行時 |
EqualNullSafe |
磚8.3運行時 |
等於 |
磚8.3運行時 |
經驗值 |
磚8.4運行時 |
爆炸 |
磚8.4運行時 |
提取 |
磚8.3運行時 |
第一個 |
磚8.3運行時 |
FloorExpressionBuilder |
磚8.3運行時 |
FromUnixTime |
磚8.3運行時 |
FromUTCTimestamp |
磚8.3運行時 |
得到 |
Databricks Runtime 11.3 LTS |
GetJsonObject |
磚11.2運行時 |
GreaterThan |
磚8.3運行時 |
GreaterThanOrEqual |
磚8.3運行時 |
最大的 |
磚8.3運行時 |
GridDistance |
Databricks Runtime 11.3 LTS |
H3ToString |
Databricks Runtime 11.3 LTS |
十六進製 |
Databricks Runtime 9.1 LTS |
小時 |
磚8.3運行時 |
如果 |
磚8.3運行時 |
在 |
磚8.3運行時 |
InitCap |
Databricks Runtime 11.3 LTS |
InputFileBlockLength |
磚8.3運行時 |
InputFileBlockStart |
磚8.3運行時 |
InputFileName |
磚8.3運行時 |
插圖 |
磚8.3運行時 |
IntegralDivide |
磚8.3運行時 |
IsChildOf |
Databricks Runtime 11.3 LTS |
IsNaN |
磚8.3運行時 |
IsNotNull |
磚8.3運行時 |
IsNull |
磚8.3運行時 |
IsPentagon |
Databricks Runtime 11.3 LTS |
IsValid |
Databricks Runtime 11.3 LTS |
JsonToStructs |
磚11.2運行時 |
滯後 |
Databricks Runtime 10.4 LTS |
最後的 |
Databricks Runtime 10.4 LTS |
LastDay |
磚8.3運行時 |
引領 |
Databricks Runtime 10.4 LTS |
至少 |
磚8.3運行時 |
長度 |
磚8.3運行時 |
LengthOfJsonArray |
磚11.1運行時 |
不超過 |
磚8.3運行時 |
Levenshtein |
磚10.1運行時 |
就像 |
磚8.3運行時 |
日誌 |
磚8.3運行時 |
Log2 |
磚8.4運行時 |
LongLatAsH3 |
Databricks Runtime 11.3 LTS |
LongLatAsH3String |
Databricks Runtime 11.3 LTS |
較低的 |
磚8.3運行時 |
LPadExpressionBuilder |
磚8.3運行時 |
MakeDate |
磚8.3運行時 |
MakeTimestamp |
磚8.3運行時 |
馬克斯 |
磚8.3運行時 |
MaxChild |
Databricks Runtime 11.3 LTS |
Md5 |
Databricks Runtime 10.4 LTS |
MicrosToTimestamp |
磚8.3運行時 |
MillisToTimestamp |
磚8.3運行時 |
最小值 |
磚8.3運行時 |
MinChild |
Databricks Runtime 11.3 LTS |
一分鍾 |
磚8.3運行時 |
MonotonicallyIncreasingID |
磚8.3運行時 |
月 |
磚8.3運行時 |
MonthsBetween |
磚8.3運行時 |
乘 |
磚8.3運行時 |
Murmur3Hash |
磚8.3運行時 |
NaNvl |
磚8.3運行時 |
NextDay |
磚8.3運行時 |
不 |
磚8.3運行時 |
現在 |
磚8.3運行時 |
NthValue |
Databricks Runtime 10.4 LTS |
NTile |
Databricks Runtime 10.4 LTS |
NullIf |
磚8.3運行時 |
Nvl |
磚8.3運行時 |
Nvl2 |
磚8.3運行時 |
OctetLength |
磚8.3運行時 |
ParseToDate |
磚8.3運行時 |
ParseToTimestamp |
磚8.3運行時 |
百分位 |
Databricks Runtime 10.4 LTS |
PercentRank |
Databricks Runtime 10.4 LTS |
π |
磚8.3運行時 |
Pmod |
磚8.3運行時 |
PosExplode |
Databricks Runtime 9.1 LTS |
戰俘 |
磚8.3運行時 |
季度 |
磚8.3運行時 |
蘭德 |
磚8.3運行時 |
排名 |
Databricks Runtime 10.4 LTS |
RegExpExtract |
磚8.3運行時 |
RegExpExtractAll |
磚11.1運行時 |
RegExpReplace |
Databricks Runtime 9.1 LTS |
RegrAvgX |
磚10.5運行時 |
RegrAvgY |
磚10.5運行時 |
剩餘部分 |
磚8.3運行時 |
決議 |
Databricks Runtime 11.3 LTS |
反向 |
磚8.3運行時 |
反向 |
磚8.3運行時 |
RLike |
磚8.3運行時 |
輪 |
磚8.3運行時 |
RowNumber |
Databricks Runtime 10.4 LTS |
RPadExpressionBuilder |
磚8.3運行時 |
第二個 |
磚8.3運行時 |
SecondsToTimestamp |
磚8.3運行時 |
Sha1 |
Databricks Runtime 10.4 LTS |
Sha2 |
Databricks Runtime 10.4 LTS |
ShiftLeft |
磚8.3運行時 |
ShiftRight |
磚8.3運行時 |
ShiftRightUnsigned |
磚8.3運行時 |
罪 |
Databricks Runtime 10.4 LTS |
大小 |
磚8.3運行時 |
片 |
磚8.3運行時 |
探測法 |
磚10.1運行時 |
SparkVersion |
磚8.3運行時 |
√6 |
磚8.4運行時 |
StddevPop |
磚8.3運行時 |
StddevSamp |
磚8.3運行時 |
StringInstr |
磚8.3運行時 |
StringLocate |
磚8.3運行時 |
StringRepeat |
磚11.2運行時 |
StringSpace |
磚8.3運行時 |
StringSplit |
磚8.3運行時 |
StringToH3 |
Databricks Runtime 11.3 LTS |
StringTranslate |
Databricks Runtime 10.4 LTS |
StringTrim |
磚8.3運行時 |
StringTrimBoth |
磚8.3運行時 |
StringTrimLeft |
磚8.3運行時 |
StringTrimRight |
磚8.3運行時 |
StructsToJson |
磚11.1運行時 |
子字符串 |
磚8.3運行時 |
減去 |
磚8.3運行時 |
總和 |
磚8.3運行時 |
棕褐色 |
Databricks Runtime 9.1 LTS |
ToChildren |
Databricks Runtime 11.3 LTS |
ToParent |
Databricks Runtime 11.3 LTS |
ToRadians |
磚10.1運行時 |
ToUnixTimestamp |
磚8.3運行時 |
ToUTCTimestamp |
磚8.3運行時 |
TruncDate |
磚8.3運行時 |
TruncTimestamp |
磚8.3運行時 |
TryElementAt |
磚10.0運行時 |
TryValidate |
Databricks Runtime 11.3 LTS |
UnaryMinus |
磚8.3運行時 |
UnBase64 |
Databricks Runtime 9.1 LTS |
Unhex |
Databricks Runtime 9.1 LTS |
UnixDate |
磚8.3運行時 |
UnixMicros |
磚8.3運行時 |
UnixMillis |
磚8.3運行時 |
UnixSeconds |
磚8.3運行時 |
UnixTimestamp |
磚8.3運行時 |
上 |
磚8.3運行時 |
Uuid |
磚8.3運行時 |
驗證 |
Databricks Runtime 11.3 LTS |
VarianceSamp |
磚10.1運行時 |
工作日 |
磚8.3運行時 |
WeekOfYear |
磚8.3運行時 |
XxHash64 |
磚10.0運行時 |
一年 |
磚8.3運行時 |
限製
結構化流:Photon目前支持Delta、Parquet和CSV的無狀態流。卡夫卡和運動學的支持公共預覽
不支持udf。
不支持RDD接口。
預期不會改善短時間運行的查詢(<2秒),例如針對少量數據的查詢。
Photon不支持的特性運行的方式與Databricks Runtime相同;這些特性沒有性能優勢。