催化劑優化器

免費試用Databricks

Spark SQL的核心是Catalyst優化器,它以一種新穎的方式利用高級編程語言特性(例如Scala的模式匹配和準引號)來構建可擴展的查詢優化器。Catalyst基於Scala中的函數式編程結構,主要有以下兩個目的:

  • 輕鬆地向Spark SQL添加新的優化技術和特性
  • 允許外部開發人員擴展優化器(例如,添加數據源特定的規則,支持新的數據類型,等等)

催化劑優化圖Catalyst包含一個通用庫,用於表示樹並應用規則來操作它們。在此框架之上,它具有特定於關係查詢處理的庫(例如,表達式、邏輯查詢計劃),以及幾組處理查詢執行的不同階段的規則:分析、邏輯優化、物理規劃和將部分查詢編譯為Java字節碼的代碼生成。對於後者,它使用了另一個Scala特性,即準引號,這使得在運行時可以很容易地從可組合表達式生成代碼。Catalyst還提供了幾個公共擴展點,包括外部數據源和用戶定義的類型。此外,Catalyst支持基於規則和基於成本的優化。

    回到術語表
    Baidu
    map