Interface ETLSource

All Known Implementing Classes:
MergeDedupStoragePlugin, PlainStoragePlugin

public interface ETLSource
An ETL source is data source that can act as a source for ETL. There are the methods that an ETL source needs to implement
Author:
mshankar
  • Method Details

    • getName

      String getName()
    • getETLStreams

      List<ETLInfo> getETLStreams(String pv, Instant currentTime, ETLContext context) throws IOException
      Given a pv and a time, this method returns all the streams that are ready for ETL. For example, if the partition granularity of a source is an hour, then this method returns all the streams that are in this source for the previous hours. Ideally, these streams must be closed for writing and should not change. The ETL process will consolidates these streams into the ETL destination, which is expected to be at a longer time granularity.
      Parameters:
      pv - The name of PV.
      currentTime - The time that is being used as the cutoff. If we pass in a timestamp way out into the future, we should return all the streams available.
      context - ETLContext
      Returns:
      List ETLinfo
      Throws:
      IOException -  
    • markForDeletion

      void markForDeletion(ETLInfo info, ETLContext context)
      Delete the ETLStream identifier by info when you can as it has already been consumed by the ETL destination. You can delete it later or immediately.
      Parameters:
      info - ETLInfo
      context - ETLContext
    • getPartitionGranularity

      PartitionGranularity getPartitionGranularity()
    • getDescription

      String getDescription()
    • consolidateOnShutdown

      boolean consolidateOnShutdown()
      Should ETL move data from this source to the destination on shutdown. For example, if you are using a ramdisk for the STS and you have a UPS, you can minimize any data loss but turning this bit on for data stores that are on the ramdisk. On shutdown, ETL will try to move the data out of this store into the next lifetime store.
      Returns:
      boolean True or False