Large Optimized Foreign Table (LOFT) is a remote column store manager. It is designed specifically to facilitate replication of tables from operational environment into a separate analytics domain.

LOFT is essentially an efficient data repository that stores and serves partitioned tables to Vitesse DB and Greenplum DB. It can be used as a data mart to offload your data warehouse or as a replica of your data on premise or in the cloud [more]. For small 100TB data warehouses, it can even function as the primary storage.

Setup Vitesse DB

In order to access LOFT, we need to load an extension into Vitesse DB that provides the necessary stubs. The extension is included in the Vitesse DB distribution. Simply execute the following commands to enable the extension:

% psql your-database -c 'create extension vitesse_spq_fdw'
% psql your-database -c 'create server spq_fdw_server foreign data wrapper vitesse_spq_fdw'

Setup Deepgreen DB

A similar setup procedure is necessary for Deepgreen DB:

% psql your-database -f $GPHOME/share/postgresql/contrib/vitesse.sql

Setup LOFT

LOFT and its related utilities are included in Vitesse DB and Deepgreen DB distributions.

All you need to setup LOFT is some disk space and a network port. First identify a directory on a disk that you want to store the data. For the purpose of illustration, we will assume that directory is /data/loftdata.

Next, we create a simple config file that specifies the port that LOFT should listen for incoming requests:

% echo "port=8787" > /data/loftdata/loftd.conf

That's it! We are ready to start the LOFT service.

Starting and Stopping

The executable for LOFT is called loftd.

To start LOFT:

% loftd -D /data/loftdata

To stop LOFT, do a ps to find the loftd process and kill it.