创建资源

要定义和调度从源系统的数据引入,需要创建资源。PUBLIC.CREATE_RESOURCE 过程是从 UI 或工作表来创建新资源的入口点。

要调用此过程,用户需要已获得 ADMIN 应用程序角色。

资源创建进程由几个阶段组成。其中一些可定制,但包含合理的默认值。各阶段如下:

  1. 初步验证

  2. 自定义验证

  3. 资源创建前的自定义逻辑

  4. 创建资源引入定义和引入进程

  5. 资源创建后的自定义逻辑

初步验证

初步验证在“资源创建”进程的最开始执行,并检查:

  • 给定的输入数据是否代表有效的资源引入定义对象

  • 具有给定 idresourceId 的资源是否不存在

自定义验证

自定义验证在初步验证之后执行,旨在支持特定于连接器的自定义逻辑。例如,它可用于验证给定资源在源系统中是否存在。

默认情况下,它会调用 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>"
}
Copy

响应中返回的 id 是资源引入定义的 ID,之后可用于启用、禁用或更新资源。

错误响应

出错后,过程会返回类似如下的响应:

{
  "response_code": "<ERROR_CODE>",
  "message": "<error message>"
}
Copy

可能的错误代码包括:

  • INVALID_INPUT – 提供过程的实参无效,无法创建有效的资源对象,或者给定 ID 的资源已经存在。

  • CREATE_RESOURCE_ERROR – 在创建新的资源引入定义或创建引入进程时发生了意外情况。所有更改均已回滚。

语言: 中文