input
input 插件基于 libarchive 开发,用于解压缩内存数据或文件内容,并返回解压后的文本。插件能够自动识别压缩格式(目前支持 zstd 和 gzip)并解压数据。
安装插件
版本要求
DolphinDB Server:2.00.14/3.00.2 及更高版本,且部署于 Linux x86-64 系统,支持 Linux ABI 特性。
- 在 DolphinDB 客户端中使用 listRemotePlugins
函数查看可供安装的插件。
login("admin", "123456") listRemotePlugins() - 使用 installPlugin
函数安装插件。
installPlugin("input") - 使用 loadPlugin
函数加载插件。
loadPlugin("input")
接口说明
readMemory
语法
input::readMemory(data)
详情
从内存中读取二进制数据(BLOB),自动识别其压缩格式(支持 zstd 和 gzip)并完成解压。
参数
data BLOB 类型标量,指定待解压的数据。
返回值
解压后的文本内容,STRING 类型标量。
readFile
语法
input::readFile(path)
详情
从指定路径下读取文件,自动识别其压缩格式(支持 zstd 和 gzip)并完成解压。
参数
path STRING 类型标量,指定待解压文件的路径。
返回值
解压后的文本内容,STRING 类型标量。
blobToLong
语法
input::blobToLong(data)
详情
将小于 8 字节的二进制数据转换为一个 LONG 类型数据。
参数
data BLOB 类型标量,指定待转换的数据。
返回值
LONG 类型标量。
setLogLevel
语法
input::setLogLevel(logLevel)
详情
设置插件日志的最低输出等级,系统将打印当前日志等级及以上级别的插件日志,默认为 INFO。注意,该接口仅设置插件的日志等级,不会改变 DolphinDB server 的日志等级。
参数
logLevel 日志等级,从低到高可选值为:DEBUG、INFO、WARNING、ERROR。
返回值
无
示例
将日志的最低输出等级设置为 WARNING,设置后系统只打印 WARNING 和 ERROR 级别的插件日志。
input::setLogLevel(WARNING)
getLogLevel
语法
input::getLogLevel()
详情
获取当前插件的日志等级。
参数
无
返回值
代表日志等级的字符串。
示例
input::getLogLevel() // 输出:'INFO'
使用示例
示例一:从二进制文件读取记录表
假设某外部系统周期性生成一个二进制文件,每条记录依次包含:交易时间、代码、价格和数量,均为定长字段。可通过如下方式在 DolphinDB 中读取文件:
// 加载插件
loadPlugin("input")
// 从指定路径中读取文件并解压
path = "./trade.bin"
content = readFile(path)
// 转换为表格
table = parseJsonTable(content)
上述示例中,trade.bin 是一个压缩后的 JSON 文件。readFile 读取整个文件并解压为 STRING 类型数据,后续可以通过 DolphinDB 字符串解析与处理函数执行数据转换。
示例二:从共享内存读取数据
在某些高频场景中,外部进程将最新数据写入共享内存区域。readMemory 直接读取内存地址中的数据,减少磁盘 IO 和数据复制带来的延迟。
// 加载插件
loadPlugin("input")
// 从消息队列中接收数据
// content = ...
content = readMemory(content)
// 转换为表格
table = parseJsonTable(content)
上述示例中,content 是通过消息队列接收的压缩数据。readMemory 将其解压为 STRING 类型数据,后续可以通过 DolphinDB 字符串解析与处理函数执行数据转换。
