A typical use case for multiple inputs with dimensional data is a function that must access a table of values—a "lookup" table—for all rows of a given input.
Without multiple inputs, you can sometimes use either of these strategies:
- Hold the lookup table in memory for the duration of the query.
- Add the lookup table as an additional row in the query table during the query.
However, neither of the preceding strategies works in the following situations:
- The lookup table does not fit in memory.
- Adding the lookup table to the query table makes the query table too large and unwieldy.
- The input contains multidimensional data (such as geospatial data).
- The input is a model (usually in JSON format) and a data set to analyze using the model.
For a discussion of this scenario, see Dimensional Input Use Case: Machine Learning.
Each of the preceding situations is a use case for a SQL-MapReduce function with multiple inputs, one of which is dimensional. The function can keep the dimensional input in memory (one instance on each vworker node) and repeatedly perform the same operation on each row of another input.