Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces a new type of table, connector, and join, to support use cases where we wish to enrich a stream by performing ad-hoc queries on another system (typically a DB or cache). We call these lookup joins, as we are joining a stream to another table via a query mechanism, as well as an initial Redis lookup connector.
It looks like this:
Here, we create a "temporary table"—implying that it's not fully materialized—backed by a Redis cache, with the Redis key specified via the metadata syntax introduced in 0.13. We then perform a join (in this case a left join, although inner is also supported) against it, causing a lookup into Redis for the specified key.
Lookup joins also optionally include a cache, which can be configured by the user with a TTL and/or a max size in bytes.
This PR also includes a refactor of the deserialization system to reduce the number of independent codepaths that handle metadata field deserialization and combines logic between JSON and non-JSON paths. This also fixed several corner cases where additional fields were not being injected properly in certain formats.
This addresses #820