机器数据分析平台

  • 机器数据分析平台 > 应用开发者文档 > APP开发手册 > APP开发说明 > 自定义算子

    自定义算子

    最近更新时间:2020-12-17 19:12:06

    Pandora支持 SPL 高级搜索分析语法,以管道符的形式表达数据分析的过程,每一步使用对应的SPL搜索命令完成相应的数据分析。平台内置提供了 100 多种命令用于数据处理和建模过程,可以实现数据搜索、关联、分析、可视化等操作。
    尽管如此,这些现有命令可能无法满足特定分析场景。为了拓展SPL的能力,除了平台自带的SPL算子外,可以通过插件的形式实现自定义算子的逻辑。自定义算子是用户定义的SPL搜索命令,用于扩展用户的特定分析需求。自定义算子SDK提供开发并将自定义算子加入到算子库的功能,下面以Python SDK为例说明如何进行自定义算子开发,实现数据的灵活分析。


    自定义算子类型

    用户可以自定义的算子类型如下:

    算子类型 描述 示例 计算方式
    流式命令 对搜索返回的事件数据逐个应用SPL命令进行处理 eval,fields,rex,rename,replace,where,search 集中式/分布式
    转换统计命令 将搜索返回的事件转换为用于统计目的的数值 chart,stats,rare,timechart,top 集中式/分布式
    搜索导出 将搜索分析结果导出到第三方平台 export 集中式/分布式

    下载APP应用模板

    点击下载模版应用,解压后里面有APP相关的各个配置文件。

    配置自定义算子的配置项

    在demo/resources/customoperators 目录下新建一个sample.json文件,文件配置如下:

    {
    		"name":"sample",           // 算子的名字
    		"type":"centralized",      // 算子的类型,目前只支持集中式算子,在该算子进行运算时只能在一台服务器进行运算
    		"env":"python3",           // 算子实现的语言
    		"filename":"sample.py"     // 算子实现的文件名,该文件存储在bins目录下
    }
    

    编写自定义算子脚本

    详细内容参考SDK帮助手册 获取 Python SDK,然后在bins目录下创建sample.py 脚本放置在demo/bins 目录下,脚本内容为:

    #!/usr/bin/env python
    
    import sys
    
    from pdr_python_sdk.on_demand_action import run
    from pdr_python_sdk.spl import *
    
    # 为所有数据增加一列 'foo',值为 'bar'
    class Foobar(SplStreamingBatchCommand):
        def streaming_handle(self, lines):
            for line in lines:
                line['foo'] = 'bar'
            return lines
    
    if __name__ == '__main__':
        run(Foobar, sys.argv, sys.stdin.buffer, sys.stdout.buffer)
    

    打包并安装APP

    将demo目录打包成sample.tar.gz

    tar -zcvf sample.tar.gz demo
    

    去pandora 2.0的应用商店的“应用管理”界面上传sample.tar.gz

    执行命令

    去搜索分析界面执行“* | sample” 命令,能够看到每条日志都会新增"foo": “bar” 这样的字段

    以上内容是否对您有帮助?
  • Qvm free helper
    Close