Bashar, did get any other tips for improvement?
I am also trying to do the same thing, smaller table on BQ has 89K rowkey and trying to join with BQ External table of BT where the BT table has 250 million rowkeys. It is taking quite a while, I would have expected it to be able to use the rowkeys and directly hit the records on BT pretty fast, but it seems like it is doing a FULL-SCAN of BT.
Wondering if it is something to do with PREDICATE not being pushed to the query plan or some naming convention issue (although I have named the column as 'rowkey')