對SQL腳本進行在線開發、調試和執行,開發完成的腳本也可以在作業中執行(請參見開發作業)。
前提條件
- 已開通相應的云服務并在云服務中創建數據庫。Flink SQL腳本不涉及該操作。
- 已創建與腳本的數據連接類型匹配的數據連接,請參見新建數據連接。Flink SQL腳本不涉及該操作。
- 當前用戶已鎖定該腳本,否則需要通過“搶鎖”鎖定腳本后才能繼續開發腳本。新建或導入腳本后默認被當前用戶鎖定,詳情參見提交版本并解鎖章節中的“編輯鎖定功能”。
操作步驟
1.登錄DataArts Studio控制臺。選擇實例,點擊“進入控制臺”,選擇對應工作空間的“數據開發”模塊,進入數據開發頁面。
詳見下圖:選擇數據開發

2.在數據開發主界面的左側導航欄,選擇“數據開發 > 腳本開發”。
3.在腳本目錄中,雙擊腳本名稱,進入腳本開發頁面。
4.在編輯器上方,選擇如下表所示的屬性。創建Flink SQL腳本時請跳過此步驟。
SQL腳本屬性
| 屬性 | 說明 |
|---|---|
| 數據連接 | 選擇數據連接。 |
| 數據庫 | 選擇數據庫。 |
| 資源隊列 | 選擇執行DLI作業的資源隊列。當腳本為DLI SQL時,配置該參數。如需新建資源隊列,請參考以下方法: 單擊 ![]() ,進入DLI的“隊列管理”頁面新建資源隊列。前往DLI管理控制臺進行新建。 說明 DLI提供默認資源隊列“default”,該資源隊列不支持insert、load、cat命令。 如需以“key/value”的形式設置提交SQL作業的屬性,請單擊 ![]() 。最多可設置10個屬性,屬性說明如下:dli.sql.autoBroadcastJoinThreshold(自動使用BroadcastJoin的數據量閾值) dli.sql.shuffle.partitions(指定Shuffle過程中Partition的個數) dli.sql.cbo.enabled(是否打開CBO優化策略) dli.sql.cbo.joinReorder.enabled(開啟CBO優化時,是否允許重新調整join的順序) dli.sql.multiLevelDir.enabled(OBS表的指定目錄或OBS表分區表的分區目錄下有子目錄時,是否查詢子目錄的內容;默認不查詢) dli.sql.dynamicPartitionOverwrite.enabled(在動態分區模式時,只會重寫查詢中的數據涉及的分區,未涉及的分區不刪除) |
5.在編輯器中輸入SQL語句(支持輸入多條SQL語句)。
說明
需要注意,使用SQL語句獲取的系統日期和通過數據庫工具獲取的系統日期是不一樣,查詢結果存到數據庫是以YYYY-MM-DD格式,而頁面顯示查詢結果是經過轉換后的格式。
SQL語句之間以“;”分隔。如果其它地方使用“;”,請通過“\”進行轉義。例如:
select 1;
select * from a where b="dsfa\;"; --example 1\;example 2.
為了方便腳本開發,數據開發模塊提供了如下能力:
? 腳本編輯器支持使用如下快捷鍵,以提升腳本開發效率。
- Ctrl + /:注釋或解除注釋光標所在行或代碼塊
- Ctrl + S:保存
- Ctrl + Z:撤銷
- Ctrl + Y:重做
- Ctrl + F:查找
- Ctrl + Shift + R:替換
- Ctrl + X:剪切,光標未選中時剪切一行
- Alt + 鼠標拖動:列模式編輯,修改一整塊內容
- Ctrl + 鼠標點選:多列模式編輯,多行縮進
- Shift + Ctrl + K:刪除當前行
- Ctrl + →或Ctrl + ←:向右或向左按單詞移動光標
- Ctrl + Home或Ctrl + End:移至當前文件的最前或最后
- Home或End:移至當前行最前或最后
- Ctrl + Shift + L:鼠標雙擊相同的字符串后,為所有相同的字符串添加光標,實現批量修改
? 支持系統函數功能(當前Flink SQL、Spark SQL、ClickHouse SQL、Presto SQL不支持該功能)。
單擊編輯器右側的“系統函數”,顯示該數據連接類型支持的函數,您可以雙擊函數到編輯器中使用。
? 支持可視化讀取數據表生成SQL語句功能(當前Flink SQL、Spark SQL、ClickHouse SQL、Presto SQL不支持該功能)。
單擊編輯器右側的“數據表”,顯示當前數據庫或schema下的所有表,可以根據您的需要勾選數據表和對應的列名,在右下角點擊“生成SQL語句”,生成的SQL語句需要您手動格式化。
? 支持腳本參數(當前僅Flink SQL不支持該功能)。
在SQL語句中直接寫入腳本參數,調試腳本時可以在腳本編輯器下方輸入參數值。如果腳本被作業引用,在作業開發頁面可以配置參數值,參數值支持使用EL表達式(參見表達式概述)。
腳本示例如下,其中str1是參數名稱,只支持英文字母、數字、“-”、“_”、“<”和“>”,最大長度為16字符,且參數名稱不允許重名。
select ${str1} from data;
另外,對于MRS Spark SQL和MRS Hive SQL腳本的運行程序參數,除了在SQL腳本中參考語句“set hive.exec.parallel=true;”配置參數,也可以在對應作業節點屬性的“運行程序參數”中配置該參數。
詳見下圖:運行程序參數


? 支持設置腳本責任人
單擊編輯器右側的“腳本基本信息”,可設置腳本的責任人和描述信息。
6.(可選)在編輯器上方,單擊“格式化”,格式化SQL語句。創建Flink SQL腳本請跳過此步驟。
7.在編輯器上方,單擊“運行”。如需單獨執行某部分SQL語句,請選中SQL語句再運行。SQL語句運行完成后,在編輯器下方可以查看腳本的執行歷史、執行結果。Flink SQL腳本不涉及,請跳過該步驟。
說明
對于執行結果支持如下操作:
重命名:可通過雙擊執行結果頁簽的名稱進行重命名,也可通過右鍵單擊執行結果頁簽的名稱,單擊重命名。重命名不能超過16個字符。
可通過右鍵單擊執行結果頁簽的名稱關閉當前頁簽、關閉左側頁簽、關閉右側頁簽、關閉其它頁簽、關閉所有頁簽。
MRS集群為非安全集群、且未限制命令白名單時,在Hive SQL執行過程中,添加application name信息后,則可以方便的根據腳本名稱與執行時間在MRS的Yarn管理界面中根據job name找到對應任務。需要注意若默認引擎為tez,則要顯式配置引擎為mr,使tez引擎下不生效。
8.在編輯器上方,單擊
,保存腳本。
如果腳本是新建且未保存過的,請配置如下表所示的參數。
保存腳本
| 參數 | 是否必選 | 說明 |
|---|---|---|
| 腳本名稱 | 是 | 腳本的名稱,只能包含字符:英文字母、數字、中文、中劃線、下劃線和點號,且長度小于等于128個字符。 |
| 責任人 | 否 | 為該腳本指定責任人。默認為創建腳本的人為責任人。 |
| 描述 | 否 | 腳本的描述信息。 |
| 選擇目錄 | 是 | 選擇腳本所屬的目錄,默認為根目錄。 |
說明如果腳本未保存,重新打開腳本時,可以從本地緩存中恢復腳本內容。
下載或轉儲腳本執行結果
約束限制 :轉儲腳本執行結果功能依賴于OBS服務,如無OBS服務,則不支持該功能。
腳本運行成功后,您可以在執行結果頁簽下載或轉儲執行結果,僅支持具有擁有DAYU Administrator或Tenant Administrator權限的用戶下載和轉儲。
- 下載結果:下載CSV格式的結果文件到本地。
- 轉儲結果:轉儲CSV格式的結果文件到OBS中,請參見下表。
說明Flink SQL腳本、RDS SQL腳本、Shell腳本的執行結果,不支持轉儲。
轉儲結果
| 參數 | 是否必選 | 說明 |
|---|---|---|
| 數據格式 | 是 | 目前僅支持導出CSV格式的結果文件。 |
| 資源隊列 | 否 | 選擇執行導出操作的DLI隊列。當腳本為DLI SQL時,配置該參數。 |
| 壓縮格式 | 否 | 選擇壓縮格式。當腳本為DLI SQL時,配置該參數。 none bzip2 deflate gzip |
| 存儲路徑 | 是 | 設置結果文件的OBS存儲路徑。選擇OBS路徑后,您需要在選擇的路徑后方自定義一個文件夾名稱,系統將在OBS路徑下創建文件夾,用于存放結果文件。 |
| 覆蓋類型 | 否 | 如果“存儲路徑”中,您自定義的文件夾在OBS路徑中已存在,選擇覆蓋類型。當腳本為DLI SQL時,配置該參數。 覆蓋:刪除OBS路徑中已有的重名文件夾,重新創建自定義的文件夾。 存在即報錯:系統返回錯誤信息,退出導出操作。 |

,進入DLI的“隊列管理”頁面新建資源隊列。
。最多可設置10個屬性,屬性說明如下: