共用方式為


Azure Data Lake Storage 查詢加速技術

查詢加速可讓應用程式和分析架構只擷取執行指定作業所需的數據,大幅優化數據處理。 這可減少取得所儲存數據的重要見解所需的時間和處理能力。

概觀

查詢加速接受篩選謂詞和數據列投影,使應用程式能夠在從磁碟讀取數據時篩選數據行和列。 只有符合述詞條件的數據會透過網路傳輸至應用程式。 這可降低網路等待時間和計算成本。

您可以使用 SQL 在查詢加速要求中指定資料行篩選條件和資料列投影。 要求只會處理一個檔案。 因此,不支援 SQL 的進階關係型功能,例如依匯總聯結和分組。 加速查詢支援 CSV 和 JSON 格式的數據作為每個請求的輸入。

查詢加速功能不僅限於 Data Lake Storage(已啟用階層命名空間的儲存帳戶)。 查詢加速功能與儲存帳戶中 啟用階層命名空間的 Blob 相容。 這表示當您處理已儲存為記憶體帳戶中 Blob 的數據時,可以達到相同的網路等待時間和計算成本。

如需如何在用戶端應用程式中使用查詢加速的範例,請參閱 使用 Azure Data Lake Storage 查詢加速來篩選數據

數據流

下圖說明一般應用程式如何使用查詢加速來處理數據。

查詢加速概觀

  1. 用戶端應用程式會藉由指定述詞和數據行投影來要求檔案數據。

  2. 查詢加速會解析指定的 SQL 查詢,並分配任務以解析和篩選數據。

  3. 處理器會從磁碟讀取數據、使用適當的格式剖析數據,然後套用指定的述詞和數據行投影來篩選數據。

  4. 查詢加速將回應資料分片結合起來,以串流的方式回傳至用戶端應用程式。

  5. 用戶端應用程式會接收並剖析串流回應。 應用程式不需要篩選任何其他數據,而且可以直接套用所需的計算或轉換。

以較低的成本提升效能

查詢加速可藉由減少應用程式傳輸和處理的數據量,來優化效能。

為了計算匯總值,應用程式通常會從檔案擷取 所有數據 ,然後在本機處理和篩選數據。 分析工作負載的輸入/輸出模式分析顯示,應用程式通常需要 20% 讀取的數據,才能執行任何指定的計算。 即使在套用分割剪枝等技術之後,此統計數據也是如此。 這意味著該數據的 80% 被不必要地透過網路傳輸、剖析和由應用程式篩選。 此模式是專為移除不必要的數據所設計,會產生顯著的計算成本。

雖然 Azure 具有領先業界的網路功能,但就輸送量和延遲而言,不需要透過該網路傳輸數據,對於應用程式效能而言仍成本高昂。 藉由在記憶體要求期間篩選掉不必要的數據,查詢加速會消除此成本。

此外,剖析和篩選不必要的數據所需的CPU負載需要您的應用程式布建更大的數目和較大的 VM,才能執行其工作。 藉由將此計算負載傳輸至查詢加速,應用程式可以大幅節省成本。

可受益於查詢加速的應用程式

查詢加速是專為分散式分析架構和數據處理應用程式所設計。

Apache Spark 和 Apache Hive 等分散式分析架構包含架構中的記憶體抽象層。 這些引擎也包含查詢優化器,可在判斷用戶查詢的最佳查詢計劃時,納入基礎 I/O 服務功能的知識。 這些架構正在逐步整合查詢加速功能。 因此,這些架構的使用者會看到改善的查詢延遲和較低的總擁有成本,而不需要對查詢進行任何變更。

查詢加速也是針對數據處理應用程式所設計。 這些類型的應用程式通常會執行大規模數據轉換,這些轉換可能不會直接導致分析深入解析,因此它們不一定會使用已建立的分散式分析架構。 這些應用程式通常與基礎記憶體服務有更直接的關係,因此它們可以直接受益於查詢加速等功能。

如需應用程式如何整合查詢加速的範例,請參閱 使用 Azure Data Lake Storage 查詢加速來篩選數據

定價

由於 Azure Data Lake Storage 服務內的計算負載增加,使用查詢加速的定價模式與一般 Azure Data Lake Storage 交易模型不同。 查詢加速會針對掃描的數據量以及傳回給呼叫端的數據量收取成本。 如需詳細資訊,請參閱 Azure Data Lake Storage 定價

儘管計費模式有所變更,查詢加速的定價方案旨在降低工作負載的總持有成本,因為能減少更昂貴的虛擬機器成本。

後續步驟