Package org.epics.archiverappliance.etl
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 Summary
Modifier and Type Method Description boolean
appendToETLAppendData(String pvName, EventStream stream, ETLContext context)
This appends an EventStream to the ETL append data for a PV.boolean
commitETLAppendData(String pvName, ETLContext context)
This concatenates the ETL append data for a PV with the PV's destination data.String
getDescription()
PartitionGranularity
getPartitionGranularity()
boolean
prepareForNewPartition(String pvName, Event ev, ArchDBRTypes archDBRType, ETLContext context)
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.boolean
runPostProcessors(String pvName, ArchDBRTypes dbrtype, ETLContext context)
Run the post processors associated with this plugin if any for this pv.-
Methods inherited from interface org.epics.archiverappliance.Writer
appendData, getLastKnownEvent
-
-
-
-
Method Detail
-
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 partitionarchDBRType
- ArchDBRTypescontext
- 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
- ArchDBRTypescontext
- ETLContext- Returns:
- boolean True or False
- Throws:
IOException
-
-
getPartitionGranularity
PartitionGranularity getPartitionGranularity()
-
getDescription
String getDescription()
-
-