數(shù)據批處理(lǐ)

介紹

此功能更新于4.1.0版本,如果之前部署過4.0.x版本需要根據4.0.xto4.1升級說明(míng)操作(zuò)。

數(shù)據批處理(lǐ)主要滿足從數(shù)據源中直接拉取業務數(shù)據,調用知識包進行(xíng)規則計(jì)算(suàn),最終将知識包輸出的數(shù)據再輸出到配置的數(shù)據表中。

undefined

undefined

數(shù)據批處理(lǐ)-基本配置

在【設計(jì)規則】頁面的菜單中選擇【批處理(lǐ)】,打開(kāi)數(shù)據批處理(lǐ)管理(lǐ)頁面。

undefined

在數(shù)據批處理(lǐ)管理(lǐ)頁面,點擊【添加批處理(lǐ)】打開(kāi)新建數(shù)據批處理(lǐ)配置頁面。

undefined

勾選顯示其他設置,可(kě)修改默認配置

undefined

  • 異常數(shù)限制(zhì): 默認值是0,處理(lǐ)數(shù)據時(shí)遇發生(shēng)異常的數(shù)量達到設置的值時(shí),整個(gè)數(shù)據批處理(lǐ)任務停止,并設置執行(xíng)失敗。
  • 異步:默認是異步,可(kě)以設置回調URL,即數(shù)據批處理(lǐ)任務執行(xíng)完時(shí)會(huì)調用回調URL,不設置不調用。如果将異步勾選去掉,數(shù)據批處理(lǐ)任務将以同步狀态執行(xíng),即請(qǐng)求觸發任務後,等處理(lǐ)完返回結果。
  • 是否啓用多(duō)線程處理(lǐ): 默認啓用,默認開(kāi)啓10線程,單個(gè)線程每次獲取數(shù)據1000條。不啓用将以單線程執行(xíng)任務。
  • 啓用REST: 默認不啓用,是否開(kāi)放HTTP Restful接口方式觸發數(shù)據批處理(lǐ)任務。

數(shù)據批處理(lǐ)-批處理(lǐ)參數(shù)配置

批處理(lǐ)參數(shù)是在觸發批處理(lǐ)任務時(shí),動态傳入的參數(shù)。可(kě)用于加載數(shù)據拼接SQL時(shí)使用,或者作(zuò)為(wèi)知識包參數(shù)入參使用。

undefined

數(shù)據批處理(lǐ)-知識包配置

點擊知識包ID的【...】或者雙擊文本框,選取知識包

undefined

undefined

選取好知識包後,知識包有(yǒu)參數(shù)需要綁定批處理(lǐ)參數(shù)可(kě)以通(tōng)過【添加參數(shù)】手動添加,或者通(tōng)過【批量添加參數(shù)】選取知識包中參數(shù)進行(xíng)添加。

undefined

undefined

數(shù)據批處理(lǐ)-數(shù)據加載配置

基本配置讀取數(shù)據信息

  • 數(shù)據源: 選取數(shù)據源管理(lǐ)中配置的數(shù)據源,作(zuò)為(wèi)加載數(shù)據的數(shù)據庫
  • 分頁SQL: 加載數(shù)據用的SQL語句,SQL語句可(kě)拼如動态參數(shù),格式為(wèi) :parameter
  • 總記錄數(shù):提供查詢加載總記錄數(shù)的SQL

undefined

數(shù)據加載參數(shù)

配置好SQL後,如果SQL中有(yǒu)動态參數(shù),可(kě)以通(tōng)過【添加參數(shù)】手動添加,或者通(tōng)過【批量添加參數(shù)】解析SQL中參數(shù)進行(xíng)添加。

undefined

添加參數(shù)後,需要設置與批處理(lǐ)參數(shù)的綁定關系,這樣在觸發數(shù)據批處理(lǐ)任務是傳入的批處理(lǐ)參數(shù),就可(kě)以動态拼入SQL

undefined

變量映射

加載的數(shù)據要與知識包當中的變量進行(xíng)映射配置:

  • 選擇知識包中需要映射的變量,因為(wèi)一條數(shù)據将作(zuò)為(wèi)調用知識包的入參進行(xíng)知識包調用。

undefined

  • 選擇知識包中的變量後,可(kě)以通(tōng)過【添加變量映射】手動添加變量屬性和(hé)SQL字段的映射,或者通(tōng)過【批量添加變量映射】批量選取變量屬性,如果SQL字段的類型名稱和(hé)類型與變量屬性一緻,會(huì)自動進行(xíng)綁定,如不一緻需要通(tōng)過字段下拉框選擇。

undefined

undefined

數(shù)據批處理(lǐ)-數(shù)據保存配置

  • 數(shù)據源: 選取數(shù)據源管理(lǐ)中配置的數(shù)據源,作(zuò)為(wèi)輸出保存數(shù)據的數(shù)據源
  • 事務範圍:保存數(shù)據時(shí),使用的事務類型,默認是Page。
    • Batch:是整個(gè)數(shù)據批處理(lǐ)任務作(zuò)為(wèi)一個(gè)事務提交保存,如果遇到錯誤,将整體(tǐ)回滾保存數(shù)據。
    • Page:是以分頁批次的數(shù)據作(zuò)為(wèi)一個(gè)事務提交保存,如果遇到錯誤,将此頁批次數(shù)據回滾保存數(shù)據。
    • Record:是以單條數(shù)據作(zuò)為(wèi)一個(gè)事務提交保存,如果遇到錯誤,不會(huì)對其他已提交數(shù)據産生(shēng)影(yǐng)響。

數(shù)據量大(dà)的批處理(lǐ)任務,從持久化數(shù)據層面,效率 Page > Batch >Record

添加保存項

保存數(shù)據配置中,可(kě)以針對一次知識包計(jì)算(suàn)的輸出配置多(duō)個(gè)保存項,用于将輸出數(shù)據保存到多(duō)個(gè)表中。

點擊【添加保存項】按鈕,新增保存項的目标表與保存類型信息。

undefined

配置保存項添加知識包輸出數(shù)據與表字段映射,可(kě)以通(tōng)過【添加變量映射】手動添加,或者通(tōng)過【批量添加變量映射】選取知識包中變量或者參數(shù)。

undefined

undefined

如果保存項的更新類型是update、delete,變量映射的屬性中需要設置主鍵key。

設置保存項的數(shù)據過濾

知識包輸出數(shù)據不一定所有(yǒu)的數(shù)據都需要保存到數(shù)據庫 ,可(kě)以設置數(shù)據過濾,符合條件的才執行(xíng)保存數(shù)據的操作(zuò)。

在保存項上(shàng)右鍵菜單中選擇【設置數(shù)據過濾】

undefined

知識包輸出數(shù)據如不符合設置條件的記錄将不會(huì)提交保存

undefined

數(shù)據批處理(lǐ)-觸發調用

配置完成的批處理(lǐ)需要右鍵【啓用】,才能外部觸發執行(xíng)。調用方式有(yǒu)兩種:Java SDK調用和(hé)REST調用

Java SDK調用

通(tōng)過 BatchServiceManager.execute(Long batchId, Map<String, Object> params) 調用。

REST調用

在當前批處理(lǐ)右鍵點擊【Rest服務配置】

undefined

undefined

勾選【啓用REST】将允許當前數(shù)據批處理(lǐ)允許觸發調用。

Rest接口如果需要安全驗證,可(kě)勾選【安全驗證】,填寫驗證用的用戶名和(hé)密碼,調用方需在HTTP Head中添加username和(hé)password

啓用REST後,可(kě)通(tōng)過【查看Rest服務描述】查看Rest接口的輸入、輸出和(hé)調用接口Url等信息。

{
    "output": {
        "fields": [
            {
                "dataType": "Long",
                "name": "batchId",
                "label": "批處理(lǐ)ID"
            },
            {
                "dataType": "String",
                "name": "batchName",
                "label": "批處理(lǐ)名稱"
            },
            {
                "dataType": "DateTime",
                "name": "startTime",
                "label": "開(kāi)始時(shí)間(jiān)"
            },
            {
                "dataType": "DateTime",
                "name": "endTime",
                "label": "結束時(shí)間(jiān)"
            },
            {
                "dataType": "String",
                "name": "ip",
                "label": "IP"
            },
            {
                "dataType": "Integer",
                "name": "readCount",
                "label": "讀取的記錄總數(shù)"
            },
            {
                "dataType": "Integer",
                "name": "filterCount",
                "label": "過濾記錄數(shù)"
            },
            {
                "dataType": "String",
                "name": "status",
                "label": "狀态"
            },
            {
                "dataType": "String",
                "name": "msg",
                "label": "信息"
            },
            {
                "dataType": "String",
                "name": "itemResults",
                "label": "保存項明(míng)細",
                "fields": [
                    {
                        "dataType": "String",
                        "name": "name",
                        "label": "保存項名稱"
                    },
                    {
                        "dataType": "Integer",
                        "name": "readCount",
                        "label": "讀取的記錄總數(shù)"
                    },
                    {
                        "dataType": "Integer",
                        "name": "filterCount",
                        "label": "過濾記錄數(shù)"
                    },
                    {
                        "dataType": "Integer",
                        "name": "writeCount",
                        "label": "寫入記錄總數(shù)"
                    },
                    {
                        "dataType": "String",
                        "name": "tableName",
                        "label": "物理(lǐ)表"
                    },
                    {
                        "dataType": "String",
                        "name": "updateMode",
                        "label": "更新類型"
                    }
                ]
            }
        ],
        "clazz": "com.bstek.urule.console.batch.BatchResult"
    },
    "input": [
        {
            "name": "code",
            "label": "編号",
            "dataType": "String"
        }
    ],
    "url": "http://localhost:8181/urulepro4/urule/batch/1501",
    "authentication": false
}

在上(shàng)面的JSON格式調用描述數(shù)據當中,“input”和(hé)“output”屬性值分别表示輸入和(hé)輸出數(shù)據,“url”表示的是調用的當前數(shù)據批處理(lǐ)URL;“authentication”屬性值表示的是當前Restful服務調用是否需要用戶名密碼驗證,如果值是false,表示不需要驗證。

  • input:代表當前數(shù)據批處理(lǐ)配置了批處理(lǐ)參數(shù),調用接口時(shí)需要傳入。
  • output:是調用後返回的數(shù)據,其中包含讀取數(shù)據源讀取數(shù)據總數(shù)、保存數(shù)據總數(shù)、過濾提交保存數(shù)、執行(xíng)時(shí)間(jiān)等信息。

可(kě)通(tōng)過【REST調用】功能,進行(xíng)快速觸發當前數(shù)據批處理(lǐ),如果設置的是同步執行(xíng),提交觸發後将處理(lǐ)結果返回,返回信息包含執行(xíng)狀态等信息。

undefined

如果設置的是異步執行(xíng),觸發後直接返回已開(kāi)始執行(xíng)時(shí)間(jiān),無執行(xíng)結果信息。

undefined

執行(xíng)結果可(kě)在團隊主頁面-日志(zhì)管理(lǐ)-批處理(lǐ)執行(xíng)日志(zhì)中查看

undefined

可(kě)右鍵查看明(míng)細。

undefined

results matching ""

    No results matching ""