謂詞下推:計算和儲存分開進行分析是低效的?

banq發表於2022-02-03

將計算和儲存分開進行分析是非常低效的,也許我們應該支援謂詞和投影下推到儲存?
謂詞下推predicate pushdown是指提取 where 子句條件並使用它們修剪您從磁碟讀取的資料的最佳化(從執行引擎“下推”到儲存層/引擎)。可以大幅減少 I/O、快取流失和/或網路 I/O。包括啟用 AI 的謂詞下推。
謂詞下推的名字來自於SQL語句的一部分,那些過濾資料的語句,被稱為謂詞。它們之所以被稱為謂詞,是因為數理邏輯中的謂詞和SQL中的子句是同一種東西:對於不同的變數或資料值,可以是真或假的語句。
它可以透過減少從儲存檔案讀取的資料量(I/O)來提高查詢效能。資料庫程式根據儲存檔案中的後設資料評估查詢中的過濾謂詞。
 

謂詞下推是如何幫助處理規模化資料的?
後設資料可以幫助儲存那些與讀有關的檔案。
如果你在一個地方發出一個查詢,針對在另一個地方的大量資料執行,你可能會產生大量的網路流量,這可能是緩慢而昂貴的。但是......。
......如果你能將部分查詢 "下推 "到資料儲存的地方,從而過濾掉大部分的資料,那麼你就能大大減少網路流量。
鑑於儲存後設資料,"向下推 "幫助我們決定哪些檔案是相關的,哪些是不相關的。
 
Apache Spark 已經支援謂詞下推用於 Apache Parquet 和 RDBMS。從 Apache Spark 3.1.1 開始,您還可以將它們用於 Apache Avro、JSON 和 CSV 格式!
 

相關文章