提示 - AWS Clean Rooms

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

提示

SQL 分析的提示提供最佳化指令,可引導 中的查詢執行策略 AWS Clean Rooms,讓您改善查詢效能並降低運算成本。提示會建議 Spark 分析引擎應如何產生其執行計畫。

語法

SELECT /*+ hint_name(parameters), hint_name(parameters) */ column_list FROM table_name;

提示使用註解樣式語法內嵌在 SQL 查詢中,且必須直接放置在 SELECT 關鍵字之後。

支援的提示類型

AWS Clean Rooms 支援兩種類型的提示:聯結提示和分割提示。

結合多個提示

您可以在單一查詢中指定多個提示,方法是使用逗號分隔它們:

-- Combine join and partitioning hints SELECT /*+ BROADCAST(d), REPARTITION(8) */ e.name, d.dept_name FROM employees e JOIN departments d ON e.dept_id = d.id; -- Multiple join hints SELECT /*+ BROADCAST(s), MERGE(d) */ * FROM employees e JOIN students s ON e.id = s.id JOIN departments d ON e.dept_id = d.id; -- Hints within separate hint blocks within the same query SELECT /*+ REPARTITION(100) */ /*+ COALESCE(500) */ /*+ REPARTITION_BY_RANGE(3, c) */ * FROM t;

考量和限制

  • 提示是最佳化建議,而不是命令。查詢最佳化工具可能會根據資源限制或執行條件忽略提示。

  • 提示直接內嵌在 CreateAnalysisTemplate 和 StartProtectedQuery APIs SQL 查詢字串中。

  • 提示必須直接放在 SELECT 關鍵字後面。

  • 使用提示不支援具名參數,並會擲回例外狀況。

  • REPARTITION amd REPARTITION_BY_RANGE 提示中的資料欄名稱必須存在於輸入結構描述中。

  • REBALANCE 提示中的資料欄名稱必須出現在 SELECT 輸出清單中。

  • 數值參數必須是介於 1 和 2147483647 之間的正整數。不支援 1e1 等科學表示法

  • 差異隱私權 SQL 查詢不支援提示。

  • PySpark 任務不支援 SQL 查詢的提示。若要在 PySpark 任務中提供執行計畫的指令,請使用資料框架 API。如需詳細資訊,請參閱 Apache Spark DataFrame API 文件