OPAL Join Verbs¶
Join verbs link multiple datasets together. They may generate more, fewer, or the same number of output rows as input rows, depending on the join condition and verb.
Join cost considerations¶
Joins are a powerful tool that can increase the amount of data collected and credits consumed. In order to keep your queries efficient, it is useful to check that the join being used is the most efficient one that will work for your use case.
From most expensive to least expensive:
- lookupor- leftjoinbetween two Resource or Interval datasets- This uses an interval overlapping band-join and an additional temporal left outer join. Prefer join to lookup in this case. 
 
- joinbetween two Resource or Interval datasets- This only uses an interval overlapping band-join 
 
- lookup,- leftjoin, or- joinbetween one Event and one Resource or Interval dataset (with or without window functions)
- joinor- leftjoinbetween two Event datasets with window functions- These all use a point-in-interval band-join 
 
- lookup,- leftjoin, or- joinbetween two Event datasets (without window functions), or between one Table and another dataset.- These use simple relational joins 
 
| Verb | Description | 
|---|---|
| Return the rows from the default dataset that have a match anywhere in the query time window. | |
| Return the rows from the additional joined dataset that have a match anywhere in the query time window. | |
| Return the rows from the joined dataset that do not have a match anywhere in the query time window. | |
| Temporal full join, adding new columns in the output dataset. | |
| Temporal inner join, adding new columns in the output dataset. | |
| Temporal left join, adding new columns in the output dataset. | |
| Find matching rows in a dataset, retrieving fields and adding them to the output dataset as new columns. | |
| Using a value or column of type IPv4, look up corresponding fields associated with the IP address. | |
| Return the rows from the default dataset that do not have a match anywhere in the query time window. | |
| Outer joins datasets by matching row time to a specified frame as well as column values. | |
| Create a new dataset consisting of the rows from the main input and each of the arguments. | |
| Augments the input Resource dataset using events from another dataset. |