I am writing a query to correlate across two different indexes. One index has userID field. I want the query to match a field in the second index and output additional fields from the second index.
index 'idx1' has field name usr. For the sake of this example, there is a user called 'jdoe'
index 'idx2' has a field name called user, which contains 'jdoe' along with another field called account ID, which has the name spelled out 'John Doe'. I want the query to use the usr field content from idx1 and use that info to pull the contents of 'account ID' field in index.
What's the best way to accomplish this?
You could do that with join or append, but that would be a waste of resources. I simple disjunction will do.
(index=idx1 usr=*) OR (index=idx2 user=*)
``` Set the user field to user or usr, depending which exists in the event ```
| eval user = coalesce(user, usr)
``` Group events by user ```
| stats values(accountID) as accountID by user
| table user accountID
You could do that with join or append, but that would be a waste of resources. I simple disjunction will do.
(index=idx1 usr=*) OR (index=idx2 user=*)
``` Set the user field to user or usr, depending which exists in the event ```
| eval user = coalesce(user, usr)
``` Group events by user ```
| stats values(accountID) as accountID by user
| table user accountID