Here's the answer I got from reddit: If you are joining the tables, Tableau brings the data into Hyper for federation, same happens for blends
A lot depends on exactly how you're doing it.
Is that custom SQL, running when you connect to the 2 source data stores?
Or is that your pseudo-code that mimics what you're doing with Tableau in the Data Source tab of a workbook?
If it's custom SQL, Tableau sends it to the source system and waits for a response. (That's a little oversimplified but close enough.) The "smarts" are all in the source system.
If you're doing a live connection without Custom SQL, then Tableau is generating the queries to pull that data back and manipulate it within Tableau. That manipulation happens within Tableau's own in-memory NoSQL database (Hyper) (that's what Blaine is referring to).
You can find the SQL that Tableau generates in the logs if you know where to look.
>is that your pseudo-code
Yes, it's pseudo code that I created to represent what could be happening within a workbook. Given a situation like this, where 2 different data sources are used, it seems to me like Tableau will do 2 full table scans on each database, load each result set into Hyper, then do a JOIN operation in Hyper.
OK - it's likely that it's doing SOMETHING like what you've assumed, but there are a lot of variables.
Generally speaking, if you're doing a live connection with join, then Tableau has to go get the data from both sides of the join, then perform the join after all the data has been returned.
I'd strongly suggest looking at the logs to see exactly what the queries look like.