Interface ETLDest

All Superinterfaces:
Writer
All Known Implementing Classes:
BlackholeStoragePlugin, MergeDedupStoragePlugin, PlainPBStoragePlugin

public interface ETLDest extends Writer
An ETL dest is data source that can act as a sink for ETL. In addition to Writer, There are the methods that an ETL dest needs to implement
Author:
mshankar
  • Method Details

    • prepareForNewPartition

      boolean prepareForNewPartition(String pvName, Event ev, ArchDBRTypes archDBRType, ETLContext context) throws IOException
      This informs the destination that we are switching to a new partition and this dest needs to execute its pre-processing for a new partition. For example, in a PlainPBStorage plugin, this will close the previous fileoutputstreams if any, open a new stream to the file backing the new partition writing a header if needed.
      Parameters:
      pvName - The name of PV.
      ev - This is used to determine the partition for the new partition
      archDBRType - ArchDBRTypes
      context - ETLContext
      Returns:
      boolean True or False
      Throws:
      IOException -  
    • appendToETLAppendData

      boolean appendToETLAppendData(String pvName, EventStream stream, ETLContext context) throws IOException
      This appends an EventStream to the ETL append data for a PV.
      Parameters:
      pvName - The name of PV.
      stream - The EventStream to append to the append data for a PV.
      context - ETLContext
      Returns:
      boolean True or False
      Throws:
      IOException -  
    • commitETLAppendData

      boolean commitETLAppendData(String pvName, ETLContext context) throws IOException
      This concatenates the ETL append data for a PV with the PV's destination data.
      Parameters:
      pvName - The name of PV.
      context - ETLContext
      Returns:
      boolean True or False
      Throws:
      IOException -  
    • runPostProcessors

      boolean runPostProcessors(String pvName, ArchDBRTypes dbrtype, ETLContext context) throws IOException
      Run the post processors associated with this plugin if any for this pv. The post processing is done after the commit and outside of the ETL transaction. This process is expected to catch up on previously missed/incomplete computation of cached post processing files. I can think of at least two usecases for this - one where we decide to go back and add a post processor for a pv and one where we change the algorithm for the post processor and want to recompute all the cached files again.
      Parameters:
      pvName - The name of PV.
      dbrtype - ArchDBRTypes
      context - ETLContext
      Returns:
      boolean True or False
      Throws:
      IOException -  
    • getPartitionGranularity

      PartitionGranularity getPartitionGranularity()
    • getDescription

      String getDescription()