Whatever structure exists in MR input files must be built into
the Map and Reduce programs. Existing MR implementations provide built-in functionality to handle simple key/value pair formats,
but the programmer must explicitly write support for more complex data structures, such as compound keys. This is possibly an
acceptable approach if a MR data set is not accessed by multiple
applications. If such data sharing exists, however, a second programmer must decipher the code written by the first programmer to
decide how to process the input file. A better approach, followed
by all SQL DBMSs, is to separate the schema from the application
and store it in a set of system catalogs that can be queried.