The Copier

Database front ends generally provide a means to import data and to export data. Import basically takes data from a file and loads it into a table; export basically takes data from a table and writes it out to a file. So, import can be thought of as copying from a file to a table, and export as copying from a table to a file; the important operation here is copy. It is the copying operation that Rekall extends to provide import and export.

A copy operation has two main components, namely a source and a destination. Rekall provides three sources and three destinations. Logically, the sources take an input, split it into rows, and splits each row into fields. They are:

Similarly, destinations logically take rows of fields, and combine them row-by-row to generate output. They are:

A copier is then a specified source and a specified destination, and data is simply copied from one to the other, effectively row by row. There are a few extra considerations, such as what to do if the source produces more or less items than the destination expects, but this is the basic operation.

The screenshots below show the copies; the first copies a file to a table (a classic import), the second copies a table to a file (a classic export) and the third copies from an SQL select query to an XML formatted file. In each case the source is the left-hand side, and the destination the right-hand.