光子運行時

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相同;這些特性沒有性能優勢。