引入管理

连接器配置好后,就可以开始引入数据了。但是,连接器通常需要获取更多信息,才可以从源系统引入数据。大多数系统都至少以一定的粒度持久保存数据,无论是表、存储库、文件还是报告都如此。Snowflake Native SDK for Connectors 使用术语 resource,而不考虑原始系统中的名称。为识别资源并自定义其引入设置,使用 resource_ingestion_definitions。此外,引入的实际流程整理为 ingestion_processes,其中包括多个 ingestion_runs。这种抽象助力您更轻松地跟踪、调度和区分流程。

要求

本部分要求在本机应用程序安装期间至少执行以下 SQL 文件:

  • ingestion/ingestion_management.sql

  • ingestion/ingestion_definitions_view.sql

  • ingestion/ingestion_process.sql

  • ingestion/ingestion_run.sql

  • ingestion/resource_ingestion_definition.sql

资源引入定义

资源引入定义是一个通用实体,包含源系统中源数据的定义。为尽可能保持通用性,系统特定的选项将像作为基础 STATE.RESOURCE_INGESTION_DEFINITION 表中的 variants 持久保存。但是,存储库 ResourceIngestionDefinitionRepository 的 Java 定义是一个通用界面,可以更好地控制类型。

由于大多数资源引入定义可以在实现过程中进行自定义,因此开发者可以决定如何使用通用字段,然后在引入过程中使用它们。

资源引入定义的最重要的可自定义属性是:

  • parent_id

此可选参数允许将资源定义相互链接,例如,继承配置的一部分。

  • resource_id

variant 应该允许标识源系统中的资源,它应该是唯一的。

  • ingestion_configurations

此属性是引入的实际配置,每个定义可以有多个配置,例如,如果出于某种原因,同一资源应在两个不同的计划中引入或保存到多个接收器表中。此属性内部有一些必填字段,但是在定义自定义配置和数据目标时仍然允许一些灵活性。

  • resource_metadata

此属性应包含所需的任何其他信息,但不适合上述字段。

引入进程

引入进程是一个实体,表示引入已定义的资源的启用进程。它是在添加或启用资源后创建,并且应该在删除或禁用资源后完成。在某种程度上,它有点像操作系统中的后台进程,可以是活跃的,但不一定在特定时刻做任何工作。每当引入实际运行时,它都可以转换到 IN_PROGRESS 状态,否则它可以保持 SCHEDULED 状态。当调度工作时,scheduler 会检索所有 SCHEDULED 进程并为它们运行引入。

引入进程还可以用于定义不同类型的引入,例如,假设连接器每天加载一些数据,但由于某种原因,一些旧数据损坏,需要重新加载。如果是这种情况,那么可以引入一个新的进程 type,例如 RELOAD。然后,scheduler 可以拥有自定义逻辑,为不同类型的进程执行不同的操作。

引入运行

引入运行是另一个实体,用于存储关于过去的和正在进行的引入的信息。但是,此类数据比 ingestion_process 本身更精细。首先,引入运行应视为日志数据。其次,ingestion_run 是一个条目,仅描述长时间运行的进程期间的单次调用。因此,如果一天引入一次资源,那么每天都应该有新的引入运行条目。所有这些条目都将与单个进程相关联。

引入管理操作

创建新资源

资源创建进程用于定义和调度从源系统引入数据。如果最初应启用给定资源,它会创建资源引入定义记录和相应的引入进程。

有关更多信息,请参阅 创建资源

查看资源

PUBLIC.INGESTION_DEFINITIONS 视图中检查已配置的资源定义。但是,此视图仅返回有关每个资源的基本信息。所有自定义配置对最终用户都不可见,特别是因为其中一些配置可能由连接器的逻辑在内部生成。

禁用资源

“禁用资源”步骤用于停止为给定资源引入数据。它会完成活动引入进程并将资源引入定义标记为“已禁用”。

有关更多信息,请参阅 禁用资源

启用资源

“启用资源”用于开始为给定资源引入数据。它会创建新的引入进程并将资源引入定义标记为“已启用”。

有关更多信息,请参阅 启用资源

更新资源

“更新资源”用于为给定资源更改引入配置。它会修改资源引入定义并完成或创建新的引入进程。

有关更多信息,请参阅 更新资源

语言: 中文