介绍

该组件主要用于系统数据的输出,即将数据以哪种方式输出,它并不关心数据输出到哪里去,只关心数据如何输出。

内置输出

  1. SimpleOutput:简单的输出
  2. BatchOutput:批量输出所需参数:

    1. batchSize[必选]: 批量大小。n>0
  3. TimeIntervalOutput:以设定时间间隔输出所需参数:

    1. timeInterval[必选]: 时间间隔,当达到时间间隔, 无论设定大小是多少, 都进行批量输出。单位:秒
  4. TimeIntervalBatchOutput:时间间隔、批量组合输出所需参数:
    1. batchSize[必选]: 批量大小,当达到设定大小, 无论定时是否执行, 都进行批量输出。n>0
    2. timeInterval[必选]: 时间间隔,当达到时间间隔, 无论设定大小是多少, 都进行批量输出, 单位:
  5. DataSizeOutput:数据字节量输出【暂未实现】
  6. TimeIntervalDataSizeOutput:时间间隔、数据字节量批量组合输出【暂未实现】

扩展输出

  1. 继承如下类:com.starblues.rope.core.output.AbstractOutput:简单的抽象输出。com.starblues.rope.core.output.AbstractCacheOutput: 可缓存数据的抽象输出。用于多数据的输出,比如批量输出,定时输出。

  2. 实现方法说明:

父类方法:

  1. AbstractOutput
  2. super.writerWrappers:获取该输出所携带的写入者:
  3. super.convertRecords(Writer writer, RecordWrapper recordWrapper): 封装了数据转换,主要是对数据的数据格式进行转换
  4. super.write(WriterWrapper writerWrapper, OutputDataWrapper dataWrapper): 封装了数据写入到写入者中的实现
  5. AbstractCacheOutput
  6. super.outputToWrite(): 封装所缓存的数据到写入者中。

公共实现:

  1. id(): 定义该输出的id(全局输出唯一)
  2. name(): 定义该输出的名称
  3. describe(): 定义该输出的描述
  4. initialize():初始化
  5. configParameter():该输出所需参数

AbstractOutput:

  1. output(RecordWrapper recordWrapper):输出该数据到写入者。参数:RecordWrapper 为记录的包装,通过:recordWrapper.getRecordGroup().getRecords() 可拿到要写入的数据集合

AbstractCacheOutput:

  1. outputEvent():输出事件通知,每进入一组数据则,进行调用该方法一次。