配置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在窗口的聚合或水印)需要通过迭代器阅读整个数据库中的数据。未压缩的数据的总大小使用迭代器读取。