创建资源¶
要定义和调度从源系统的数据引入,需要创建资源。PUBLIC.CREATE_RESOURCE
过程是从 UI 或工作表来创建新资源的入口点。
要调用此过程,用户需要已获得 ADMIN
应用程序角色。
资源创建进程由几个阶段组成。其中一些可定制,但包含合理的默认值。各阶段如下:
初步验证
自定义验证
资源创建前的自定义逻辑
创建资源引入定义和引入进程
资源创建后的自定义逻辑
初步验证¶
初步验证在“资源创建”进程的最开始执行,并检查:
给定的输入数据是否代表有效的资源引入定义对象
具有给定
id
和resourceId
的资源是否不存在
自定义验证¶
自定义验证在初步验证之后执行,旨在支持特定于连接器的自定义逻辑。例如,它可用于验证给定资源在源系统中是否存在。
默认情况下,它会调用 PUBLIC.CREATE_RESOURCE_VALIDATE(resource VARIANT)
,返回 'response_code': 'OK'
。可以使用 SQL 脚本或使用 CreateResourceHandlerBuilder
提供 CreateResourceValidator
接口的自定义实施来将其覆盖。
如果自定义验证返回错误,则不执行后续步骤,并且 CREATE_RESOURCE
过程返回给定的错误响应。
资源创建前的自定义逻辑¶
您可以实施资源创建和调度前的自定义逻辑。例如,它可用于创建新的目标表,在其中保持引入数据。
默认情况下,它会调用 PUBLIC.PRE_CREATE_RESOURCE(resource VARIANT)
,返回 'response_code': 'OK'
。可以通过 PreCreateResourceCallback
脚本或使用 CreateResourceHandlerBuilder
提供 接口的自定义实现来将其覆盖。
如果自定义逻辑返回错误,则不执行后续步骤,并且 CREATE_RESOURCE
过程返回给定的错误响应。
创建资源引入定义和引入进程¶
在此步骤中,STATE.RESOURCE_INGESTION_DEFINITION
表中添加了新的记录。此外,在初始启用资源时(enabled
参数等于 true
),为每个提供的引入配置提供新的引入进程。引入进程以 SCHEDULED
状态创建,意味着稍后将开始引入。如果 enabled
标志设置为 false
,则不会创建引入进程,并且必须调用 ENABLE_RESOURCE
过程才能启用引入。
资源创建后的自定义逻辑¶
可在创建和调度资源后指定自定义逻辑。例如,它可用于创建新的目标表,在其中保持引入数据。
默认情况下,它会调用 PUBLIC.POST_CREATE_RESOURCE(id VARCHAR)
,返回 'response_code': 'OK'
。可以通过 SQL 脚本或使用 CreateResourceHandlerBuilder
提供 PostCreateResourceCallback
接口的自定义实现来将其覆盖。
如果自定义逻辑返回错误,CREATE_RESOURCE
过程将返回给定的错误响应,但不会回滚资源引入定义和引入进程的创建。
响应¶
成功响应¶
成功后,过程会返回类似如下的响应:
{ "response_code": "OK", "id": "<new resource ingestion definition id>" }
响应中返回的 id
是资源引入定义的 ID,之后可用于启用、禁用或更新资源。
错误响应¶
出错后,过程会返回类似如下的响应:
{ "response_code": "<ERROR_CODE>", "message": "<error message>" }
可能的错误代码包括:
INVALID_INPUT
– 提供过程的实参无效,无法创建有效的资源对象,或者给定 ID 的资源已经存在。CREATE_RESOURCE_ERROR
– 在创建新的资源引入定义或创建引入进程时发生了意外情况。所有更改均已回滚。