Lookup table data output

This article provides an introduction to lookup tables along with a guide to how to create a lookup table output using Upsolver.

What are lookup tables?

Lookup tables are a key-value store for faster lookups by key (e.g. use a lookup table to get all users who clicked on a specific ad in a specific timeframe).

Lookup tables are useful for:

An Upsolver lookup table replaces ETL code and a serving database like Redis or Cassandra.

When a lookup table is defined as real time, instead of waiting until the data is written to S3 and to the disk, the event’s details (the deltas) are updated directly in-memory and only then stored in S3.

You can easily create a lookup table based on any of your existing data sources using one or more keys and one or more aggregations.

Aggregations are functions that group multiple events together to form a more significant result. An aggregation function can return a single value or a hash table. For example, MAX stores the maximum value for the selected stream data for each key value for the selected window period.

Unlike databases, Upsolver runs continuous queries and not ad-hoc queries. Therefore, aggregation results are incrementally updated with every incoming event.

You can also:

  • Apply filters to your lookup table.

    • These are equivalent to SQL WHERE clause.

  • Enrich your lookup table using calculated fields.

    • This enables you to transform your data using a variety of built-in formulas such as:

      • Running a regular expression.

      • Performing a mathematical operation.

      • Extracting structured information from your raw User-Agent data.

  • Add lookups to further enrich your lookup table.

Create a lookup table data output

1. Go to the Outputs page and click New.

2. Select Lookup Table as your output type.

3. Name your output and select your Data Sources, then click Next.

Click Properties to review this output's properties. See: Output properties

How many of the events in this data source include this field, expressed as a percentage (e.g. 20.81%).

The percentage distribution of the field values. These distribution values can be exported by clicking Export.

The number of fields in the selected hierarchy.

Toggle from UI to SQL at any point to view the corresponding SQL code for your selected output.

You can also edit your output directly in SQL. See: Transform with SQL

7. Add any required calculated fields and review them in the Calculated Fields tab. See: Adding Calculated Fields

8. Add any required lookups and review them under the Calculated Fields tab.

9. In the Filters tab, add a filter such as WHERE in SQL to the data source. See: Adding Filters

10. Click Make Aggregated to turn the output into an aggregated output. Read the warning before clicking OK and then add the required aggregation. This aggregation field will then be added to the Schema tab. See: Aggregation Functions

11. In the Aggregation Calculated Fields area under the Calculated Fields tab, add any required calculated fields on aggregations. See: Functions, Aggregation Functions

Click Preview at any time to view a preview of your current output.

12. Click Run and fill out the following fields:

  • Query Cluster: See warning below

  • Cloud Storage: Where Upsolver stores the intermediate bulk files before loading

  • Retention: A retention period for the data in Upsolver; after this amount of time elapsed the data will be deleted forever

See: Running an Output

The default query cluster runs internal operations but does not allow external querying from the API server, only a sample of the data is loaded. If the data exceeds 16 MB, some keys will not return.

To query the full data, you should create a query cluster and connect it with the lookup table. See: How to create a query cluster

14. Click Next and complete the following:

Select the compute cluster to run the calculation on. Alternatively, click the drop-down and create a new compute cluster.

15. Finally, click Deploy to run the output. It will show as Running in the output panel and is now live in production and consumes compute resources.

Note: You can edit the contents of a new lookup table only if it has not yet run.

Once a lookup table has run, it cannot be edited. Instead duplicate the lookup table and edit the copy. See: Duplicating an output

Last updated