All Products
Search
Document Center

DataWorks:Development reference: Event lists and event message formats

Last Updated:Jul 03, 2025

This topic describes the event types, the formats of event messages, and the meaning of each field in an event message in DataWorks.

Background information

In DataWorks, events are classified into regular events and extension point events based on whether the operation process related to an event in DataWorks can be blocked and whether the processing result of an event message can be returned after a self-managed service subscribes to the event message.

  • Regular events: You can subscribe to this type of event message. However, the operations that generate this type of event message cannot be blocked. You can use the OpenEvent module to subscribe to this type of event message. For more information, see OpenEvent.

  • Extension point events: You can subscribe to this type of event message. You can use the Extensions module of DataWorks Open Platform to configure custom responses to this type of event message. For example, if you enable a custom extension to check extension point events in DataWorks and you perform an operation that triggers the check of the custom extension in DataWorks, the operation is blocked until the extension returns the processing result of the event message.

The following tables describe the events supported by each DataWorks service, whether an event is a regular event or an extension point event, the event type defined for an event in EventBridge, and the event code defined for an event in DataWorks Extensions.

  • Type: The type of an event. This field is used to filter event messages in EventBridge. For more information, see Enable event message subscription.

  • eventCode: The event code of an event. During on-premises development, you can determine the event type based on the event code in an event message. The event message is sent from DataWorks to EventBridge.

Workspace-level events

Workspace-level services generate workspace-level events. For example, events that are generated after you run nodes in DataStudio are workspace-level events. Events that are generated due to the status change of auto triggered instances in Operation Center are also workspace-level events. You can know from the following tables the events supported by each DataWorks service, whether an event is a regular event or an extension point event, and the message format of an event.

On the Message formats tabs of this section, you can view only partial content of the format of an event message. To view a complete event message sent to EventBridge or Function Compute, see the Appendix: Message formats section in this topic.

Events of DataStudio

Events

Event category

Event and event-generation operation

Regular event

Extension point event

Event type in EventBridge

Event code in Extensions

Node Change Event

Create a node

  • Create a node and deploy the node to the production environment

image

image

dataworks:NodeChange:NodeChangeCreated

node-change-created

Update a node

  • Modify a node in the development environment

  • Deploy a modification to the production environment

image

image

dataworks:NodeChange:NodeChangeUpdated

node-change-updated

File Change Event

  • Node

  • Resource

  • Function

Pre-event for Node Deletion

(delete a node in the development environment)

Note

Deleted files are moved to the recycle bin.

image

image

dataworks:FileChange:DeleteFile

delete-file

Pre-event for Node Commit

image

image

dataworks:FileChange:CommitFile

commit-file

Pre-event for Node Deployment

image

image

dataworks:FileChange:DeployFile

deploy-file

Pre-event for Code Running

image

image

dataworks:FileChange:RunFile

run-file

Table Change Event

Pre-event for Table Commit

image

image

dataworks:TableChange:CommitTable

commit-table

Pre-event for Table Deployment

image

image

dataworks:TableChange:DeployTable

deploy-table

Message formats

Node change events (create and update)

Sample code of the message body for a node creation, modification, or deletion event:

{ "datacontenttype": "application/json;charset=utf-8", "data": { "nodeName": "****", "programType": "ODPS_SQL", "cronExpress": "00 04 00 * * ?", "blockBusiness": false, "schedulerType": "NORMAL", "ownerId": "19****735", "priority": 1, "baselineId": 70***287, "operator": "19***735", // The operator. "eventCode": "node-change-created", "repeatability": true, "modifyTime": 17***864, "createTime": 17***864, "tenantId": 28***656, "nodeId": 70***003, "projectId": 9***4 } }

The following table describes the fields in the preceding sample code.

Field

Type

Description

nodeName

String

The name of the node.

programType

String

The code type of the file. You can call the ListFileType operation to query the code type of a file or check the supported node types to learn the code type of a file.

cronExpress

String

The cron expression that represents the periodic scheduling policy of the node.

This parameter is equivalent to the Cron Expression parameter in the Schedule section of the Properties tab on the DataStudio page in the DataWorks console.

After you configure the Scheduling Cycle and Scheduled Time parameters in the DataWorks console, DataWorks automatically generates the value of the Cron Expression parameter. Examples:

  • Cron expression for a node that is scheduled to run at 05:30 every day: 00 30 05 * * ?

  • Cron expression for a node that is scheduled to run at the fifteenth minute of each hour: 00 15 * * * ?

  • Cron expression for a node that is scheduled to run every 10 minutes: 00 00/10 * * * ?

  • Cron expression for a node that is scheduled to run every 10 minutes from 08:00 to 17:00 every day: 00 00-59/10 8-17 * * * ?

  • Cron expression for a node that is scheduled to run at 00:20 on the first day of each month: 00 20 00 1 * ?

  • Cron expression for a node that is scheduled to run every three months starting from 00:10 on January 1: 00 10 00 1 1-12/3 ?

  • Cron expression for a node that is scheduled to run at 00:05 every Tuesday and Friday: 00 05 00 * * 2,5

Note

Limits on cron expressions:

  • A node can be scheduled to run at a minimum interval of 5 minutes.

  • A node can be scheduled to run at 00:05 every day at the earliest.

schedulerType

String

The type of the node. Valid values:

  • 0: NORMAL. The node is a normal auto triggered node. The scheduling system regularly runs the node.

  • 1: MANUAL. The node is a manually triggered node. The scheduling system does not regularly run the node.

  • 2: PAUSE. The node is a frozen node. The scheduling system regularly runs the node but sets the node status to Failed when the scheduling system starts to run the node.

  • 3: SKIP. The node is a dry-run node. The scheduling system regularly runs the node but sets the node status to Succeeded when the scheduling system starts to run the node.

  • 4: SKIP_UNCHOOSE. The node is an unselected node in a temporary workflow. This type of node exists only in temporary workflows. The scheduling system sets the node status to Succeeded when the scheduling system starts to run the node.

  • 5: SKIP_CYCLE. The node is a node that is scheduled by week or month and is waiting for the scheduling time to arrive. The scheduling system regularly runs the node but sets the node status to Succeeded when the scheduling system starts to run the node.

  • 6: CONDITION_UNCHOOSE. The node is not selected by its ancestor branch node and is run as a dry-run node.

  • 7: REALTIME_DEPRECATED. The node has instances that are generated in real time but are deprecated. The scheduling system sets the node status to Succeeded.

ownerId

String

The ID of the Alibaba Cloud account used by the owner of the node. If this field is not configured, the ID of the Alibaba Cloud account of the user who schedules the node is used.

priority

Integer

The priority of the node. Valid values: 1, 3, 5, 7, and 8. A greater value specifies a higher priority.

baselineId

Long

The baseline ID.

repeatability

Boolean

Specifies whether the node can be rerun. Valid values:

  • true: The node can be rerun.

  • false: The node cannot be rerun.

modifyTime

Long

The time when the node was last modified.

createTime

Long

The time when the node was created.

nodeId

Long

The node ID.

projectId

Long

The ID of the workspace to which the node belongs.

tenantId

Long

The ID of the tenant to which the node belongs.

operator

String

The UID of the user who creates, modifies, or deletes the node.

eventCode

String

The event code of the extension point event.

File change events (commit, deploy, run, and delete)

  • Sample code of the message body for a file committing or deployment event:

    { "datacontenttype": "application/json;charset=utf-8", "data": { "fileName": "******", "extensionBizId": "eb******9ce", "changeType": "0", "blockBusiness": false, "dataSourceName": "0_******engine", "operator": "19***735", "eventCode": "commit-file", "fileCreateTime": "2024-07-12 11:08:50", "tenantId": 28***656, "fileOwner": "19***735", "fileVersion": 1, "projectId": 9***4, "fileType": 10, "fileId": 50***830, "resourceType": 1 } }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    operator

    String

    The UID of the user who commits or deploys the file.

    projectId

    Long

    The ID of the workspace to which the file belongs.

    tenantId

    Long

    The tenant ID.

    nodeId

    Long

    The auto triggered node ID.

    fileType

    Long

    The code type of the file. You can call the ListFileType operation to query the code type of a file or check the supported node types to learn the code type of a file.

    fileName

    String

    The name of the file.

    fileOwner

    String

    The owner of the file.

    extensionBizId

    String

    The ID of the check process in an extension.

    changeType

    String

    The type of the change to the file. Valid values:

    • 0: Create the file.

    • 1: Update the file.

    • 2: Delete the file.

    fileCreateTime

    String

    The time when the file was created. The time is in the yyyy-MM-dd HH:mm:ss format.

    fileId

    Long

    The file ID.

    fileVersion

    Long

    The version of the file.

    dataSourceName

    String

    The name of the data source.

    eventCode

    String

    The event code of the extension point event.

  • Sample code of the message body for a file deletion or running event:

    { "datacontenttype": "application/json;charset=utf-8", "data": { "fileName": "***", "extensionBizId": "bf******6e3", "blockBusiness": false, "operator": "19***735", "eventCode": "delete-file", "fileCreateTime": "2024-07-12 11:08:50", // The creation time of a file. "tenantId": 28***656, "fileOwner": "19***735", // The file owner. "nodeId": 70***003, "projectId": 9***4, "fileType": 10, "fileId": 50***830, "resourceType": 1 } }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    operator

    String

    The UID of the user who deletes or runs the file.

    projectId

    Long

    The ID of the workspace to which the file belongs.

    tenantId

    Long

    The tenant ID.

    nodeId

    Long

    The auto triggered node ID.

    fileType

    Long

    The code type of the file. You can call the ListFileType operation to query the code type of a file or check the supported node types to learn the code type of a file.

    fileName

    String

    The name of the file.

    fileOwner

    String

    The owner of the file.

    extensionBizId

    String

    The ID of the check process in an extension.

    fileCreateTime

    String

    The time when the file was created. The time is in the yyyy-MM-dd HH:mm:ss format.

    fileId

    Long

    The file ID.

    eventCode

    String

    The event code of the extension point event.

Table change events (commit a table to the development environment and deploy a table to the production environment)

{ "datacontenttype": "application/json;charset=utf-8", "data": { "operator": "**************", "projectId": 12*****56, "tenantId": 12******56, "extensionBizId": "12***56", "tableName":"table1", "tableType":"ODPS", "maxComputeProject":"project1" } }

The following table describes the fields in the preceding sample code.

Field

Type

Description

operator

String

The UID of the user who commits or deploys the table.

projectId

Long

The workspace ID.

tenantId

Long

The tenant ID.

extensionBizId

String

The ID of the check process in an extension.

tableName

String

The name of the table.

tableType

String

The type of the table. Set the value to ODPS.

maxComputeProject

String

The name of the MaxCompute project.

Events of Data Integration

Events

Event category

Event and event-generation operation

Regular event

Extension point event

Event type in EventBridge

Event code in Extensions

Node changing

Pre-event for Di-Job Running

image

image

dataworks:NodeChange:StartDiJob

start-diJob

Pre-event for Di-Job Batch Running

image

image

dataworks:NodeChange:BatchStartDiJob

batch-start-diJob

Message formats

Node change event - Pre-event for Di-Job running

Sample code of the message body for a pre-event for Di-Job running:

## message The number of task start tables in V1 does not exceed 500. { "datacontenttype": "application/json;charset=utf-8", "data": { "eventCode": "start-diJob", "extensionBizId": "0a4***b8ae", "extensionBizName": "sync_mysql_to_odps_20240726_192307", "appId": 293624, "showTableMapping": true, "tenantId": 28***656, "blockBusiness": true, "id": 5280, "projectId": 9***4, "tableMapping": [ { "srcTable": "xb_test_116", "dstDatasourceName": "odps_first", "srcDatabaseName": "xiaobo_sharding_79fz", "srcDatasourceName": "mysql_3357_pub_ip_1", "dstTable": "ods_xb_test_116" }, { "srcTable": "xb_test_117", "dstDatasourceName": "odps_first", "srcDatabaseName": "xiaobo_sharding_79fz", "srcDatasourceName": "mysql_3357_pub_ip_1", "dstTable": "ods_xb_test_117" }, { "srcTable": "xb_test_118", "dstDatasourceName": "odps_first", "srcDatabaseName": "xiaobo_sharding_79fz", "srcDatasourceName": "mysql_3357_pub_ip_1", "dstTable": "ods_xb_test_118" }, { "srcTable": "xb_test_135", "dstDatasourceName": "odps_first", "srcDatabaseName": "xiaobo_sharding_79fz", "srcDatasourceName": "mysql_3357_pub_ip_1", "dstTable": "ods_xb_test_135" } ], "operator": "1504650005316516" } } ## message The number of task start tables in V2 does not exceed 500. { "datacontenttype": "application/json;charset=utf-8", "data": { "extensionBizId": "59d***50fc", "extensionBizName": "sync_mysql_to_holo_20240911_170801", "blockBusiness": true, "operator": "19***735", "setting": { "lastStartPosition": "2024-09-11 12:00:00" }, "eventCode": "start-diJob", "jobId": 5777, "forceRun": false, "appId": 293624, "showTableMapping": true, "tenantId": 28***656, "startAsV2": false, "tableMapping": [ { "srcTable": "test_verify1", "dstDatasourceName": "molin_db", "srcDatabaseName": "di_test", "srcDatasourceName": "mysql_public", "dstTable": "test_verify1" }, { "srcTable": "test_verify1_dst", "dstDatasourceName": "molin_db", "srcDatabaseName": "di_test", "srcDatasourceName": "mysql_public", "dstTable": "test_verify1_dst" }, { "srcTable": "mysql_0_timetest2", "dstDatasourceName": "molin_db", "srcDatabaseName": "di_test", "srcDatasourceName": "mysql_public", "dstTable": "mysql_0_timetest2" } ] } } ##message The number of task start tables in V2 exceeds 500,"showTableMapping": false { "datacontenttype": "application/json;charset=utf-8", "data": { "eventCode": "start-diJob", "jobId": 5502, "forceRun": false, "extensionBizId": "f4c***7cbc", "extensionBizName": "sync_mysql_to_holo_20240412_213634", "appId": 330914, "showTableMapping": false, "tenantId": 28***656, "blockBusiness": true, "startAsV2": false, "operator": "19***735", "setting": { "lastStartPosition": "2024-04-12 22:07:02", "startDateTime": "2024-09-10 17:00:00", "timeZone": "Asia/Shanghai" } } } ##Regular expression { "datacontenttype": "application/json;charset=utf-8", "data": { "eventCode": "start-diJob", "jobId": 5778, "forceRun": false, "extensionBizId": "a5d***75ba", "extensionBizName": "sync_mysql_to_holo_20240912_170517", "appId": 293624, "showTableMapping": true, "tenantId": 28***656, "blockBusiness": true, "startAsV2": false, "tableMapping": [ { "srcTable": "test.*", "dstDatasourceName": "molin_db", "srcDatabaseName": ".*", "srcDatasourceName": "mysql_public", "dstTable": "aaa" }, { "srcTable": "shard.*", "dstDatasourceName": "molin_db", "srcDatabaseName": ".*", "srcDatasourceName": "mysql_public", "dstTable": "vvv" } ], "operator": "19***735" } }

The following table describes the fields in the preceding sample code.

Field

Type

Description

projectId

Long

The DataWorks workspace ID.

operator

String

The UID of the user that performs the operation.

extensionBizName

String

The name of the solution.

showTableMapping

Boolean

Specifies whether to return table mapping information. Valid values:

  • true

  • false

By default, the value of the showTableMapping parameter is false if the number of tables exceeds 500.

tableMapping

JSONArray

The table mapping.

srcDatasourceName

String

The name of the source.

srcDatabaseName

String

The name of the source database.

srcTable

String

The name of the source table.

dstDatasourceName

String

The name of the destination.

dstTable

String

The name of the destination table.

tenantId

Long

The tenant ID.

eventCode

String

The event code of the extension point event.

Node change event - Pre-event for Di-Job batch running

Sample code of the message body for a pre-event for Di-Job batch running:

{ "datacontenttype": "application/json;charset=utf-8", "data": { "needErrorMessage": false, "extensionBizId": "2de***c4c6", "extensionBizName": "sync_mysql_to_holo_20240911_170801,sync_mysql_to_odps_20240726_192307", "errorMessageOnlyFailedFileIds": false, "blockBusiness": true, "env": "prod", "operator": "15***516", "setting": { "startDateTime": "2024-09-12 14:00:00", "timeZone": "Asia/Shanghai" }, "jobIds": [ 5777, 5679 ], "eventCode": "batch-start-diJob", "tableMappings": [ { "extensionBizName": "sync_mysql_to_holo_20240911_170801", "id": 5777, "tableMapping": [ { "srcTable": "test_verify1", "dstDatasourceName": "molin_db", "srcDatabaseName": "di_test", "srcDatasourceName": "mysql_public", "dstTable": "test_verify1" }, { "srcTable": "test_verify1_dst", "dstDatasourceName": "molin_db", "srcDatabaseName": "di_test", "srcDatasourceName": "mysql_public", "dstTable": "test_verify1_dst" }, { "srcTable": "mysql_0_timetest2", "dstDatasourceName": "molin_db", "srcDatabaseName": "di_test", "srcDatasourceName": "mysql_public", "dstTable": "mysql_0_timetest2" } ] }, { "extensionBizName": "sync_mysql_to_odps_20240726_192307", "id": 5679, "tableMapping": [ { "srcTable": "xb_test_116", "dstDatasourceName": "odps_first", "srcDatabaseName": "xiaobo_sharding_79fz", "srcDatasourceName": "mysql_3357_pub_ip_1", "dstTable": "ods_xb_test_116" }, { "srcTable": "xb_test_117", "dstDatasourceName": "odps_first", "srcDatabaseName": "xiaobo_sharding_79fz", "srcDatasourceName": "mysql_3357_pub_ip_1", "dstTable": "ods_xb_test_117" }, { "srcTable": "xb_test_118", "dstDatasourceName": "odps_first", "srcDatabaseName": "xiaobo_sharding_79fz", "srcDatasourceName": "mysql_3357_pub_ip_1", "dstTable": "ods_xb_test_118" }, { "srcTable": "xb_test_135", "dstDatasourceName": "odps_first", "srcDatabaseName": "xiaobo_sharding_79fz", "srcDatasourceName": "mysql_3357_pub_ip_1", "dstTable": "ods_xb_test_135" } ] } ], "appId": 293624, "showTableMapping": true, "tenantId": 52***018, "projectId": 9***4 } }

The following table describes the fields in the preceding sample code.

Field

Type

Description

projectId

Long

The DataWorks workspace ID.

operator

String

The UID of the user that performs the operation.

extensionBizName

String

The name of the solution.

setting

JSONObject

The settings of startup configuration items.

startDateTime

String

The start time.

timeZone

String

The time zone for startup.

tableMapping

JSONArray

The table mapping.

srcDatasourceName

String

The name of the source.

srcDatabaseName

String

The name of the source database.

srcTable

String

The name of the source table.

dstDatasourceName

String

The name of the destination.

dstTable

String

The name of the destination table.

showTableMapping

Boolean

Specifies whether to return table mapping information. Valid values:

  • true

  • false

By default, the value of the showTableMapping parameter is false if the number of tables exceeds 500.

tenantId

Long

The tenant ID.

eventCode

String

The event code of the extension point event.

Events of Operation Center

Events

Event category

Event and event-generation operation

Regular event

Extension point event

Event type in EventBridge

Event code in Extensions

Node Change Event

Delete a node

  • Deploy the delete operation to the production environment to undeploy the node in the production environment

  • Delete a node from the recycle bin

image

image

dataworks:NodeChange:NodeChangeDeleted

node-change-deleted

Pre-event for Node Undeploy

(undeploy an auto triggered node in the production environment)

Note

This operation deletes the node in DataStudio and moves the node to the recycle bin.

image

image

dataworks:NodeChange:UndeployNode

undeploy-node

Pre-event for Node Frozen

image

image

dataworks:NodeChange:FreezeNode

freeze-node

Pre-event for Node Unfrozen

image

image

dataworks:NodeChange:UnFreezeNode

unfreeze-node

Backfill Data Operate Event

Pre-event for Backfill Data

image

image

dataworks:BackfillDataOperate:BackfillData

backfill-data

Node status changing

Change the status of an auto triggered node

image

image

dataworks:InstanceStatusChanges:InstanceStatusChanges

instance-status-changes

Instance Change Event

Freeze an instance

image

image

dataworks:InstanceChange:FreezeInstance

freeze-instance

Unfreeze an instance

image

image

dataworks:InstanceChange:UnfreezeInstance

unfreeze-instance

Terminate an instance

image

image

dataworks:InstanceChange:KillInstance

kill-instance

Rerun an instance

  • Rerun an instance

  • Rerun the descendant instances of an instance

image

image

dataworks:InstanceChange:RerunInstance

rerun-instance

Set the status of an instance to Succeeded

image

image

dataworks:InstanceChange:SetInstanceSuccess

set-instance-success

Delete a specified ancestor instance of an instance

image

image

dataworks:InstanceChange:DeleteTaskInstanceDependencies

delete-task-instance-dependencies

Pre-event for Instance Frozen

image

image

dataworks:InstanceChange:PreFreezeInstance

pre-freeze-instance

Pre-event for Instance Unfrozen

image

image

dataworks:InstanceChange:PreUnfreezeInstance

pre-unfreeze-instance

Pre-event for Instance Rerun

image

image

dataworks:InstanceChange:PreRerunInstance

pre-rerun-instance

Pre-event for Set Instance Success

image

image

dataworks:InstanceChange:PreSetInstanceSuccess

pre-set-instance-success

Pre-event for Instance Kill

image

image

dataworks:InstanceChange:PreKillInstance

pre-kill-instance

Delete an expired instance

image

image

dataworks:InstanceChange:ExpiredTaskInstancesDeleted

expired-task-instances-deleted

Workflow status changing

Change the status of a workflow

  • Backfill data for an instance

  • Run a manually triggered workflow

image

image

dataworks:DagStatusChanges:DagStatusChanges

dag-status-changes

Monitoring and alerting

Monitor objects and send alert notifications

image

image

dataworks:MonitorAlert:WorkbenchMonitorAlert

workbench-monitor-alert

Message formats

Node change events (delete, undeploy, freeze, and unfreeze)

  • Sample code of the message body for a node deletion event:

    { "datacontenttype": "application/json;charset=utf-8", "data": { "nodeName": "", "programType": "ODPS_SQL", "cronExpress": "00 20 00 * * ?", "schedulerType": "NORMAL", "ownerId": "19****735", "priority": 1, "baselineId": 117801853, "repeatability": true, "modifyTime": 1646364549642, "createTime": 1646364549642, "datasource": "odps_source", "tenantId": 28378****10656, "nodeId": 100***150, "projectId": 30**95, "operator": "19***735" // The operator. } }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    nodeName

    String

    The name of the node.

    programType

    String

    The code type of the file. You can call the ListFileType operation to query the code type of a file or check the supported node types to learn the code type of a file.

    cronExpress

    String

    The cron expression that represents the periodic scheduling policy of the node.

    This parameter is equivalent to the Cron Expression parameter in the Schedule section of the Properties tab on the DataStudio page in the DataWorks console.

    After you configure the Scheduling Cycle and Scheduled Time parameters in the DataWorks console, DataWorks automatically generates the value of the Cron Expression parameter. Examples:

    • Cron expression for a node that is scheduled to run at 05:30 every day: 00 30 05 * * ?

    • Cron expression for a node that is scheduled to run at the fifteenth minute of each hour: 00 15 * * * ?

    • Cron expression for a node that is scheduled to run every 10 minutes: 00 00/10 * * * ?

    • Cron expression for a node that is scheduled to run every 10 minutes from 08:00 to 17:00 every day: 00 00-59/10 8-17 * * * ?

    • Cron expression for a node that is scheduled to run at 00:20 on the first day of each month: 00 20 00 1 * ?

    • Cron expression for a node that is scheduled to run every three months starting from 00:10 on January 1: 00 10 00 1 1-12/3 ?

    • Cron expression for a node that is scheduled to run at 00:05 every Tuesday and Friday: 00 05 00 * * 2,5

    Note

    Limits on cron expressions:

    • A node can be scheduled to run at a minimum interval of 5 minutes.

    • A node can be scheduled to run at 00:05 every day at the earliest.

    schedulerType

    String

    The type of the node. Valid values:

    • 0: NORMAL. The node is a normal auto triggered node. The scheduling system regularly runs the node.

    • 1: MANUAL. The node is a manually triggered node. The scheduling system does not regularly run the node.

    • 2: PAUSE. The node is a frozen node. The scheduling system regularly runs the node but sets the node status to Failed when the scheduling system starts to run the node.

    • 3: SKIP. The node is a dry-run node. The scheduling system regularly runs the node but sets the node status to Succeeded when the scheduling system starts to run the node.

    • 4: SKIP_UNCHOOSE. The node is an unselected node in a temporary workflow. This type of node exists only in temporary workflows. The scheduling system sets the node status to Succeeded when the scheduling system starts to run the node.

    • 5: SKIP_CYCLE. The node is a node that is scheduled by week or month and is waiting for the scheduling time to arrive. The scheduling system regularly runs the node but sets the node status to Succeeded when the scheduling system starts to run the node.

    • 6: CONDITION_UNCHOOSE. The node is not selected by its ancestor branch node and is run as a dry-run node.

    • 7: REALTIME_DEPRECATED. The node has instances that are generated in real time but are deprecated. The scheduling system sets the node status to Succeeded.

    ownerId

    String

    The ID of the Alibaba Cloud account used by the owner of the node. If this field is not configured, the ID of the Alibaba Cloud account of the user who schedules the node is used.

    priority

    Integer

    The priority of the node. Valid values: 1, 3, 5, 7, and 8. A greater value specifies a higher priority.

    baselineId

    Long

    The baseline ID.

    repeatability

    Boolean

    Specifies whether the node can be rerun. Valid values:

    • true: The node can be rerun.

    • false: The node cannot be rerun.

    modifyTime

    Long

    The time when the node was last modified.

    createTime

    Long

    The time when the node was created.

    nodeId

    Long

    The node ID.

    projectId

    Long

    The ID of the workspace to which the node belongs.

    tenantId

    Long

    The ID of the tenant to which the node belongs.

    operator

    String

    The UID of the user who creates, modifies, or deletes the node.

  • Sample code of the message body for a node freezing, unfreezing, or undeployment event:

    { "datacontenttype": "application/json;charset=utf-8", "data": { "operator": "19***735", "projectId": 12***56, "tenantId": 28***656, "nodeIds":[1,2,3], "extensionBizId": "12***56" } }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    operator

    String

    The UID of the user who freezes, unfreezes, or undeploys the node.

    projectId

    Long

    The ID of the workspace to which the node belongs.

    tenantId

    Long

    The tenant ID.

    nodeIds

    Array

    The IDs of the nodes on which the operation is performed.

    extensionBizId

    String

    The ID of the check process in an extension.

Data backfilling for nodes

Sample code of the message body for a data backfilling event:

{ "datacontenttype": "application/json;charset=utf-8", "data": { "excludeNodeIds":[], "rootNodeId": 1000****271, "startFutureInstanceImmediately": false, "useMultipleTimePeriods": true, "operator": "19***735", "eventCode": "backfill-data", "multipleTimePeriods": "[{\"bizBeginTime\":\"2022-04-17\",\"bizEndTime\":\"2022-04-17\"}]", "parallelGroup": 1, "rootNodeProjectId": 12*****8, "isParallel": false, "name": "P_fff_20220418_215404", "tenantId": 16935*****3377, "includeNodeIds": [ 10***271 ], "projectId": 9***4, "order": "asc", "extensionBizId": "12***56" } }

The following table describes the fields in the preceding sample code.

Field

Type

Description

name

String

The name of the workflow that contains the node for which you backfill data.

rootNodeId

Long

The ID of the root node in the workflow that contains the node for which you backfill data.

rootNodeProjectId

Long

The ID of the workspace to which the root node belongs. The root node is in the workflow that contains the node for which you backfill data.

includeNodeIds

Array

The IDs of the nodes for which you backfill data.

excludeNodeIds

Array

The IDs of the nodes for which no data needs to be backfilled. The system generates dry-run instances for all these nodes. After the dry-run instances are scheduled, the statuses of the instances are directly set to Succeeded and the script is not run.

bizBeginTime

String

The time when the node started to run. This field is required only for auto triggered nodes that are scheduled by hour. Specify the value in the HH:mm:ss format. Valid values: 00:00:00 to 23:59:59.

bizEndTime

String

The time when the node finished running. This field is required only for auto triggered nodes that are scheduled by hour. Specify the value in the HH:mm:ss format. Valid values: 00:00:00 to 23:59:59.

isParallel

Boolean

Specifies whether data backfill instances that are scheduled to run at different points in time can be run in parallel. Valid values:

  • true

  • false

parallelGroup

Integer

The number of data backfill instance groups that are run in parallel. The value 1 indicates that data backfill instances are not grouped.

startFutureInstanceImmediately

Boolean

Specifies whether to immediately run node instances that are scheduled to run at future points in time. Valid values:

  • true

  • false

order

String

The node execution sequence based on data timestamps. Valid values:

  • acs: Nodes are run based on data timestamps in chronological order.

  • desc: Nodes are run based on data timestamps in reverse chronological order.

multipleTimePeriods

String

Multiple data timestamp time periods. The field value is determined by the bizBeginTime and bizEndTime fields. Example: [{\"bizBeginTime\":\"2022-04-17\",\"bizEndTime\":\"2022-04-17\"}].

tenantId

Long

The tenant ID.

projectId

Long

The ID of the workspace in which you perform the data backfill operation.

operator

String

The ID of the user who performs the data backfill operation.

extensionBizId

String

The ID of the check process in an extension.

eventCode

String

The event code of the extension point event.

Node status change events

Sample code of the message body for a status change event for an auto triggered node:

{ "datacontenttype": "application/json;charset=utf-8", "data": { "beginWaitTimeTime": 1652700576000, "dagId": 446***330, "dagType": 0, "eventCode": "instance-status-changes", "taskType": 0, "modifyTime": 1652700577000, "createTime": 1652543233000, "appId": 3*****2, "tenantId": 235454***432001, "opCode": 31, "flowId": 1, "nodeId": 100***219, "beginWaitResTime": 1652700577000, "taskId": 453***169, "status": 3 } }

The following table describes the fields in the preceding sample code.

Field

Type

Description

finishTime

Long

The time when the auto triggered node instance finished running.

beginWaitTimeTime

Long

The time when the auto triggered node instance started to wait for the scheduling time.

beginRunningTime

Long

The time when the auto triggered node instance started to run.

dagId

Long

The ID of the directed acyclic graph (DAG). You can query the details of the DAG based on the dagId field.

dagType

Integer

The type of the DAG. Valid values:

  • 0: for auto triggered nodes

  • 1: for manually triggered nodes

  • 2: for smoke testing

  • 3: for nodes for which you backfill data

  • 4: for temporary workflows

  • 5: for manually triggered workflows

taskType

Integer

The type of the node. Valid values:

  • 0: NORMAL. The node is a normal auto triggered node. The scheduling system regularly runs the node.

  • 1: MANUAL. The node is a manually triggered node. The scheduling system does not regularly run the node.

  • 2: PAUSE. The node is a frozen node. The scheduling system regularly runs the node but sets the node status to Failed when the scheduling system starts to run the node.

  • 3: SKIP. The node is a dry-run node. The scheduling system regularly runs the node but sets the node status to Succeeded when the scheduling system starts to run the node.

  • 4: SKIP_UNCHOOSE. The node is an unselected node in a temporary workflow. This type of node exists only in temporary workflows. The scheduling system sets the node status to Succeeded when the scheduling system starts to run the node.

  • 5: SKIP_CYCLE. The node is a node that is scheduled by week or month and is waiting for the scheduling time to arrive. The scheduling system regularly runs the node but sets the node status to Succeeded when the scheduling system starts to run the node.

  • 6: CONDITION_UNCHOOSE. The node is not selected by its ancestor branch node and is run as a dry-run node.

  • 7: REALTIME_DEPRECATED. The node has instances that are generated in real time but are deprecated. The scheduling system sets the node status to Succeeded.

modifyTime

Long

The time when the node instance was last modified.

createTime

Long

The time when the node instance was created.

appId

Long

The workspace ID. You can call the ListProjects operation to query the workspace ID.

tenantId

Long

The ID of the tenant that manages the workspace to which the auto triggered node instance belongs.

opCode

Integer

The operation code of the auto triggered node instance. You can ignore the field value.

flowId

Long

The workflow ID.

  • For an auto triggered node instance, the field value is 1.

  • For a manually triggered workflow or an auto triggered node instance of the internal workflow type, the field value is the actual workflow ID.

nodeId

Long

The ID of the node for which the auto triggered node instance was generated.

beginWaitResTime

Long

The time when the auto triggered node instance started to wait for resources.

taskId

Long

The ID of the auto triggered node instance.

status

Integer

The status of the node. Valid values:

  • 1: The node is not run.

  • 2: The node is waiting for the scheduling time to arrive. The scheduling time is specified by dueTime or cycleTime.

  • 3: The node is waiting for resources.

  • 4: The node is running.

  • 7: Tables that are specified in the node are issued to Data Quality and data in the tables is checked based on monitoring rules.

  • 8: Branch conditions are being checked.

  • 5: The node failed to be run.

  • 6: The node is successfully run.

eventCode

String

The event code of the extension point event.

Instance change events (freeze, unfreeze, terminate and rerun an instance, and set the instance status to success)

Sample code of the message body for an instance change event:

{ "datacontenttype": "application/json;charset=utf-8", "data": { "eventCode": "freeze-instance", "operator": "19***735", "projectId": 12***8, "projectType": "PROD", "taskIds": [ 523***9736 ], "tenantId": 28***656 } }

The following table describes the fields in the preceding sample code.

Field

Type

Description

operator

String

The UID of the user who performs the operations such as freezing, unfreezing, terminating, or rerunning an instance, or setting the status of an instance to Succeeded.

projectType

String

The runtime environment. Valid values:

  • PROD: production environment

  • DEV: development environment

taskIds

List<Long>

The IDs of the instances.

projectId

Long

The DataWorks workspace ID.

tenantId

Long

The ID of the tenant that manages the workspace to which the instance belongs.

eventCode

String

The event code.

Instance change pre-events (freeze, unfreeze, kill, and rerun an instance, and set the instance status to success)

Sample code of the message body for an instance change pre-event:

{ "datacontenttype": "application/json;charset=utf-8", "data": { "eventCode": "pre-freeze-instance", "extensionBizId": "055***afaa", "extensionBizName": "Node name", "projectId": 9***4, "taskIds": [ 523536569736 ], "tenantId": 28***656, "operator": "19***735" } }

The following table describes the fields in the preceding sample code.

Field

Type

Description

extensionBizId

String

The ID of the check process in an extension.

extensionBizName

String

The name of the operation object. Multiple objects are described in the format of "Object name..."

projectId

Long

The DataWorks workspace ID.

taskIds

List<Long>

The instance IDs.

tenantId

String

The ID of the tenant that manages the workspace to which the instance belongs.

operator

Long

The UID of the user who performs the operation.

eventCode

String

The event code of the extension point event.

Instance change event - Delete an expired instance

Sample code of the message body for an expired instance deletion event:

{ "datacontenttype": "application/json;charset=utf-8", "data": { "eventCode": "expired-task-instances-deleted", "deletedTaskInstanceIds": [ 524***035, 524***498, 524***637 ], "appId": 307303, "tenantId": 28***656, "blockBusiness": false, "owner": "1107***538", "operationTime": 1734505954897 } }

The following table describes the fields in the preceding sample code.

Field

Type

Description

deletedTaskInstanceIds

List

The IDs of deleted instances.

owner

String

The ID of the instance owner.

operationTime

Long

The operation time.

blockBusiness

Boolean

Specifies whether to stop the process when an extension exists. Valid values:

  • true

  • false

appId

Long

The DataWorks workspace ID.

tenantId

String

The ID of the tenant that manages the workspace to which the instance belongs.

operator

Long

The UID of the user who performs the operation.

eventCode

String

The event code of the extension point event.

Events of deleting a specified ancestor instance of an instance

Sample code of the message body for an event of deleting a specified ancestor instance of an instance:

{ "datacontenttype": "application/json;charset=utf-8", "aliyunaccountid": "110******38", "aliyunpublishtime": "2024-12-18T07:12:35.463Z", "data": { "eventCode": "delete-task-instance-dependencies", "upstreamTaskInstanceIds": [ 52******35, 52******98, 52******37 ], "appId": 3***03, "tenantId": 52******36, "blockBusiness": false, "taskInstanceId": 52******49, "operator": "19***735", "operationTime": 1734505954897 } }

The following table describes the fields in the preceding sample code.

Field

Type

Description

taskInstanceId

Long

The descendant instance ID.

upstreamTaskInstanceIds

List

The IDs of the ancestor instances that are deleted.

operator

String

The UID of the user that performs the operation.

operationTime

Long

The operation time.

Workflow status change events

Sample code of the message body for a workflow status change event:

{ "datacontenttype": "application/json;charset=utf-8", "data": { "bizDate": "2022-11-07 00:00:00", "createTime": "2022-11-08 10:56:32", "dagId": 500358972116, "dagName": "P_test_spark_true_copy_20221108_105631", "eventCode": "dag-status-changes", "dagType": 3, "flowId": 1, "flowName": "ATCLOUD_FLOW", "operator": "11****538", "projectEnv": "PROD", "projectId": 25***63, "status": 6, "tenantId": 52***736 } }

The following table describes the fields in the preceding sample code.

Field

Type

Description

bizDate

String

The data timestamp of the workflow. The value is in the yyyy-mm-dd hh24:mi:ss format.

createTime

String

The time when the workflow was created. The value is in the yyyy-mm-dd hh24:mi:ss format.

dagId

Long

The DAG ID. You can query the details of the DAG based on the dagId field.

dagName

String

The name of the workflow.

dagType

Integer

The type of the DAG. Valid values:

  • 0: for auto triggered nodes

  • 1: for manually triggered nodes

  • 2: for smoke testing

  • 3: for nodes for which you backfill data

  • 4: for temporary workflows

  • 5: for manually triggered workflows

flowId

Integer

The workflow ID.

flowName

String

The name of the workflow.

operator

String

The UID of the user who created the workflow.

projectEnv

String

The environment to which the workflow belongs. Valid values:

  • DEV: development environment

  • PROD: production environment

tenantId

Long

The ID of the tenant that manages the workspace to which the auto triggered node instance belongs.

projectId

Long

The workspace ID.

status

Integer

The status of the node in the workflow. Valid values:

  • 1: The node is not run.

  • 4: The node is running.

  • 5: The node failed to be run.

  • 6: The node is successfully run.

eventCode

String

The event code of the extension point event.

Monitoring and alerting

  • Sample code of the message body for a baseline alert:

    { "datacontenttype": "application/json;charset=utf-8", "data": { "eventCode": "workbench-monitor-alert", "alarmType": "SLA_ALERT", "baselineId": 137***723, "baselineName": "Dedicated to the check for hour-level nodes at the ODS layer", "baselineStatus": 3, "bizDate": 1654444800000, "inGroupId": 14, "nodeId": 1000***8734, "projectId": 76***34, "taskId": 307***3778, "tenantId": 28***656 } }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    alarmType

    String

    The type of the alert. Valid values:

    • SLA_ALERT

    • REMIND_ALERT

    • TOPIC_ALERT

    baselineId

    Long

    The baseline ID.

    baselineName

    String

    The name of the baseline.

    baselineStatus

    Integer

    The status of the baseline. Valid values:

    • -1: The baseline is abnormal.

    • 1: The baseline is safe.

    • 2: An alert is triggered for the baseline.

    • 3: The baseline is in the Overtime state.

    bizDate

    Long

    The data timestamp.

    inGroupId

    Integer

    The ID of the scheduling cycle of the baseline instance. For a baseline instance that is scheduled by day, the field value is 1. For a baseline instance that is scheduled by hour, the field value ranges from 1 to 24.

    nodeId

    Long

    The ID of the node that triggers an exception on the baseline to which the node belongs.

    projectId

    Long

    The ID of the workspace to which the baseline belongs.

    taskId

    Long

    The ID of the instance that triggers an exception on the baseline to which the instance belongs.

    tenantId

    Long

    The tenant ID.

    eventCode

    String

    The event code of the extension point event.

  • Sample code of the message body for an event alert:

    { "datacontenttype": "application/json;charset=utf-8", "data": { "alarmType": "TOPIC_ALERT", "nodeId": 1000***315, "projectId": 91***09, "taskId": 307***0357, "taskStatus": 5, "tenantId": 28***656, "topicId": 1084769 } }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    alarmType

    String

    The type of the alert. Valid values:

    • SLA_ALERT

    • REMIND_ALERT

    • TOPIC_ALERT

    topicId

    Long

    The event ID.

    taskStatus

    String

    The status of the instance that is generated for the node in which the event occurred.

    nodeId

    Integer

    The ID of the node in which the event occurred.

    projectId

    Long

    The ID of the workspace to which the node in which the event occurred belongs.

    taskId

    Long

    The ID of the instance that is generated for the node in which the event occurred.

    tenantId

    Long

    The tenant ID.

  • Sample code of the message body for a rule-based alert:

    Note

    In most cases, the objects for which you can configure a rule include nodes, baselines, workspaces, and workflows.

    { "datacontenttype": "application/json;charset=utf-8", "data": { "alarmType": "REMIND_ALERT", "nodeIds": "1000***5472,1000***5473,1000***5474", "projectId": 9***4, "remindId": 7605, "remindName": "Error alert", "remindType": "ERROR", "remindUnit": "NODE", "taskIds": "307***0896,307***0870,307***0855", "tenantId": 28***656 } }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    alarmType

    String

    The type of the alert. Valid values:

    • SLA_ALERT

    • REMIND_ALERT

    • TOPIC_ALERT

    nodeIds

    String

    The IDs of the nodes for which the rule-based alert is triggered.

    remindId

    Long

    The rule ID.

    remindType

    String

    The trigger condition of the rule. Valid values:

    • FINISHED: The object finishes running.

    • UNFINISHED: The object does not finish running.

    • ERROR: An error occurs when the object runs.

    • CYCLE_UNFINISHED: The object does not finish running in the current scheduling cycle.

    • TIMEOUT: The running of the object times out.

    projectId

    Long

    The ID of the workspace. The workspace contains the node for which the rule-based alert is triggered.

    remindUnit

    String

    The type of the object for which the rule-based alert is triggered. Valid values:

    • NODE: node

    • GATEWAY_RES: exclusive resource group for scheduling

    • DI_RES: resource group for Data Integration

    tenantId

    Long

    The tenant ID.

    taskId

    String

    The IDs of the instances for which the rule-based alert is triggered.

    remindName

    String

    The name of the rule.

  • Sample code of the message body for a rule-based alert for a resource group:

    { "datacontenttype": "application/json;charset=utf-8", "data": { "alarmType": "REMIND_ALERT", "projectId": 9***4, "remindId": 200***186, "remindName": "Alert for an exclusive resource group", "remindType": "RES_GROUP_THRESHOLD", "remindUnit": "GATEWAY_RES", "resourceGroupIdentifier": "S_res_group_195820716552192_1650965857744", "resourceGroupName": "emr_exclusive_scheduld", "resourceGroupType": "GATEWAY", "tenantId": 28***656 } }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    alarmType

    String

    The type of the alert. Valid values:

    • SLA_ALERT

    • REMIND_ALERT

    • TOPIC_ALERT

    remindId

    Long

    The rule ID.

    remindType

    String

    The trigger condition of the rule. Valid values:

    • FINISHED: The object finishes running.

    • UNFINISHED: The object does not finish running.

    • ERROR: An error occurs when the object runs.

    • CYCLE_UNFINISHED: The object does not finish running in the current scheduling cycle.

    • TIMEOUT: The running of the object times out.

    • RES_GROUP_THRESHOL: The resource usage of a resource group reaches the upper limit of the threshold.

    • RES_GROUP_WAIT_AMOUNT: The number of instances that are run on a resource group and are waiting for the resources in the resource group reaches the upper limit of the threshold.

    projectId

    Long

    The ID of the workspace. The workspace contains the node for which the rule-based alert is triggered.

    remindUnit

    String

    The type of the object for which the rule-based alert is triggered. Valid values:

    • NODE: node

    • GATEWAY_RES: exclusive resource group for scheduling

    • DI_RES: resource group for Data Integration

    tenantId

    Long

    The tenant ID.

    remindName

    String

    The name of the rule.

    resourceGroupIdentifier

    String

    The unique identifier of the resource group.

    resourceGroupName

    String

    The name of the resource group.

    resourceGroupType

    String

    The type of the resource group. Valid values:

    • GATEWAY: resource group for scheduling

    • DI: resource group for Data Integration

Events of Security Center

Events

Event category

Event and event-generation operation

Regular event

Extension point event

Event type in EventBridge

Event code in Extensions

Approval Center

Pre-event for Approval Order Created

image

image

dataworks:ApprovalChange:ApprovalChangeCreated

approval-change-created

Complete a permission request processing order

image

image

dataworks:ApprovalChange:ApprovalChangeFinished

approval-change-finished

Security Center (table permission requesting)

Request permissions on tables (pre-event)

image

image

dataworks:ApprovalChange:ApprovalChangeBeforeCreate

approval-change-before-create

Message formats

Approval Center (create and complete a permission request processing order)

  • Sample code of the message body for a pre-event of creating a permission request processing order:

    { "datacontenttype": "application/json;charset=utf-8", "data": { "appId":194209, "assignee":"286098539641742899", "assigneeName":"yupeng.sunyp", "createTime":1652094363000, "eventType":"approval", "process":{ "applicant":"286098539641742899", "applicantName":"yupeng.sunyp", "approvalContent":{ "applyPeriod":"2997964800000", "applyReason":"Test", "arrayData":[ { "ownerBaseId":"1822***45", "objectType":"TABLE", "odpsTable":"loghub_070103", "envType":1, "projectGuid":"odps.b_mc1", "objectGuid":"odps.b_mc1.loghub_070103", "tenantId":28***656, "objectName":"loghub_070103", "ownerAccountName":"ALIYUN$******(******)", "odpsProject":"B_MC1", "projectName":"B_MC1", "actions":[ "Select", "Describe" ], "projectId":9***4, "workspaceId":"9***4" } ], "contentType":"application/json", "granteeAccounts":[ { "granteeId":"2860985***99", "granteeTypeSub":103, "granteeType":1, "granteeName":"RAM$dataworks_3h1_1:yupeng.sunyp" }, { "granteeId":"237857631119109360", "granteeTypeSub":105, "granteeType":1, "granteeName":"RAM$dataworks_3h1_1:dev" } ], "odpsProjectName":"B_MC1", "projectEnv":"1", "resourceSummary":"loghub_070103", "tenantId":28***656, "workspaceId":194209 }, "assignmentCategory":"MaxCompute", "createTime":1652094363000, "processDefinitionId":"definition-3dcc9ce7-d29d-435d-a908-60d4355ff5e2", "processId":"528535869984706", "status":"Pending", "title":"MaxComputeTable", "updateTime":1652094363000 }, "processId":"528535869984706", "status":"Submit", "eventCode": "approval-change-created", "taskId":"528535870015424", "tenantId":28***656, "updateTime":1652094364000 } }{ "datacontenttype": "application/json;charset=utf-8", "data": { "appId":227859, "assignee":"286098539641742899", "eventCode": "approval-change-finished", "assigneeName":"******.******", "comments":"ces", "createTime":1652095981000, "eventType":"approval", "process":{ "applicant":"286098***2899", "applicantName":"yupeng.sunyp", "approvalContent":{ "applyPeriod":"2997964800000", "applyReason":"Test", "arrayData":[ { "ownerBaseId":"2382***884", "objectType":"TABLE", "odpsTable":"cdd", "objectNameCn":"******", "envType":1, "projectGuid":"odps.da_simple_202112", "objectGuid":"odps.da_simple_202112.cdd", "tenantId":0, "objectName":"cdd", "ownerAccountName":"RAM$******(******)", "odpsProject":"da_simple_202112", "projectName":"da_simple_202112", "actions":[ "Select", "Describe" ], "projectId":9***4, "workspaceId":"9***4" } ], "contentType":"application/json", "granteeAccounts":[ { "granteeId":"286***899", "granteeTypeSub":103, "granteeType":1, "granteeName":"RAM$dataworks_3h1_1:yupeng.sunyp" } ], "odpsProjectName":"da_simple_202112", "projectEnv":"1", "resourceSummary":"cdd", "tenantId":28***656, "workspaceId":227859 }, "assignmentCategory":"MaxCompute", "createTime":1652095981000, "processDefinitionId":"definition-6e6418e6-c65f-4f26-a673-88576b1c1e4a", "processId":"528***192", "status":"Pending", "title":"MaxComputeTable", "updateTime":1652095981000 }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    appId

    Long

    The workspace ID.

    assignee

    String

    The base ID of the Alibaba Cloud account used by the request approver.

    assigneeName

    String

    The name of the Alibaba Cloud account used by the request approver.

    comments

    String

    The comment.

    createTime

    Long

    The timestamp at which the request processing order is created.

    processId

    String

    The request processing order ID.

    status

    String

    The status of the request processing order.

    taskId

    String

    The ID of the request processing task.

    tenantId

    String

    The tenant ID.

    updateTime

    String

    The timestamp at which the request processing order is updated.

    eventType

    String

    The type of the event.

    process

    Object

    The process for the request processing task.

    applicant

    String

    The base ID of the applicant.

    applicantName

    String

    The name of the applicant.

    assignmentCategory

    String

    The type of the content on which you request permissions.

    createTime

    String

    The timestamp at which the request processing order is created.

    processDefinitionId

    String

    The unique ID of the defined approval workflow.

    processId

    String

    The workflow ID.

    status

    String

    The status of the workflow.

    title

    String

    The title of the workflow.

    updateTime

    Long

    The timestamp at which the request processing order is updated.

    approvalContent

    Object

    The content of the request processing order.

    applyPeriod

    String

    The validity period of the requested permissions.

    applyReason

    String

    The reason for the request.

    contentType

    String

    The data type of the content.

    odpsProjectName

    String

    The name of the MaxCompute project.

    resourceSummary

    String

    The description of the resource.

    tenantId

    Long

    The tenant ID.

    workspaceId

    Long

    The workspace ID.

    projectEnv

    String

    The environment of the MaxCompute project.

    granteeAccounts

    Array

    The accounts of the requesters.

    .granteeId

    String

    The ID of the requester.

    granteeType

    String

    The authorization type.

    granteeTypeSub

    String

    The account type of the requester.

    granteeName

    String

    The name of the requester.

    arrayData

    Array

    The authorized content. For more information, see the appendixes in this topic.

    eventType

    String

    The type of the event.

  • Sample code of the message body for an event of completing a request processing order:

    { "datacontenttype": "application/json;charset=utf-8", "data": { "appId": 227859, "assignee": "286098539641742899", "eventCode": "approval-change-finished", "assigneeName": "******.******", "comments": "ces", "createTime": 1652095981000, "eventType": "approval", "process": { "applicant": "2860****899", "applicantName": "yupeng.sunyp", "approvalContent": { "applyPeriod": "2997***0000", "applyReason":"Test", "arrayData": [ { "ownerBaseId": "2382***8*884", "objectType": "TABLE", "odpsTable": "cdd", "objectNameCn": "******", "envType": 1, "projectGuid": "odps.da_simple_202112", "objectGuid": "odps.da_simple_202112.cdd", "tenantId": 0, "objectName": "cdd", "ownerAccountName": "RAM$******(******)", "odpsProject": "da_simple_202112", "projectName": "da_simple_202112", "actions": [ "Select", "Describe" ], "projectId": 9***4, "workspaceId": "9***4" } ], "contentType": "application/json", "granteeAccounts": [ { "granteeId": "286***899", "granteeTypeSub": 103, "granteeType": 1, "granteeName": "RAM$dataworks_3h1_1:yupeng.sunyp" } ], "odpsProjectName": "da_simple_202112", "projectEnv": "1", "resourceSummary": "cdd", "tenantId": 28***656, "workspaceId": 227859 }, "assignmentCategory": "MaxCompute", "createTime": 1652095981000, "processDefinitionId": "definition-6e6418e6-c65f-4f26-a673-88576b1c1e4a", "processId": "528***192", "status": "Pending", "title": "MaxComputeTable", "updateTime": 1652095981000 } } }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    appId

    Long

    The workspace ID.

    assignee

    String

    The base ID of the Alibaba Cloud account used by the request approver.

    assigneeName

    String

    The name of the Alibaba Cloud account used by the request approver.

    comments

    String

    The comment.

    createTime

    Long

    The timestamp at which the request processing order is created.

    processId

    String

    The ID of the request processing order.

    status

    String

    The status of the request processing order.

    taskId

    String

    The ID of the request processing task.

    tenantId

    String

    The tenant ID.

    updateTime

    String

    The timestamp at which the request processing order was last updated.

    eventType

    String

    The type of the event.

    process

    Object

    The process for the request processing task.

    applicant

    String

    The base ID of the applicant.

    applicantName

    String

    The name of the applicant.

    assignmentCategory

    String

    The type of the content on which you request permissions.

    createTime

    String

    The timestamp at which the request processing order is created.

    processDefinitionId

    String

    The unique ID of the defined approval workflow.

    processId

    String

    The workflow ID.

    status

    String

    The status of the workflow.

    title

    String

    The title of the workflow.

    updateTime

    Long

    The timestamp at which the request processing order is updated.

    approvalContent

    Object

    The content of the request processing order.

    applyPeriod

    String

    The validity period of the requested permissions.

    applyReason

    String

    The reason for the request.

    contentType

    String

    The data type of the content.

    odpsProjectName

    String

    The name of the MaxCompute project.

    resourceSummary

    String

    The description of the resource.

    tenantId

    Long

    The tenant ID.

    workspaceId

    Long

    The workspace ID.

    projectEnv

    String

    The environment of the MaxCompute project.

    granteeAccounts

    Array

    The accounts of the requesters.

    granteeId

    String

    The requester ID.

    granteeType

    String

    The authorization type.

    granteeTypeSub

    String

    The account type of the requester. Valid values:

    • ACCOUNT_PRD(101): the account that is used for node scheduling in the production environment

    • ACCOUNT_APP(102): the account for an application

    • ACCOUNT_USER(103): the account for a user

    • ACCOUNT_DEPT(104): the account for a department

    • ACCOUNT_MOCK(106): the account for MOCK

    • ACCOUNT_OTHER_USER(105): the account for another user

    granteeName

    String

    The name of the requester.

    arrayData

    Array

    The authorized content. For more information, see the appendixes in this topic.

    eventType

    String

    The type of the event.

Security Center (Pre-event for table permission request)

Sample code of the message body for a pre-event for table permission request:

{ "datacontenttype": "application/json;charset=utf-8", "data": { "eventType": "approval-create-before", "operator":"19***735", "order":{ "applyReason":"Test", "deadlineDate":"1", "deadlineType":"month", "granteeObjectList":[ { "granteeId":"1239****8872" } ], "projectMeta":{ "envCode":1, "labelSecurity":false, "objectMetaList":[ { "action":[ "Select", "Describe" ], "name":"tablei", "projectGuid":"odps.d11aa" } ], "projectId":2****0, "projectName":"d11aa" } }, "projectId":2****0, "tenantId":5564****6465 } }

The following table describes the fields in the preceding sample code.

Field

Type

Description

operator

String

The UID of the user who requests for permissions on a table (pre-event).

projectId

Long

The ID of the workspace in which a pre-event for table permission request is identified.

tenantId

Long

The ID of the tenant within which a pre-event for table permission request is identified.

order

Object

The information about the request order.

applyReason

String

The reason for the request.

deadlineDate

String

The validity period of the request order.

deadlineType

String

The unit of the validity period of the request order. Valid values: Day and Month.

granteeObjectList

Object

The authorized objects.

granteeId

String

The ID of the authorized object, which is the ID of a RAM user.

projectMeta

Object

The information about the workspace.

envCode

Integer

The code of the workspace environment. The value 0 indicates the development environment. The value 1 indicates the production environment.

labelSecurity

Boolean

Specifies whether to enable label-level management. Valid values:

  • true

  • false: disable

objectMetaList

Array

The authorized objects.

action

Array

The authorized operation. For example, the authorized object is granted the SELECT or DESCRIBE permission.

name

String

The name of the table on which you want to request for permissions.

projectGuid

String

The GUID of the workspace to which the table belongs.

projectName

String

The name of the workspace to which the table belongs.

eventType

String

The type of the event.

Appendix: Authorized content (MaxCompute)

When table permissions are requested or requests are processed, event messages are generated in DataWorks Security Center. The arrayData field is added to the event messages that are sent to EventBridge. Sample data content of arrayData if the assignmentCategory field is set to MaxCompute:

{ "ownerBaseId":"1822931104031845", "objectType":"TABLE", "odpsTable":"oracle_************", "envType":1, "projectGuid":"odps.***********", "objectGuid":"odps.******.******", "tenantId":0, "objectName":"oracle_******", "ownerAccountName":"ALIYUN***************", "odpsProject":"dataworks******", "projectName":"dataworks******", "actions":[ "Select", "Describe" ], "projectId":9***4, "workspaceId":"9***4" }

The following table describes the fields in the preceding sample code.

Field

Type

Description

ownerBaseId

String

The base ID of the table owner.

ownerAccountName

String

The name of the table owner.

objectType

String

The type of the object.

odpsTable

String

The name of the table.

envType

String

The type of the environment in which the table is used.

projectGuid

String

The GUID of the MaxCompute project.

objectGuid

String

The GUID of the object.

objectName

String

The name of the object.

odpsProject

String

The name of the MaxCompute project.

projectName

String

The code of the project.

projectId

Long

The project ID.

workspaceId

String

The workspace ID.

actions

Array

The actions.

Appendix: Authorized content (DataService)

When table permissions are requested or requests are processed, event messages are generated in DataWorks Security Center. The arrayData field is added to the event messages that are sent to EventBridge. Sample data content of arrayData if the assignmentCategory field is set to DataService:

{ "resourceId":"DsApiDeploy/******/workspaceId/******/dsDeployId/******", "ownerName":"******", "resourceVersion":1, "name":"api_api", "dsDeployId":"******", "workspaceName":"da_******", "id":"******", "type":1, "ownerId":"19****735", "url":"https://******.data.aliyun.com/?projectId=******&type=api&id=******&version=***&defaultProjectId=******", "workspaceId":"******" }

The following table describes the fields in the preceding sample code.

Field

Type

Description

resourceId

String

The resource ID.

ownerName

String

The name of the resource owner.

resourceVersion

Long

The version of the resource.

name

String

The name of the resource.

dsDeployId

String

The ID of the API published in DataService Studio.

workspaceName

String

The name of the workspace.

id

String

The unique ID of the resource.

type

String

The type of the resource. Valid values:

  • 1: API

  • 2: function

  • 3: service orchestration

ownerId

String

The base ID of the resource owner.

url

String

The URL for DataService Studio.

workspaceId

String

The workspace ID.

Events of Data Quality

Events

Event category

Event and event-generation operation

Regular event

Extension point event

Event type in EventBridge

Event code in Extensions

Data quality check

Provide feedback on data quality check results

  • Provide feedback on data quality check results

image

image

dataworks:DqcCheck:DqcCheckFeedbackEvent

dqc-check-feedback-event

Report that a data quality check is complete

  • Send data quality check results, including whether the check is passed and the sampling information

image

image

dataworks:DqcCheck:DqcCheckFinishedEvent

dqc-check-finished-event

Pre-events for monitoring rules

Pre-event for Data Quality Rules Batch Create

image

image

dataworks:DqcCheck:BatchCreateDataQualityRules

batch-create-data-quality-rules

Pre-event for Data Quality Rules Batch Update

image

image

dataworks:DqcCheck:BatchUpdateDataQualityRules

batch-update-data-quality-rules

Pre-event for Data Quality Rules Batch Delete

image

image

dataworks:DqcCheck:BatchDeleteDataQualityRules

batch-delete-data-quality-rules

Pre-event for Data Quality Rule Update

image

image

dataworks:DqcCheck:UpdateDataQualityRule

update-data-quality-rule

Pre-events for monitors

Pre-event for Data Quality Evaluation Task Create

image

image

dataworks:DqcCheck:CreateDataQualityEvaluationTask

create-data-quality-evaluation-task

Pre-event for Data Quality Evaluation Task Update

image

image

dataworks:DqcCheck:UpdateDataQualityEvaluationTask

update-data-quality-evaluation-task

Pre-event for Data Quality Evaluation Task Clone

image

image

dataworks:DqcCheck:CloneDataQualityEvaluationTask

clone-data-quality-evaluation-task

Pre-event for Data Quality Evaluation Task Batch Delete

image

image

dataworks:DqcCheck:BatchDeleteDataQualityEvaluationTasks

batch-delete-data-quality-evaluation-tasks

Pre-events for subscription to monitor alerting information

Pre-event for Data Quality Evaluation Task Notification Create

image

image

dataworks:DqcCheck:CreateDataQualityEvaluationTaskNotification

create-data-quality-evaluation-task-notification

Pre-event for Data Quality Evaluation Task Notification Update

image

image

dataworks:DqcCheck:UpdateDataQualityEvaluationTaskNotification

update-data-quality-evaluation-task-notification

Pre-event for Data Quality Evaluation Task Notification Delete

image

image

dataworks:DqcCheck:DeleteDataQualityEvaluationTaskNotification

delete-data-quality-evaluation-task-notification

Message formats

Data quality check

  • Sample code of the message body for a check result feedback event:

    { "datacontenttype": "application/json;charset=utf-8", "data": { "ruleCheckId": 521771452, "feedbackContent": "Skip", "ruleId": 28610334, "createUser": "110755000425****", "taskId": "167644814****9a26ecf4063a88797", "beginTime": "1676448145000", "envType": "ODPS", "projectName": "test_mc_2303_kongjian", "projectId": 9***4, "tenantId": 28***656 } }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    ruleId

    Long

    The monitoring rule ID.

    ruleCheckId

    Long

    The auto-increment ID of the data quality check result.

    feedbackContent

    String

    The feedback content.

    createUser

    String

    The ID of the user who provides the feedback.

    taskid

    String

    The ID of the node that is associated with the monitoring rule.

    beginTime

    String

    The time when the feedback is provided.

    envType

    String

    The type of the data source to which the table associated with the monitoring rule belongs. Valid values: ODPS, EMR, and HOLO.

    projectName

    String

    The name of the data source to which the table associated with the monitoring rule belongs.

    projectId

    Long

    The DataWorks workspace ID.

    tenantId

    Long

    The DataWorks tenant ID.

  • Sample code of the message body for a check completion event:

    { "datacontenttype": "application/json;charset=utf-8", "data": { "projectId": 9***4, "tenantId": 28***656, "id": 52177****, "taskId": "1671***7a6", "entityId": 1562***, "ruleId": 28610334, "property": "-", "bizdate": "2023-02-09 00:00:00", "dateType": "YMD", "actualExpression": "ds\u003d20230210", "matchExpression": "ds\u003d$[yyyymmdd]", "blockType": 1, "checkResult": 0, "eventCode": "dqc-check-finished-event", "checkResultStatus": 0, "methodName": "table_count", "beginTime": "2023-02-15 20:14:48", "endTime": "2023-02-15 20:14:55", "timeConsuming": "7s", "externalType": "CWF2", "externalId": "triggerByManual", "discrete": false, "fixedCheck": true, "referenceValue": [ { "bizDate": "3000-12-31 00:00:00", "discreteProperty": "Number of rows, 1 day difference", "value": 0.0, "singleCheckResult": 0 } ], "sampleValue": [ { "bizDate": "2023-02-09 00:00:00", "value": 3.0 } ], "trend": "\u003e\u003d", "expectValue": 0.0, "op": "\u003e\u003d", "projectName": "test_mc_2303_kongjian", "tableName": "sx_dim_1209_001", "templateId": 47, "checkerType": 0, "ruleName": "Difference compared with the previous day", "isPrediction": false, "feedbackStatus": 0, "whetherToFilterDirtyData": false } }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    id

    Long

    The ID of the primary key for the check process. Each time a check is triggered, a record of the primary key ID is added.

    projectId

    Long

    The DataWorks workspace ID.

    tenantId

    Long

    The DataWorks tenant ID.

    taskId

    String

    The check task ID.

    entityId

    Long

    The partition filter expression ID.

    ruleId

    Long

    The rule ID.

    property

    String

    The field whose data quality is checked based on the monitoring rule. This field is a column in the data source table that is monitored.

    bizdate

    Long

    The data timestamp. If the quality of offline data needs to be checked, the value is one day earlier than the time when you perform the data quality check in most cases.

    dateType

    String

    The scheduling frequency. In most cases, the value is YMD, which indicates that the node is scheduled by year, month, or day.

    actualExpression

    String

    The partition in the monitored data source table.

    matchExpression

    String

    The partition filter expression.

    blockType

    Integer

    The strength of the monitoring rule. The strength of a monitoring rule indicates the importance of the rule. Valid values:

    • 1: The monitoring rule is a strong rule.

    • 0: The monitoring rule is a weak rule.

    You can specify whether a monitoring rule is a strong rule based on your business requirements. If a monitoring rule is a strong rule and the critical threshold is exceeded, a critical alert is reported and nodes that are associated with the rule are blocked from running.

    checkResult

    Integer

    The status of the check result. Valid values:

    • -1: An exception occurs during the check.

    • 0: The monitored data passes the quality check.

    • 1: The warning threshold is exceeded.

    • 2: The critical threshold is exceeded.

    methodName

    String

    The method used to collect sample data, such as avg, count, sum, min, max, count_distinct, user_defined, table_count, table_size, table_dt_load_count, table_dt_refuseload_count, null_value, null_value/table_count, (table_count-count_distinct)/table_count, or table_count-count_distinct.

    beginTime

    Long

    The time when the check process started.

    endTime

    Long

    The time when the check process ended.

    timeConsuming

    String

    The time that was taken to run the monitoring task.

    externalType

    String

    The type of the scheduling system. Only CWF2 is supported. If the externalType field is left empty, a manual test node is used.

    externalId

    String

    • If the externalType field is set to CWF2, the value is the ID of a node that is periodically scheduled.

    • If the externalType field is left empty, the externalId field is set to triggerByManual, which indicates that the node is manually triggered.

    discrete

    Boolean

    Indicates whether discrete monitoring is performed. Valid values:

    • true

    • false

    fixedCheck

    Boolean

    Indicates whether the monitoring is performed based on a fixed value. Valid values:

    • true

    • false

    referenceValue

    The historical sample values.

    bizDate

    Long

    The data timestamp. If the quality of offline data needs to be checked, the value is one day earlier than the time when you perform the data quality check in most cases.

    discreteProperty

    String

    The values of the sample field that are grouped by using the GROUP BY clause. For example, the values of the Gender field are grouped by using the GROUP BY clause. In this case, the values of the DiscreteProperty parameter are Male, Female, and null.

    value

    Decimal

    The sample value.

    singleCheckResult

    Integer

    The string of the check result.

    sampleValue

    The current sample values.

    bizDate

    Long

    The data timestamp. If the quality of offline data needs to be checked, the value is one day earlier than the time when you perform the data quality check in most cases.

    value

    Decimal

    The sample value.

    trend

    String

    The trend of the check result.

    expectValue

    Double

    The expected value.

    op

    String

    The comparison operator.

    projectName

    String

    The name of the compute engine or data source whose data quality you want to monitor.

    tableName

    String

    The name of the table that is monitored.

    templateId

    Integer

    The ID of the data quality monitoring template you use.

    checkerType

    Integer

    The type of the checker.

    ruleName

    String

    The name of the rule.

    isPrediction

    Boolean

    Indicates whether the check result meets your business requirements. Valid values:

    • true

    • false

    comment

    String

    The description of the monitoring rule.

    eventCode

    String

    The event code of the extension point event.

Pre-events for monitoring rules (create, update, and delete multiple monitoring rules at a time, and update a monitoring rule)

  • Sample code of the message body for a pre-event of creating multiple monitoring rules at a time:

    { "datacontenttype": "application/json;charset=utf-8", "data": { "eventCode": "batch-create-data-quality-rules", "projectId": 30***03, "tenantId": 28***656, "operator": "19***735", "operationTime": 1734505954897, "dataQualityTaskId": 1001, "target": { "databaseType": "maxcompute", "tableGuid": "odps.project_demo.tb_table_demo" }, "rules": [ { "name": "Table is not empty", "enabled": true, "severity": "High", "description": "Check the monitoring rule creation operation", "templateCode": "system:table:table_count:fixed:0", "samplingConfig": { "metric": "count" }, "checkingConfig": { "type": "fixed", "thresholds": { "expected": { "expression": "$checkValue > 0" }, "critical": { "expression": "$checkValue <= 0" } } } } ] } }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    projectId

    List

    The DataWorks workspace ID.

    operator

    String

    The UID of the user that performs the operation.

    operationTime

    Long

    The operation time.

    dataQualityTaskId

    Long

    The ID of the monitor with which the monitoring rule is associated. This field can be left empty.

    target

    DataQualityTarget

    The object monitored by using the monitoring rule.

    databaseType

    String

    The type of the database to which the table belongs. Valid values:

    • MaxCompute

    • EMR

    • CDH

    • Hologres

    • AnalyticDB for PostgreSQL

    tableGuid

    String

    The unique ID of the table in Data Map.

    rules

    List<DataQualityRule>

    The monitoring rules.

    name

    String

    The name of the rule.

    enabled

    Boolean

    Indicates whether the rule is enabled.

    severity

    String

    The strength of the rule. Valid values:

    • High

    • Normal

    description

    String

    The description of the rule.

    templateCode

    String

    The rule template referenced when the rule is created.

    samplingConfig

    SamplingConfig

    The sampling settings.

    metric

    String

    The metric used for sampling. Valid values:

    • Count: the number of rows in the table.

    • Min: the minimum value of the field.

    • Max: the maximum value of the field.

    • Avg: the average value of the field.

    • DistinctCount: the number of unique values of the field after deduplication.

    • DistinctPercent: the proportion of the number of unique values of the field after deduplication to the number of rows in the table.

    • DuplicatedCount: the number of duplicated values of the field.

    • DuplicatedPercent: the proportion of the number of duplicated values of the field to the number of rows in the table.

    • TableSize: the table size.

    • NullValueCount: the number of rows in which the field value is null.

    • NullValuePercent: the proportion of the number of rows in which the field value is null to the number of rows in the table.

    • GroupCount: the field value and the number of rows for each field value.

    • CountNotIn: the number of rows in which the field values are different from the referenced values that you specified in the rule.

    • CountDistinctNotIn: the number of unique values that are different from the referenced values that you specified in the rule after deduplication.

    • UserDefinedSql: custom SQL statements for sample data collection.

    checkingConfig

    CheckingConfig

    The check settings for sample data.

    type

    String

    The threshold calculation method. Valid values:

    • Fixed

    • Fluctation

    • FluctationDiscreate

    • Auto

    • Average

    • Variance

    thresholds

    Thresholds

    The threshold settings.

    expected

    Threshold

    The expected threshold setting.

    expression

    String

    The threshold expression.

    critical

    Threshold

    The threshold setting for critical alerts.

  • Sample code of the message body for a pre-event of updating multiple monitoring rules at a time:

    { "datacontenttype": "application/json;charset=utf-8", "data": { "eventCode": "update-data-quality-rule", "projectId": 30***03, "tenantId": 28***656, "operator": "19***735", "operationTime": 1734505954897, "id": 100001, "name": "Table is not empty", "enabled": true, "severity": "High", "description": "Check the monitoring rule creation operation", "templateCode": "system:table:table_count:fixed:0", "samplingConfig": { "metric": "count" }, "checkingConfig": { "type": "fixed", "thresholds": { "expected": { "expression": "$checkValue > 0" }, "critical": { "expression": "$checkValue <= 0" } } } } }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    eventCode

    String

    The event code.

    projectId

    Long

    The workspace ID.

    tenantId

    Long

    The tenant ID.

    operator

    String

    The user UID.

    operationTime

    Long

    The operation time.

    id

    Long

    The rule ID.

    name

    String

    The name of the rule.

    enabled

    Boolean

    Indicates whether the rule is enabled. Valid values:

    true

    false

    severity

    String

    The strength of the rule. Valid values:

    • High

    • Normal

    description

    String

    The description of the rule.

    templateCode

    String

    The configuration of the partitioned table.

    samplingConfig

    SamplingConfig

    The sampling settings.

    metric

    String

    The metric used for sampling. Valid values:

    • Count: the number of rows in the table.

    • Min: the minimum value of the field.

    • Max: the maximum value of the field.

    • Avg: the average value of the field.

    • DistinctCount: the number of unique values of the field after deduplication.

    • DistinctPercent: the proportion of the number of unique values of the field after deduplication to the number of rows in the table.

    • DuplicatedCount: the number of duplicated values of the field.

    • DuplicatedPercent: the proportion of the number of duplicated values of the field to the number of rows in the table.

    • TableSize: the table size.

    • NullValueCount: the number of rows in which the field value is null.

    • NullValuePercent: the proportion of the number of rows in which the field value is null to the number of rows in the table.

    • GroupCount: the field value and the number of rows for each field value.

    • CountNotIn: the number of rows in which the field values are different from the referenced values that you specified in the rule.

    • CountDistinctNotIn: the number of unique values that are different from the referenced values that you specified in the rule after deduplication.

    • UserDefinedSql: custom SQL statements for sample data collection.

    checkingConfig

    CheckingConfig

    The check settings for sample data.

    type

    String

    The threshold calculation method. Valid values:

    • Fixed

    • Fluctation

    • FluctationDiscreate

    • Auto

    • Average

    • Variance

    thresholds

    Thresholds

    The threshold settings.

    expected

    Threshold

    The expected threshold setting.

    expression

    String

    The threshold expression.

    critical

    Threshold

    The threshold setting for critical alerts.

  • Sample code of the message body for a pre-event of deleting multiple monitoring rules at a time:

    { "datacontenttype": "application/json;charset=utf-8", "data": { "eventCode": "batch-delete-data-quality-rules", "ids": [ 10***01, 10***02, 10***03 ], "projectId": 30***03, "tenantId": 524***4736, "operator": "19***735", "operationTime": 1734505954897 } }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    projectId

    List

    The DataWorks workspace ID.

    operator

    String

    The UID of the user that performs the operation.

    operationTime

    Long

    The operation time.

    ids

    List<Long>

    The IDs of deleted monitoring rules.

    tenantId

    String

    The tenant ID.

    eventCode

    String

    The event code.

  • Sample code of the message body for a pre-event of updating a monitoring rule:

    { "datacontenttype": "application/json;charset=utf-8", "data": { "eventCode": "update-data-quality-rule", "projectId": 30***03, "tenantId": 524***4736, "operator": "110***3538", "operationTime": 1734505954897, "id": 100001, "name": "Table is not empty", "enabled": true, "severity": "High", "description": "Check the monitoring rule creation operation", "templateCode": "system:table:table_count:fixed:0", "samplingConfig": { "metric": "count" }, "checkingConfig": { "type": "fixed", "thresholds": { "expected": { "expression": "$checkValue > 0" }, "critical": { "expression": "$checkValue <= 0" } } } } }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    eventCode

    String

    The event code.

    projectId

    Long

    The workspace ID.

    tenantId

    Long

    The tenant ID.

    operator

    String

    The user UID.

    operationTime

    Long

    The operation time.

    id

    Long

    The rule ID.

    name

    String

    The name of the rule.

    enabled

    Boolean

    Indicates whether the rule is enabled. Valid values:

    true

    false

    severity

    String

    The strength of the rule. Valid values:

    • High

    • Normal

    description

    String

    The description of the rule.

    templateCode

    String

    The configuration of the partitioned table.

    samplingConfig

    SamplingConfig

    The sampling settings.

    metric

    String

    The metric used for sampling. Valid values:

    • Count: the number of rows in the table.

    • Min: the minimum value of the field.

    • Max: the maximum value of the field.

    • Avg: the average value of the field.

    • DistinctCount: the number of unique values of the field after deduplication.

    • DistinctPercent: the proportion of the number of unique values of the field after deduplication to the number of rows in the table.

    • DuplicatedCount: the number of duplicated values of the field.

    • DuplicatedPercent: the proportion of the number of duplicated values of the field to the number of rows in the table.

    • TableSize: the table size.

    • NullValueCount: the number of rows in which the field value is null.

    • NullValuePercent: the proportion of the number of rows in which the field value is null to the number of rows in the table.

    • GroupCount: the field value and the number of rows for each field value.

    • CountNotIn: the number of rows in which the field values are different from the referenced values that you specified in the rule.

    • CountDistinctNotIn: the number of unique values that are different from the referenced values that you specified in the rule after deduplication.

    • UserDefinedSql: custom SQL statements for sample data collection.

    checkingConfig

    CheckingConfig

    The check settings for sample data.

    type

    String

    The threshold calculation method. Valid values:

    • Fixed

    • Fluctation

    • FluctationDiscreate

    • Auto

    • Average

    • Variance

    thresholds

    Thresholds

    The threshold settings.

    expected

    Threshold

    The expected threshold setting.

    expression

    String

    The threshold expression.

    critical

    Threshold

    The threshold setting for critical alerts.

Pre-events for monitors (create, update, and clone a monitor, and delete multiple monitors at a time)

  • Sample code of the message body for a pre-event of creating or updating a monitor:

    { "datacontenttype": "application/json;charset=utf-8", "data": { "eventCode": "create-data-quality-evaluation-task", "name": "Table data accuracy monitoring", "description": "Monitoring is triggered after the auto triggered instance for data writing to a table is successfully run. Check whether the output meets your business requirements", "target": { "databaseType": "emr", "tableGuid": "an-emr-table-guid" }, "trigger": { "type": "ByScheduledTaskInstance", "taskIds": [ 1001, 1002 ] }, "dataSourceId": 201, "runtimeConf": "{ \"queue\": \"default\", \"sqlEngine\": \"HIVE_SQL\" }", "rules": [ { "name": "Table is not empty", "enabled": true, "severity": "High", "description": "Check the monitoring rule creation operation", "templateCode": "system:table:table_count:fixed:0", "samplingConfig": { "metric": "count" }, "checkingConfig": { "type": "fixed", "thresholds": { "expected": { "expression": "$checkValue > 0" }, "critical": { "expression": "$checkValue <= 0" } } } }, { "id": 100002 "name": "Number of rows in a table, greater than 100", "checkingConfig": { "type": "fixed", "thresholds": { "expected": { "expression": "$checkValue > 100" }, "critical": { "expression": "$checkValue <= 100" } } } } ], "hooks": [ { "type": "BlockTaskInstance", "condition": "(${severity} == \"High\" AND ${status} == \"Critical\") OR (${severity} == \"High\" AND ${status} == \"Error\")" } ], "notifications": { "condition": "(${severity} == \"High\" AND ${status} == \"Warned\") OR (${severity} == \"Normal\" AND ${status} == \"Critical\") OR (${severity} == \"Normal\" AND ${status} == \"Warned\") OR (${severity} == \"Normal\" AND ${status} == \"Error\")", "notifications": [ { "channels": [ "Mail", "Sms" ], "notificaionReceivers": [ { "receiverType": "AliUid", "receiverValues": [ "1107550004253538", "51107550004253538" ] } ] }, { "channels": [ "Dingding" ], "notificaionReceivers": [ { "receiverType": "DingdingUrl", "receiverValues": [ "https://api.dingding.com/message-boxes/b1/messages", "https://api.dingding.com/message-boxes/b2/messages" ], "extension": "{ \"atAll\": true }" } ] } ] }, "projectId": 30***03, "tenantId": 524***4736, "operator": "110***3538", "operationTime": 1734505954897 } }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    eventCode

    String

    The event code.

    name

    String

    The name of the monitor.

    description

    String

    The description of the monitor.

    target

    DataQualityTarget

    The object monitored by using the monitor.

    databaseType

    String

    The type of the database to which the table belongs. Valid values:

    • MaxCompute

    • EMR

    • CDH

    • Hologres

    • AnalyticDB for PostgreSQL

    tableGuid

    String

    The unique ID of the table in Data Map.

    trigger

    DataQualityEvaluationTaskTrigger

    The trigger configuration of the monitor.

    type

    String

    The type of the event that can trigger the running of the monitor. Valid values:

    • ByScheduledTaskInstance: The auto triggered instance is successfully run. This type is available only in public cloud scenarios.

    • ByManual: The running of the monitor is manually triggered.

    taskIds

    Array<Long>

    The IDs of the auto triggered nodes of which the instances are successfully run. This parameter takes effect only if the Type parameter is set to ByScheduledTaskInstance.

    dataSourceId

    Long

    The ID of the data source that is used when the monitor is run.

    runtimeConf

    String

    The configuration of the data source. The value of the queue field is default, and that of the sqlEngine field is SPARK-SQL. The value default indicates the YARN queue for E-MapReduce (EMR) tasks, and the value SPARK-SQL indicates the SQL engine that is used to collect EMR table data.

    rules

    List<DataQualityRule>

    The monitoring rules. For more information, see the Pre-events for monitoring rules (create, update, and delete multiple monitoring rules at a time, and update a monitoring rule) section in this topic.

    hooks

    Array<DataQualityEvaluationTaskHook>

    The callback configurations in the lifecycle of the monitor instance. Blocking an auto triggered node is a type of callback event. Only this type is supported.

    type

    String

    The type of the callback event. Valid values:

    BlockTaskInstance: An auto triggered node is blocked.

    condition

    String

    The trigger configuration of the callback event.

    notifications

    Array<Notification>

    The alert notification settings.

    projectId

    Long

    The workspace ID.

    tenantId

    Long

    The tenant ID.

    operator

    String

    The UID of the user that performs the operation.

    operationTime

    Long

    The operation time.

  • Sample code of the message body for a pre-event of cloning a monitor:

    { "datacontenttype": "application/json;charset=utf-8", "data": { "eventCode": "clone-data-quality-evaluation-task", "id": 10001, "targets": [ { "databaseType": "emr", "tableGuid": "an-emr-table-guid" }, { "databaseType": "emr", "tableGuid": "another-emr-table-guid" } ], "projectId": 9***4, "tenantId": 28***656, "operator": "19***735", "operationTime": 1734505954897 } }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    projectId

    Long

    The DataWorks workspace ID.

    tenantId

    String

    The tenant ID.

    operator

    String

    The UID of the user that performs the operation.

    operationTime

    Long

    The operation time.

    targets

    List<DataQualityTarget>

    The destinations to which the monitor is cloned.

    databaseType

    String

    The type of the database to which the table belongs. Valid values:

    • MaxCompute

    • EMR

    • CDH

    • Hologres

    • AnalyticDB for PostgreSQL

    tableGuid

    String

    The unique ID of the table in Data Map.

    id

    Long

    The ID of the monitor to be cloned.

    eventCode

    String

    The event code.

  • Sample code of the message body for a pre-event of deleting multiple monitors at a time:

    { "datacontenttype": "application/json;charset=utf-8", "data": { "eventCode": "batch-delete-data-quality-evaluation-tasks", "ids": [ 10001, 10002 ], "projectId": 9***4, "tenantId": 28***656, "operator": "19***735", "operationTime": 1734505954897 } }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    projectId

    Long

    The DataWorks workspace ID.

    operator

    String

    The UID of the user that performs the operation.

    operationTime

    Long

    The operation time.

    ids

    List<Long>

    The IDs of deleted monitors.

    tenantId

    String

    The tenant ID.

    eventCode

    String

    The event code.

Pre-events for subscription to monitor alerting information (create, update, and delete a data quality evaluation task notification)

  • Sample code of the message body for a pre-event of creating or deleting a data quality evaluation task notification:

    { "datacontenttype": "application/json;charset=utf-8", "data": { "eventCode": "create-data-quality-evaluation-task-notification", "dataQualityEvaluationTaskId": 10001, "channel": "sms", "receiverValue": "1107***38", "projectId": 30***03, "operator": "110***3538", "operationTime": 1734505954897 } }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    projectId

    Long

    The DataWorks workspace ID.

    operator

    String

    The UID of the user that performs the operation.

    operationTime

    Long

    The operation time.

    dataQualityEvaluationTaskId

    Long

    The monitor ID.

    channel

    String

    The type of the subscribed message sending channel. Valid values:

    • Mail

    • Sms

    • Phone

    • Feishu

    • Weixin

    • Dingding

    • Webhook

    receiverValue

    String

    The destination to which the subscribed message is sent.

    eventCode

    String

    The event code.

  • Sample code of the message body for a pre-event of updating a data quality evaluation task notification:

    { "datacontenttype": "application/json;charset=utf-8", "data": { "eventCode": "update-data-quality-evaluation-task-notification", "dataQualityEvaluationTaskId": 10001, "currentChannel": "sms", "currentReceiverValue": "1107***538", "updatedChannel": "sms", "updatedReceiverValue": "1107***538", "projectId": 30***03, "operator": "110***3538", "operationTime": 1734505954897 }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    projectId

    Long

    The DataWorks workspace ID.

    operator

    String

    The UID of the user that performs the operation.

    operationTime

    Long

    The operation time.

    dataQualityEvaluationTaskId

    Long

    The monitor ID.

    currentChannel

    String

    The type of the current subscribed message sending channel. Valid values:

    • Mail

    • Sms

    • Phone

    • Feishu

    • Weixin

    • Dingding

    • Webhook

    currentReceiverValue

    String

    The current destination to which the subscribed message is sent.

    updatedChannel

    String

    The type of the subscribed message sending channel after an update. Valid values:

    • Mail

    • Sms

    • Phone

    • Feishu

    • Weixin

    • Dingding

    • Webhook

    updatedReceiverValue

    String

    The destination to which the subscribed message is sent after an update.

    eventCode

    String

    The event code.

Tenant-level events

Tenant-level services generate tenant-level events. For example, an event that is generated when a workspace is deleted in the DataWorks console is a tenant-level event. You can know from the following tables the events supported by each DataWorks service, whether an event is a regular event or an extension point event, and the message format of an event.

On the Message formats tabs of this section, you can view only partial content of the format of an event message. To view a complete event message sent to EventBridge or Function Compute, see the Appendix: Message formats section in this topic.

Events of the DataWorks console

Events

Event category

Event and event-generation operation

Regular event

Extension point event

Event type in EventBridge

Event code in Extensions

Workspace deletion

Pre-event for Project Delete

image

image

dataworks:ProjectChange:DeleteProject

delete-project

Delete a workspace (post-event)

image

image

dataworks:ProjectChange:ProjectDeleted

project-deleted

Message formats

Message body for a workspace deletion event

  • Sample code of the message body for a pre-event of deleting a workspace within a tenant:

    { "data": { "eventCode": "delete-project", "projectId": 7***7, // The workspace ID. "tenantId": 2807****0784, // The tenant ID. "operator": "19***735 }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    operator

    String

    The UID of the user who deletes the DataWorks workspace.

    projectId

    Long

    The ID of the DataWorks workspace that you want to delete.

    tenantId

    Long

    The ID of the tenant to which the workspace that you want to delete belongs.

    eventCode

    String

    The event code of the extension point event.

  • Sample code of the message body for a post-event of deleting a workspace within a tenant:

    { "data": { "eventCode": "project-deleted", "tenantId": 28***656, "blockBusiness": false, "projectName": "test2", "projectId": 9***4, "operator": "19***735", "timestamp": 1702260556896 } }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    operator

    String

    The UID of the user who deletes the DataWorks workspace.

    projectId

    Long

    The ID of the DataWorks workspace that you want to delete.

    projectName

    String

    The name of the DataWorks workspace that you want to delete.

    tenantId

    Long

    The ID of the tenant to which the workspace that you want to delete belongs.

    timestamp

    Long

    The timestamp at which the message is sent.

    eventCode

    String

    The event code of the extension point event.

Events of Upload and Download

Events

Event category

Event and event-generation operation

Regular event

Extension point event

Event type in EventBridge

Event code in Extensions

Data download and upload

Pre-event for Resources Create

image

image

dataworks:ResourcesDownload:DownloadResources

download-resources

Pre-event for Resources Download

image

image

dataworks:ResourcesDownload:DownloadResourcesExecute

download-resources-execute

Pre-event for Resources Upload

image

image

dataworks:ResourcesUpload:UploadDataToTable

upload-data-to-table

Message formats

Data download and upload

  • Sample code of the message body for a pre-event of downloading data (file generation):

    { "data": { "eventCode": "download-resources", "moduleType": "sqlx_query", "operatorBaseId": "123936573******", "operatorUid": "14931896037*******", "fileName": "File name.csv", "fileSize": 10241024, "datasourceId": "1111", "datasourceName": "odps_first", "queryDwProjectId": "9***4", "queryDwProjectName": "test_project", "dataRowSize": "123456", "sqlText": "select sku_code, sku_name from dim_sku", }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    moduleType

    String

    The source of data that you can download. Valid values:

    • entity_transfer: indicates that you can download data from the Transfer log tab. To go to this tab, perform the following operations: Choose Security policy > Entity transfer in the left-side navigation pane of the Security Center page. On the Entity transfer page, click the Transfer log tab.

    • develop_query: indicates that you can download data from the DataStudio page. You can execute SQL statements on the DataStudio page to query and download data.

    • sqlx_query: indicates that you can download data from the SQL Query page. You can execute SQL statements on the SQL Query page in DataAnalysis to query and download data.

    • dw_excel: indicates that you can download data from the Spreadsheet page in DataAnalysis.

    operatorBaseId

    String

    The base ID of the user who downloads data.

    operatorUid

    String

    The UID of the user who downloads data.

    fileName

    String

    The name of the downloaded file.

    fileSize

    Long

    The size of the downloaded file.

    datasourceId

    String

    The ID of the data source to which the downloaded data belongs.

    datasourceName

    String

    The name of the data source to which the downloaded data belongs.

    queryDwProjectId

    String

    The ID of the DataWorks workspace to which the downloaded data belongs.

    queryDwProjectName

    String

    The name of the DataWorks workspace to which the downloaded data belongs.

    dataRowSize

    Long

    The number of downloaded data records.

    sqlText

    String

    The SQL code that is used to query and download data.

    eventCode

    String

    The event code of the extension point event.

  • Sample code of the message body for a pre-event of downloading data (file download):

    { "datacontenttype": "application/json;charset=utf-8", "aliyunaccountid": "1493189603770213", "aliyunpublishtime": "2023-12-11T02:10:00.194Z", "data": { "eventCode": "download-resources-execute", "moduleType": "sqlx_query", "operatorBaseId": "123936573******", "operatorUid": "14931896037*******", "fileName": "File name.csv", "fileSize": 10241024, "datasourceId": "1111", "datasourceName": "odps_first", "queryDwProjectId": "9***4", "queryDwProjectName": "test_project", "dataRowSize": "123456", "sqlText": "select sku_code, sku_name from dim_sku", "ip": "198.10.X.X" }, "aliyunoriginalaccountid": "149318960******", "specversion": "1.0", "aliyuneventbusname": "default", "id": "2c3e41e5-3486-40ce-87d4-910f989cf2a7", "source": "acs.dataworks", "time": "2023-12-11T10:10:00.117Z", "aliyunregionid": "cn-shanghai", "type": "dataworks:ResourcesDownload:DownloadResourcesExecute" }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    moduleType

    String

    The source of data that you can download. Valid values:

    • entity_transfer: indicates that you can download data from the Transfer log tab. To go to this tab, perform the following operations: Choose Security policy > Entity transfer in the left-side navigation pane of the Security Center page. On the Entity transfer page, click the Transfer log tab.

    • develop_query: indicates that you can download data from the DataStudio page. You can execute SQL statements on the DataStudio page to query and download data.

    • sqlx_query: indicates that you can download data from the SQL Query page. You can execute SQL statements on the SQL Query page in DataAnalysis to query and download data.

    • dw_excel: indicates that you can download data from the Spreadsheet page in DataAnalysis.

    operatorBaseId

    String

    The base ID of the user who downloads data.

    operatorUid

    String

    The UID of the user who downloads data.

    fileName

    String

    The name of the downloaded file.

    fileSize

    Long

    The size of the downloaded file.

    datasourceId

    String

    The ID of the data source to which the downloaded data belongs.

    datasourceName

    String

    The name of the data source to which the downloaded data belongs.

    queryDwProjectId

    String

    The ID of the DataWorks workspace to which the downloaded data belongs.

    queryDwProjectName

    String

    The name of the DataWorks workspace to which the downloaded data belongs.

    dataRowSize

    Long

    The number of downloaded data records.

    sqlText

    String

    The SQL code that is used to query and download data.

    ip

    String

    The IP address of the device used by the user who downloads data.

    eventCode

    String

    The event code of the extension point event.

  • Sample code of the message body for a pre-event of uploading data:

    { "datacontenttype": "application/json;charset=utf-8", "aliyunaccountid": "1493189603770213", "aliyunpublishtime": "2023-12-11T02:10:00.194Z", "data": { "eventCode": "upload-data-to-table", "uploadSourceType": "LOCAL", "optTableType": "CREATE", "targetEngineType": "MAXCOMPUTE", "writeType": "OVERWRITE", "conflictMode": "IGNORE", "operatorBaseId": "12312*****", "operatorUid": "1222222*****", "datasourceId": "1111", "datasourceName": "odps_first", "tableGuid": "odps.mc_project.test_table", "queryDwProjectId": "9***4", "queryDwProjectName": "test_project", "fileSize": 123456 }, "aliyunoriginalaccountid": "149318960******", "specversion": "1.0", "aliyuneventbusname": "default", "id": "2c3e41e5-3486-40ce-87d4-910f989cf2a7", "source": "acs.dataworks", "time": "2023-12-11T10:10:00.117Z", "aliyunregionid": "cn-shanghai", "type": "dataworks:ResourcesUpload:UploadDataToTable" }

    The following table describes the fields in the preceding sample code.

    Field

    Type

    Description

    uploadSourceType

    String

    The source of data that you can upload. Valid values:

    • LOCAL: uploads on-premises files.

    • OSS: uploads Object Storage Service (OSS) objects.

    • DW_EXCEL: uploads data from the Spreadsheet page in DataAnalysis.

    • HTTP: uploads HTTP files.

    optTableType

    String

    The data upload type. Valid values:

    • CREATE: uploads data to a new table of a specified compute engine or data source.

    • IMPORT: uploads data to an existing table of a specified compute engine or data source.

    targetEngineType

    String

    The type of compute engine to which you want to upload data. Valid values:

    • MaxCompute

    • EMR Hive

    • Hologres

    writeType

    String

    The mode in which data is written to the destination table. Valid values:

    • OVERWRITE: overwrites data in the destination table.

    • APPEND: appends the uploaded data to the destination table.

    conflictMode

    String

    The policy to handle a primary key conflict that occurs when you write the uploaded data to the destination table. Valid values:

    • IGNORE: If a primary key conflict occurs, ignore the uploaded data.

    • REPLACE: If a primary key conflict occurs, delete the row that contains the conflicting data and then insert the uploaded data into the row. Fields that are not specified by the uploaded data are written as NULL.

    • UPDATE: The uploaded data overwrites data in the destination table. Only data of the fields specified by the uploaded data is overwritten. The data of unspecified fields in the destination table remains unchanged.

    operatorBaseId

    String

    The base ID of the user who uploads data.

    operatorUid

    String

    The UID of the user who uploads data.

    datasourceId

    String

    The ID of the data source to which you want to upload data.

    datasourceName

    String

    The name of the data source to which you want to upload data.

    tableGuid

    String

    The GUID of the table. Examples:

    • MaxCompute table: odps.maxcomputeProject.tableName

    • EMR Hive table: emr_hive.EMR cluster ID.schema.tableName

    • Hologres table: holo.Hologres instance ID.database

    queryDwProjectId

    String

    The ID of the DataWorks workspace to which the table belongs.

    queryDwProjectName

    String

    The name of the DataWorks workspace to which the table belongs.

    fileSize

    Long

    The size of the file to be uploaded. Unit: bytes.

    eventCode

    String

    The event code of the extension point event.

Appendix: Message formats

Formats of event messages sent to EventBridge

After you configure an event distribution channel in OpenEvent, event messages sent to EventBridge can be filtered based on the value of the Type field when workspace-level or tenant-level events are triggered in DataWorks. Sample format of an event message sent to EventBridge by using an event distribution channel:

{ "datacontenttype": "application/json;charset=utf-8",// The content format of data. datacontenttype supports only application/json. "data": { // The message content varies based on the message type. The following two fields are fixed in each message. For information about the message content of each type of event, see the preceding information. "tenantId": 28378****10656,// The tenant ID. Each Alibaba Cloud account in DataWorks corresponds to a tenant. Each tenant has its own tenant ID. To view the tenant ID, click the current account in the upper-right corner of the DataStudio page. In the panel that appears, click User Info in the Menu section. You can view the tenant ID in the User Info message. "eventCode": "xxxx"// }, "id": "539fd8f4-4ea1-4625-aa8b-6c906674****",// The event ID. The ID is the unique identifier of an event. "source": "acs.dataworks",// The event source. In this example, the event is pushed by DataWorks. "specversion": "1.0", "subject": "", "time": "2020-11-19T21:04:41+08:00",// The event generation time. "type": "dataworks:InstanceStatusChanges:InstanceStatusChanges",// The event type. The Type field is used in the EventBridge console to filter all event messages pushed by DataWorks. Each event has a different event type value. You can refer to the preceding information to obtain the event type. "aliyunaccountid": "123456789098****",// The ID of the Alibaba Cloud account. "aliyunpublishtime": "2020-11-19T21:04:42.179PRC",// The time when EventBridge receives an event. "aliyuneventbusname": "default",// The name of the EventBridge event bus used to receive DataWorks event messages. "aliyunregionid": "cn-hangzhou",// The region where events are received. "aliyunpublishaddr": "172.25.XX.XX" }

A complete event message contains information such as the body, ID, source, and generation time of the event message. The following table describes the key fields in the preceding sample code.

Field

Type

Description

data

object

The body of the event message. The structure of a message body and the fields contained in a message body vary based on the type of the event. For more information, see the following sections in this topic:

For information about message formats of events in DataStudio, see the Events of DataStudio section in this topic.

For information about message formats of events in Data Integration, see the Events of Data Integration section in this topic.

For information about message formats of events in Operation Center, see the Events of Operation Center section in this topic.

For information about message formats of events in Security Center, see the Events of Security Center section in this topic.

For information about message formats of events in Data Quality, see the Events of Data Quality section in this topic.

id

String

The unique ID of the event message. You can identify an event message based on the ID of the event message.

type

String

The type of the event. This field is used to describe the event type of the event source. Sample values:

  • dataworks:FileChange:CommitFile: a file committing event.

  • dataworks:FileChange:DeployFile: a file deployment event.

The Type field is used in the EventBridge console to filter all event messages pushed by DataWorks. Each event has a different event type value. You can refer to the preceding information to obtain the event type.

Formats of event messages sent to Function Compute

If you develop and deploy an extension in DataWorks based on Function Compute, the related event message is sent to Function Compute as JSON data when an extension point event that is specified in the extension is triggered. Sample format of an event message sent to Function Compute:

{	"blockBusiness": true,	"eventCategoryType": "resources-download",// The event category.	"eventType": "upload-data-to-table",// The event type.	"extensionBizId": "job_6603***070",	"messageBody": { // The message content varies based on the message type. The following two fields are fixed in each message. For information about the message content of each type of event, see the preceding information. "tenantId": 28378****10656,// The tenant ID. Each Alibaba Cloud account in DataWorks corresponds to a tenant. Each tenant has its own tenant ID. To view the tenant ID, click the current account in the upper-right corner of the DataStudio page. In the panel that appears, click User Info in the Menu section. You can view the tenant ID in the User Info message. "eventCode": "xxxx"//	},	"messageId": "52d44ee7-b51f-4d4d-afeb-*******"// The event ID. The ID is the unique identifier of an event. }

The following table describes the fields in the preceding sample code.

Field

Type

Description

messageId

String

The ID of the event. The ID is the unique identifier of an event.

messageBody

The specific event message pushed by DataWorks. This field is used when an extension is developed. The field value varies based on the message type.

tenantId

The ID of the tenant. Each Alibaba Cloud account in DataWorks corresponds to a tenant. Each tenant has its own tenant ID. To view the tenant ID, click the current account in the upper-right corner of the DataStudio page. In the panel that appears, click User Info in the Menu section. You can view the tenant ID in the User Info message.

eventCode

The event code. It is used to identify a type of event message. For information about the event code for each event type, see the Event code in Extensions column in each Events table in this topic.