-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: OpenLineage integration #15317
Conversation
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
826db91
to
51d908b
Compare
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
Quality Gate passed for 'open-metadata-ui'Issues Measures |
Quality Gate passed for 'open-metadata-ingestion'Issues Measures |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @mgorsk1! I think there were a couple of comments pending from the last review. Left two quick ones and we'll be good to go.
namespace = run_facet["facets"]["parent"]["job"]["namespace"] | ||
name = run_facet["facets"]["parent"]["job"]["name"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1 on this, will make maintaining and evolving things easier
From previous comment:
In the OpenLineageEvent we have defined run_facet of generic Dict type do you think we can be more
specific and define the exact model also to avoid keyerror in case when we did not receive the response in
expected format.
ingestion/src/metadata/ingestion/source/pipeline/openlineage/metadata.py
Show resolved
Hide resolved
ingestion/src/metadata/ingestion/source/pipeline/openlineage/metadata.py
Show resolved
Hide resolved
ingestion/src/metadata/ingestion/source/pipeline/openlineage/metadata.py
Show resolved
Hide resolved
ingestion/src/metadata/ingestion/source/pipeline/openlineage/metadata.py
Show resolved
Hide resolved
pipeline_name = self.get_pipeline_name(pipeline_details) | ||
try: | ||
description = f"""```json | ||
{json.dumps(pipeline_details.run_facet, indent=4).strip()}```""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
review!
@@ -192,17 +192,34 @@ def _( | |||
|
|||
@fqn_build_registry.add(DatabaseSchema) | |||
def _( | |||
_: Optional[OpenMetadata], # ES Search not enabled for Schemas | |||
metadata: Optional[OpenMetadata], # ES Search not enabled for Schemas |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
review if this impacts other parts of code and if this change can be avoided!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it's in line with fqn for Table and in general tests did not fail after this change
@@ -574,6 +591,43 @@ def build_es_fqn_search_string( | |||
return fqn_search_string | |||
|
|||
|
|||
def search_database_schema_from_es( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same for this
let's go over the pending topics on a separate PR |
Describe your changes:
Adds connector for collecting lineage using OpenLineage standard. Co-authored with @dechoma
I worked on adding OpenLineage connector because it's a widely used standard for harvesting lineage information and OpenMetadata was missing such integration.
This connector is targeted to users:
Type of change:
Checklist:
Fixes <issue-number>: <short explanation>