Replies: 3 comments
-
|
@jerryshao @yuqi1129 @shaofengshi WDYT? |
Beta Was this translation helpful? Give feedback.
-
|
I also looked at the current Polaris OpenLineage discussion and PoC branch:
Based on the public thread and PoC code, there seem to be two related directions being discussed in Polaris:
The PoC maps Polaris/Iceberg events roughly as follows:
One important limitation is that the PoC tries to infer CTAS/input lineage at the Polaris server side by tracking
For Gravitino, I think this means we should be careful about relying only on server-side lineage inference. A better separation may be:
This keeps Gravitino aligned with OpenLineage conventions while avoiding inaccurate lineage inference from catalog-server observations alone. |
Beta Was this translation helpful? Give feedback.
-
|
Seems reasonable to me. I think you can take a crack on this. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Background
Gravitino has OpenLineage integration support today, but the plugin is not open sourced in the OpenLineage community. This makes it harder to maintain, review, evolve, and align with OpenLineage's dataset model.
I would like to discuss whether we should first contribute Gravitino support to the OpenLineage community.
Context
OpenLineage dataset naming is datasource-oriented. For example, the Spark Iceberg integration can emit the physical storage dataset as the primary dataset and add a table identifier through the
symlinksfacet.For Gravitino, the logical resource model is different. A table is normally identified through:
This does not map directly to a single OpenLineage dataset name without choosing a convention.
Proposal
Add Gravitino support in the OpenLineage community first, and keep emitted dataset identifiers consistent with OpenLineage conventions.
On the Gravitino side, the server can translate OpenLineage dataset identifiers into Gravitino's internal resource model. For example, Gravitino could resolve a dataset by using one or more of:
This keeps OpenLineage producers aligned with OpenLineage naming, while allowing Gravitino to map lineage events back to
metalake.catalog.schema.table.References:
Beta Was this translation helpful? Give feedback.
All reactions