Metadata Ingestion - Incremental Extraction
The default Metadata Ingestion roughly follows these steps:
- Fetch all the information from the Source.
- Compare the information with the OpenMetadata information to update it properly.
- Compare the information with the OpenMetadata information to delete entities that were deleted.
While on one hand this is a great simple way of doing things that works for most use cases since at every ingestion pipeline run we get the whole Source state, on other hand this is fetching and comparing a lot of data without need since if there were no structural changes we already know there is nothing to update on OpenMetadata.
We implemented the Incremental Extraction feature to improve the performance by diminishing the extraction and comparison of uneeded data.
How this is done depends a lot on the Source itself, but the general idea is to follow these steps:
- Fetch the last successful pipeline run.
- Add a small safety margin.
- Get all the structural changes since then.
- Flag deleted entities.
- Fetch/Compare only the entities with structural changes.
- Delete entities flagged for deletion.
External Ingestion
When using the Incremental Extraction feature with External Ingestions (ingesting using YAML files instead of setting it up from the UI), you must pass the ingestion pipeline fully qualified name to the configuration.
This should be {service_name}{pipeline_name}
Example: