簡體   English   中英

AWS Athena上的SEMI JOIN

[英]SEMI JOIN on AWS Athena

我想知道是否有一種方法可以在AWS Athena(托管的presto)上使用SEMI JOIN。 我想嘗試減少掃描的數據/提高查詢性能。

就我而言,我知道聯接的一側恰好有一行,並且我想是否有一種方法可以指示引擎有關此信息……

如果您發布了一個示例,說明您想實現什么以及如何進行過多掃描,這將很有幫助。 您的問題很廣泛,很難回答。

如果我對您的理解正確,我認為您可以通過執行以下操作來達到您所指的目的:

SELECT *
FROM table1
WHERE something IN (SELECT something FROM table2 WHERE col1 = 'the thing' LIMIT 1)

但是,是否要減少掃描的數據量取決於您的具體情況。 上面查詢背后的想法是,確保Athena僅掃描table2直到找到您要加入的特定行。如果不走運,它仍將掃描整個表,因為它找不到值,或者該值在末尾。

您也可以使用… WHERE EXISTS (SELECT … ,但是根據此Presto問題,它被轉換為聯接,並可能意味着讀取了整個表-盡管使用LIMIT可能不是這種情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM