全部產品
Search
文件中心

DataWorks:資料推送

更新時間:Nov 12, 2024

資料推送功能是DataWorks提供的一項資料服務,通過SQL查詢資料來源擷取資料並將其推送至Webhook。可以通過簡單配置,實現定期將所需的業務資料推送至多個不同的Webhook。本文將為您介紹資料推送功能的配置與使用。

資料推送簡介

DataWorks提供了資料推送服務,該服務可以建立推送任務,在任務內編寫單表或多表查詢的SQL代碼來圈定資料範圍,並添加富文本或表格等內容來組織推送訊息的內容。可以通過配置周期任務,定時將資料推送至目標Webhook中。

支援的資料來源類型與推送渠道

  • 支援推送的資料來源類型:

    • MySQL(相容StarRocks/Doris)

    • PostgreSQL(相容Snowflake/Redshift)

    • Hologres

    • MaxCompute(ODPS)

    • ClickHouse

  • 支援的推送渠道:DingTalk群、飛書群、企業微信群以及Teams。

資料推送服務使用限制

  • 資料推送功能推送至不同對象時的資料大小限制:

    • 推送目標為DingTalk,推送資料大小不超過20KB

    • 推送目標為飛書,推送資料大小不超過30KB,圖片小於10MB

    • 推送目標為企業微信,每個機器人發送的訊息不能超過20條/分鐘

    • 推送目標為Teams,推送大小不大於28KB

    說明

    DingTalk移動端和企業微信暫不支援Markdown中定義的表格的渲染,建議在推送內容中使用表格組件來展示資料內容。飛書與Teams移動版支援正常展示Markdown中定義的表格。

  • 僅以下地區的DataWorks工作空間可使用資料推送功能:華東1(杭州)、華東2(上海)、華北2(北京)、華南1(深圳)、西南1(成都)、新加坡、美國(矽谷)、美國(維吉尼亞)。

前提條件

在支援地區已建立資料來源。DataWorks建立資料來源具體操作,請參見建立並管理資料來源

操作步驟

步驟一:建立資料推送任務

步驟二:配置資料推送任務

步驟三:資料推送設定

步驟四:測試資料推送任務

步驟五:發布推送任務

步驟一:建立資料推送任務

  1. 進入資料服務。

    登入DataWorks控制台,切換至資料來源所在地區,單擊左側導覽列的資料服務,在下拉框中選擇對應工作空間後單擊進入資料服務

  1. 建立資料推送任務。

    資料服務的左側導覽列中,單擊服務開發 > 資料推送切換到資料推送頁下,單擊image選擇建立資料推送,設定資料推送任務名稱後,單擊確定,進入資料推送任務配置頁面。

    image

步驟二:配置資料推送任務

準備工作(可選)

為了便於您快速完成資料推送,後續內容將以MaxCompute表資料查詢結果推送為例進行說明,本樣本中,使用表名為sales,通過資料推送功能將每日每部門銷售金額,以及銷售金額相較於前一天的變化量,推送至指定渠道,如需實操,請提前在對應環境準備好sales表,以下為sales表的建表與資料插入語句。建表詳情請參見建立並使用MaxCompute表

CREATE TABLE IF NOT EXISTS sales (
    id BIGINT COMMENT '唯一識別碼',
    department STRING COMMENT '部門名稱',
    revenue DOUBLE COMMENT '收入金額'
) PARTITIONED BY (ds STRING);

-- 插入樣本資料到分區
INSERT INTO TABLE sales PARTITION(ds='20240101')(id, department, revenue ) VALUES (1, '部門1', 12000.00);
INSERT INTO TABLE sales PARTITION(ds='20240101')(id, department, revenue ) VALUES (2, '部門2', 21000.00);
INSERT INTO TABLE sales PARTITION(ds='20240101')(id, department, revenue ) VALUES (3, '部門3', 5000.00);
 
INSERT INTO TABLE sales PARTITION(ds='20240102')(id, department, revenue ) VALUES (1, '部門1', 11000.00);
INSERT INTO TABLE sales PARTITION(ds='20240102')(id, department, revenue ) VALUES (2, '部門2', 20000.00);
INSERT INTO TABLE sales PARTITION(ds='20240102')(id, department, revenue ) VALUES (3, '部門3', 10000.00);

選擇資料來源

選擇需要進行資料推送的資料來源類型資料來源名稱,以及資料來源環境(您可根據本次資料推送的開發表還是生產表來選擇資料來源環境),確定需要進行資料推送的資料表所在環境。若您需要實操,請確認您準備工作階段建立的sales表所在環境。

image

說明

目前資料推送支援的資料來源類型,請參見支援的資料來源類型與推送渠道

編寫查詢SQL

  • 圈定資料推送範圍與擷取資料。

    編寫查詢SQL模組,可以通過單表或多表查詢SQL來圈定資料推送內容,例如:

    -- 擷取20240102各部門銷售金額
    SELECT id, department, revenue FROM sales WHERE ds='20240102';
    -- 擷取相較於前一天銷售金額的變化量
    SELECT  a.revenue - b.revenue AS diff FROM sales a LEFT JOIN sales b ON a.id = b.id AND a.ds > b.ds WHERE a.ds = '20240102'AND b.ds = '20240101';

    SQL自訂完成後,SQL返回結果欄位將自動填入參數 > 輸出參數。若輸出參數失敗或有誤,您可以關閉自動解析參數,手動新增參數

    image

    您還可以通過${變數名}的方式在SQL中配置自訂變數,該變數為賦值參數賦值參數可賦值時間運算式及常量),從而實現代碼動態入參,可參見配置推送內容

    -- 結合調度參數實現時間變數的動態賦值。
    -- 每天擷取最新的各部門銷售金額
    SELECT id, department, revenue FROM sales WHERE ds='${date}';
    -- 同時擷取相較於前一天銷售金額的變化量
    SELECT a.revenue - b.revenue AS diff FROM sales a LEFT JOIN sales b ON a.id = b.id  and  a.ds > b.ds WHERE a.ds = '${date}' AND b.ds = '${previous_date}';

    image

  • 分段查詢。

    當資料表量龐大的情境下,資料推送支援您通過 Next Token 方式分段查詢資料。您可點擊代碼編輯工具列中的代碼協助 > 代碼模板 > Next Token查看使用說明。

配置推送內容

推送內容模組,您可以通過Markdown表格等方式編輯訊息內容,該訊息內容為推送至Webhook上的內容。

標題欄自訂訊息標題後,在本文欄單擊新增,即可選擇通過Markdown表格來編輯推送內容。以下為樣本配置,您可以點擊工具列中的預覽查看推送樣式。

Markdown內容模組

  • 使用參數變數:在資料推送內容編寫中,可以將賦值參數輸出參數,以${參數名稱}添加至富文本中,在資料推送任務運行時替換成相應的賦值資料或SQL的查詢結果。

    • 賦值參數:需要在參數 > 賦值參數處為變數賦值常量或調度參數的時間運算式

    • 輸出參數:為SQL查詢中SELECT A,B… FROM TABLE中的A,B…欄位名或欄位別名,是查詢出來的資料。

  • @相應成員:可以在推送至飛書Webhook時配置,實現自動@對應人員的功能。

    • Markdown模式預設採用富文本形式配置訊息內容,在推送至飛書時使用@功能提醒相關人員查看訊息,您可點擊image切換至Markdown源碼模式,通過<at id="all" /><at email="username@example.com" />可以實現。

  • Markdown除以上功能外,還支援添加圖片、插入DingTalkEmoji等功能。image

表格內容模組

  • 單擊新增一列,增加表格列數,可將參數關聯在對應列上。

  • 在推送目標為飛書Webhook時,單擊建立好的表格列右側,單擊image開啟修改欄位資訊對話方塊,對話方塊內,可以調整目前欄位展示名展示樣式以及條件,實現推送內容顯示效果的多樣性。

    • 目前欄位:可切換成其他輸出參數欄位。

    • 展示名:以表格形式推送至辦公軟體時,期望展示在表頭的名稱。

    • 展示樣式:給表格具體值前或值後添加固定展示的首碼或尾碼。

    • 條件:將表格具體值與配置的比較數值進行比較,可自訂符合不符合時數值展示顏色,以及附加標示符image

    說明
    • 不同渠道的表格撰寫方式不同,不同渠道推送支援表格內容如下:

      • DingTalk:支援Markdown表格和資料推送內建表格,不支援展示修改欄位資訊彈窗中對欄位配置的展示樣式條件的顯示效果,但DingTalk移動端:不支援顯示錶格。

      • 飛書:支援資料推送Markdown表格和資料推送內建表格,可對錶格進行渲染。

      • 企業微信:支援推送Markdown表格,但不支援對Markdown表格進行渲染。

      • Teams移動端:支援資料推送Markdown,可對錶格進行渲染。

步驟三:資料推送設定

建立資料推送目標

在配置推送設定前,需要先在服務開發頁面的左下角單擊image彈出設定頁面,切換至推送目標管理頁簽,單擊建立資料推送目標建立需要推送的目標。

建立資料推送目標時,需要如下配置:

  • 類型:選擇需要推送的渠道類型。

  • 對象名稱:自訂需要建立的推送目標名稱。

  • Webhook:所選推送渠道中的Webhook連結。

說明

image

推送設定

單擊右側推送設定即可設定推送任務的調度周期配置,調度資源配置以及推送目標配置,可實現資料推送任務按配置調度周期進行推送。具體的配置項有:

  • 調度周期已耗用時間配置:用以配置資料推送服務推送編輯好的推送內容的調度周期與調度的具體時間。

    調度周期

    指定時間

    調度時間

    範例

    指定在每月內哪些天運行該推送任務

    推送日內,該資料推送任務的調度時間

    調度周期:月

    指定時間:每月1號

    調度時間:08:00

    實際已耗用時間:每月1日的08:00該推送任務會運行。

    指定在每周內哪些天運行該推送任務

    推送日內,該資料推送任務的調度時間

    調度周期:周

    指定時間:星期一

    調度時間:09:00

    實際已耗用時間:每周星期一09:00該推送任務會運行。

    說明

    日周期為每日調度。

    推送日內,該資料推送任務的調度時間

    調度周期:日

    調度時間:08:00

    實際已耗用時間:每天08:00該推送任務會運行。

    小時

    說明

    可選擇兩種推送模式:

    • 按小時的時間間隔進行推送。

    • 按指定的小時和分鐘進行推送。

    按小時的時間間隔進行推送

    開始時間:00:00

    時間間隔:1小時

    結束時間:23:59

    實際已耗用時間:每天從00:00-23:59每小時推送一次。

    按指定的小時和分鐘進行推送

    指定小時:0時、1時

    指定分鐘:10分

    實際已耗用時間:每天的00:10與01:10各推送一次。

  • 逾時定義:可限制資料推送在開始運行後的時間長度,若超出配置的時間長度,則終止任務運行。

    • 系統預設:在系統預設狀態下會根據負載情況動態調整任務逾時定義,取值範圍為3至7天不等。逾時任務將被終止運行。

    • 範例自訂逾時時間為1小時,推送任務達到推送時間點後超出1小時,該任務會被終止運行。

  • 生效日期:配置當前資料推送任務的生效時間,如果當前系統時間在配置的生效日期範圍之外,任務將不會被自動調度運行。

    • 永久生效:資料推送任務將永久生效,不受生效日期限制。

    • 範例:配置指定時間範圍為2024-01-01至2024-12-31時,該推送任務會在指定時間段內,按照配置的調度周期進行推送。

  • 調度資源群組:可配置獨享調度資源群組Serverless資源群組(通用型資源群組),為資料推送任務提供調度資源群組。資源群組詳情可參見:資源群組管理

  • 資料推送目標:可將資料推送服務的已配置好的內容,推送至所選擇的對象,只可以選擇已建立好的推送目標,推送目標在資料推送管理處進行配置。

    說明

    推送至DingTalkWebhook時,需要添加推送機器人配置時在安全設定 > 自訂關鍵詞中配置關鍵詞,並且確保推送內容中包含該關鍵詞才可推送成功。

image

步驟四:測試資料推送任務

建立好資料推送任務後,您可以單擊工具列上的儲存按鈕,儲存當前配置,然後單擊測試進行開發態測試,用來測試資料推送是否可以正常推送。需要您手動為變數賦值常量。

image

說明

資料推送任務推送提交發布前,必須通過開發態測試推送,才可正常提交發布。

步驟五:發布推送任務

管理資料推送任務版本

  1. 確認開發過程中的測試無誤後,請您點擊提交,若未提交推送任務,則推送任務只處於草稿狀態,不會產生新的版本。

  2. 在提交服務後,會產生新版本,在右側版本面板內找到已提交且可發布的版本,單擊發布,即可將該資料推送任務進行發布,實現按推送設定的配置進行周期推送。

    版本面板內可以對資料推送任務進行如下管理。

    任務狀態

    操作

    說明

    發布

    資料推送管理

    點擊跳轉至資料推送管理頁面,可以查看已經上線的任務詳細資料,可參見管理資料推送任務

    可發布

    發布

    將對應版本的任務進行發布。

    廢棄

    廢棄對應版本的任務,並將任務狀態切換為廢棄

    離線廢棄

    版本詳情

    查看對應版本資料推送任務的配置資訊以及相應推送內容。

    復原

    復原到對應版本。

    說明

    版本詳情復原兩種操作在任務的所有狀態下都存在且功能一致。

    image

管理資料推送任務

在資料推送任務發布成功後,在版本面板內的操作列單擊資料推送管理或以服務管理 > 資料推送管理路徑來到資料推送任務列表頁面。

該頁面內可查看所有發行的資料推送任務,並展示其任務ID名稱資料來源名稱資料來源環境節點模式調度資源群組負責人發布人以及最後發布時間,並且在操作列對已發佈資料推送任務做如下操作:

操作類型

說明

下線

下線選中任務。

測試

跳轉至資料推送測試,可以對已上線的任務進行測試。

說明

單擊名稱列的image即可跳轉至所選任務的版本詳情頁面。

image

測試已上線資料推送任務

資料推送任務上線後,資料推送任務會根據您配置的推送設定,推送內容至指定的推送目標,您可以通過以下兩種方式進入資料推送測試頁面

  • 方式一服務管理 > 資料推送測試

  • 方式二服務管理 > 資料推送管理 > 資料推送任務

通過測試已上線的資料推送任務,可以確認資料推送任務是否能夠正常推送資料,以及推送目標是否可以正常接收資料。

image