配置RocksDB狀態存儲在磚

您可以啟用RockDB-based狀態管理通過設置以下配置的SparkSession開始前流查詢。

火花相依(“spark.sql.streaming.stateStore.providerClass”,“com.databricks.sql.streaming.state.RocksDBStateStoreProvider”)

RocksDB狀態存儲度量

每個州運營商收集相關指標狀態管理操作上執行其RocksDB實例觀察狀態存儲和潛在幫助調試工作緩慢。這些指標聚合(總和)每個州運營商工作在所有任務的國有運營商正在運行。這些指標的一部分customMetrics地圖在stateOperators字段StreamingQueryProgress。下麵是一個例子StreamingQueryProgress在JSON形式(獲得使用StreamingQueryProgress.json ())。

{“id”:“6774075 e - 8869 - 454 b - ad51 - 513 be86cfd43”,“runId”:“3 d08104d-d1d4-4d1a-b21e-0b2e1fb871c5”,“batchId”:7,“stateOperators”:({“numRowsTotal”:20000000,“numRowsUpdated”:20000000,“memoryUsedBytes”:31005397,“numRowsDroppedByWatermark”:0,“customMetrics”:{“rocksdbBytesCopied”:141037747,“rocksdbCommitCheckpointLatency”:2,“rocksdbCommitCompactLatency”:22061年,“rocksdbCommitFileSyncLatencyMs”:1710年,“rocksdbCommitFlushLatency”:19032年,“rocksdbCommitPauseLatency”:0,“rocksdbCommitWriteBatchLatency”:56155年,“rocksdbFilesCopied”:2,“rocksdbFilesReused”:0,“rocksdbGetCount”:40000000,“rocksdbGetLatency”:21834年,“rocksdbPutCount”:1,“rocksdbPutLatency”:56155599000,“rocksdbReadBlockCacheHitCount”:1988年,“rocksdbReadBlockCacheMissCount”:40341617,“rocksdbSstFileSize”:141037747,“rocksdbTotalBytesReadByCompaction”:336853375,“rocksdbTotalBytesReadByGet”:680000000,“rocksdbTotalBytesReadThroughIterator”:0,“rocksdbTotalBytesWrittenByCompaction”:141037747,“rocksdbTotalBytesWrittenByPut”:740000012,“rocksdbTotalCompactionLatencyMs”:21949695000,“rocksdbWriterStallLatencyMs”:0,“rocksdbZipFileBytesUncompressed”:7038年}}),“源”:({}),“沉”:{}}

詳細描述的指標如下:

指標名稱

描述

rocksdbCommitWriteBatchLatency

時間(飛船)申請了上演中寫道(WriteBatch)本機RocksDB內存結構。

rocksdbCommitFlushLatency

時間(飛船)帶衝洗RocksDB內存中的更改本地磁盤。

rocksdbCommitCompactLatency

時間(飛船)帶壓實(可選)在檢查站提交。

rocksdbCommitPauseLatency

時間(飛船)停止了背景工作線程(壓實等)作為檢查點的一部分提交。

rocksdbCommitCheckpointLatency

時間(飛船)把拍攝快照的本地RocksDB並將它寫入本地目錄。

rocksdbCommitFileSyncLatencyMs

(飛船)花了時間同步本機RocksDB快照相關文件到外部存儲(檢查點位置)。

rocksdbGetLatency

平均時間每底層本地(nano)了RocksDB::調用。

rocksdbPutCount

平均時間每底層本地(nano)了RocksDB::調用。

rocksdbGetCount

大量的土著RocksDB::調用(不包括得到從WriteBatch -在內存中批量用於分段寫)。

rocksdbPutCount

大量的土著RocksDB::調用(不包括WriteBatch——在內存中批量用於分段寫)。

rocksdbTotalBytesReadByGet

通過本地讀取的未壓縮的字節數RocksDB::調用。

rocksdbTotalBytesWrittenByPut

通過本地寫未壓縮的字節數RocksDB::調用。

rocksdbReadBlockCacheHitCount

本機RocksDB塊緩存的次數是用來避免從本地磁盤讀取數據。

rocksdbReadBlockCacheMissCount

次數本機RocksDB塊緩存錯過了,需要從本地磁盤讀取數據。

rocksdbTotalBytesReadByCompaction

從本地磁盤讀取的字節數的原生RocksDB壓實過程。

rocksdbTotalBytesWrittenByCompaction

的字節數寫入到本地磁盤的原生RocksDB壓實過程。

rocksdbTotalCompactionLatencyMs

時間(飛船)把RocksDB緊湊排列(背景和可選的壓實期間提交)發起的。

rocksdbWriterStallLatencyMs

時間(飛船)作者已經停滯由於背景壓實或衝洗memtables到磁盤。

rocksdbTotalBytesReadThroughIterator

一些有狀態操作(例如超時處理flatMapGroupsWithState在窗口的聚合或水印)需要通過迭代器閱讀整個數據庫中的數據。未壓縮的數據的總大小使用迭代器讀取。