Presto(即PrestoDB)是一款靈活、可擴充的分布式SQL查詢引擎,支援使用標準的SQL查詢語言進行巨量資料的互動式分析查詢,DataWorks為您提供EMR Presto節點,便於您在DataWorks上進行Presto任務的開發和周期性調度。本文為您介紹使用EMR Presto節點進行任務開發的主要流程和注意事項。
前提條件
已建立阿里雲EMR叢集,並註冊EMR叢集至DataWorks。操作詳情請參見新版資料開發:綁定EMR計算資源。
(可選,RAM帳號需要)進行任務開發的RAM帳號已被添加至對應工作空間中,並具有開發或空間管理員(許可權較大,謹慎添加)角色許可權,新增成員的操作詳情請參見為工作空間增加空間成員。
如果您使用的是主帳號,則可忽略該添加操作。
使用限制
僅支援舊版資料湖叢集(Hadoop),不支援新版資料湖叢集(DataLake)和自訂叢集(Custom)。
僅支援使用Serverless資源群組(推薦)或獨享調度資源群組運行該類型任務。
資料血緣:當前EMR Presto節點的任務不支援產出血緣關係。
操作步驟
在EMR Presto節點編輯頁面,執行如下開發操作。
開發SQL代碼
在SQL編輯地區開發工作單位代碼,您可在代碼中使用${變數名}的方式定義變數,並在節點編輯頁面右側調度配置的調度參數中為該變數賦值。實現調度情境下代碼的動態傳參,調度參數使用詳情,請參考調度參數支援格式,樣本如下。
select '${var}'; --可以結合調度參數使用。 select * from userinfo ;說明SQL語句最大不能超過130KB。
使用EMR Presto節點查詢資料時,返回的查詢結果最大支援10000條資料,並且資料總量不能超過10MB。
(可選)配置進階參數
您可在節點右側調度配置的中配置下表特有屬性參數。
說明更多開源Spark屬性參數,可在節點右側調度配置的中進行配置。
Hadoop叢集:EMR on ECS
進階參數
配置說明
DATAWORKS_SESSION_DISABLE
適用於開發環境直接測試回合情境。取值如下:
true:表示每次運行SQL語句都會建立一個JDBC Connection。false(預設值):表示使用者在一個節點裡運行不同的SQL語句時會複用同一個JDBC Connection。
說明該參數配置為
false時不會列印Hive的yarn applicationId,如需列印yarn applicationId,可將該參數配置為true。FLOW_SKIP_SQL_ANALYZE
SQL語句執行方式。取值如下:
true:表示每次執行多條SQL語句。false(預設值):表示每次執行一條SQL語句。
說明該參數僅支援用於資料開發環境測試回合流程。
priority
優先順序,預設為1。
queue
提交作業的調度隊列,預設為
default隊列。關於EMR YARN說明,詳情請參見隊列基礎配置。執行SQL任務
在調試配置的計算資源中,選擇配置計算資源和DataWorks資源群組。
說明您還可以根據任務執行所需的資源情況來調度 CU。預設CU為
0.25。訪問公用網路或VPC網路環境的資料來源需要使用與資料來源測試連通性成功的調度資源群組。詳情請參見網路連通方案。
在工具列的參數對話方塊中選擇對應的資料來源,單擊運行SQL任務。
如需定期執行節點任務,請根據業務需求配置調度資訊。配置詳情請參見節點調度。
節點任務配置完成後,需對節點進行發布。詳情請參見節點/工作流程發布。
任務發布後,您可以在營運中心查看周期任務的運行情況。詳情請參見營運中心入門。
常見問題
Q:出現Error executing query?

A:請確保叢集類型為舊版Hadoop資料湖叢集。
Q:節點運行出現連線逾時?
A:請確保資源群組和叢集的網路聯通。請進入計算資源的列表頁,單擊資源初始化,在彈窗中單擊再次初始化,確保成功初始化。

