引入管理¶
连接器配置好后,就可以开始引入数据了。但是,连接器通常需要获取更多信息,才可以从源系统引入数据。大多数系统都至少以一定的粒度持久保存数据,无论是表、存储库、文件还是报告都如此。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
视图中检查已配置的资源定义。但是,此视图仅返回有关每个资源的基本信息。所有自定义配置对最终用户都不可见,特别是因为其中一些配置可能由连接器的逻辑在内部生成。
禁用资源¶
“禁用资源”步骤用于停止为给定资源引入数据。它会完成活动引入进程并将资源引入定义标记为“已禁用”。
有关更多信息,请参阅 禁用资源。
启用资源¶
“启用资源”用于开始为给定资源引入数据。它会创建新的引入进程并将资源引入定义标记为“已启用”。
有关更多信息,请参阅 启用资源。
更新资源¶
“更新资源”用于为给定资源更改引入配置。它会修改资源引入定义并完成或创建新的引入进程。
有关更多信息,请参阅 更新资源。