Update OpenLineageDao to handle airflow run uuid conflicts #2097
+210
−86
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
As described in OpenLineage/OpenLineage#1056, the OpenLineage Airflow integration has been generating conflicting UUIDs based on the DAG name and the DagRun id without accounting for different namespaces. In Marquez installations that have multiple Airflow deployments with duplicated DAG names, we generate jobs whose parents have the wrong namespace.
Solution
While the real root cause fix is in the OpenLineage repo, this fix alleviates the problem for Airflow installations that will continue to publish events with the older OpenLineage library. This checks the namespace of the parent run and verifies that it matches the namespace in the
ParentRunFacet
. If not, it generates a new parent run id that will be written with the correct namespace. A new test verifies this behaviorChecklist
CHANGELOG.md
with details about your change under the "Unreleased" section (if relevant, depending on the change, this may not be necessary).sql
database schema migration according to Flyway's naming convention (if relevant)