North Concepts
home » data pipeline » api overview

API Overview

Overview

Data Pipeline implements the Decorator Pattern as a way of chaining together operations to be applied to a data stream.  The bulk of the API consists of Data Readers and Data Writers.

Data Endpoints

DataEndpoint Abstract super-class for reading and writing records.  Common operations like open(), close(), and getRecordCount() are defined here.
DataEndpointGroup Helper class--makes it easy to work with multiple readers and writers as a single unit.
DataReader Abstract super-class for reading records.  The only method that a subclass must implement is readImpl(), however, most subclasses will also override open() and close().
DataWriter Abstract super-class for writing records.  The only method that a subclass must implement is writeImpl(DataReader, Record), however, most subclasses will also override open() and close().

Reader and writers generally come in 2 forms:  Primary Endpoints and Secondary Endpoints.

Primary Endpoints

Primary endpoints are used to transfer data directly to and from physical sources. They include:

  • CSVReader & CSVWriter
  • JdbcReader & JdbcWriter
  • ExcelReader & ExcelWriter

Secondary Endpoints

Secondary endpoints act on other endpoints.  They intercept and transform data as it passes through them (adding and removing records, updating fields, performing lookups, etc.).  Secondary endpoints will generally subclass either ProxyReader or ProxyWriter and includes:

  • FilteringReader
  • SortingReader
  • ThrottledReader & ThrottledWriter

Data Readers

Data Readers

AbstractReader Abstract super-class, with some common logic, for reading records.
AggregateReader A proxy that applies set functions (sum, max, etc.) to fields of records passing through.
AsyncReader A proxy that reads data asynchronously using a separate thread.
CSVReader Obtains records from a Comma Separated Value (CSV) stream.
DebugReader A proxy that prints records passing through to a stream in a human-readable format.
ExcelReader Obtains records from an excel document.
FileReader Obtains records from a binary stream previously written using a FileWriter.
FilteringReader A proxy that applies filters to determine which records passes through.
JdbcReader Obtains records from a database query.
MemoryReader Obtains records from an in-memory RecordList.
MeteredReader A proxy that measures the rate (bytes/second) at which data is read.
ProxyReader Abstract super-class for obtaining records from another DataReader, possibly transforming them along the way.  The only method that a subclass should implement is interceptRecord(Record).
RemoveDuplicatesReader A proxy that removes duplicate records.
SortingReader A proxy that sorts records.
TextReader Abstract super-class for obtaining records from a text stream.
ThrottledReader A proxy that limits the rate (bytes/second) at which data is read.
TransformingReader A proxy that applies transformations to records passing through.
ValidatingReader A proxy that validates records by applying a set of filters.

 

Data Writers

Data Writers

AbstractWriter Abstract super-class, with some common logic, for writing records.
CSVWriter Writes records to a Comma Separated Value (CSV) stream.
FileWriter Writes records to a binary stream that can be later read using a FileReader.
JdbcWriter Writes records to a database table.
MemoryWriter Writes records to an in-memory RecordList.
MeteredWriter A proxy that measures the rate (bytes/second) at which data is written.
MultiWriter Writes records to multiple DataWriter.
NullWriter Discards records.
ProxyWriter Abstract super-class for writing records to another DataWriter, possibly transforming them along the way.  The only method that a subclass should implement is interceptRecord(Record).
StreamWriter Writes records to a stream in a human-readable format.
TextWriter Abstract super-class for writing records to a text stream.
ThrottledWriter A proxy that limits the rate (bytes/second) at which data is written.

 

Quick Links Documentation Contact
© 2007, 2008 North Concepts Inc.   All rights reserved.