-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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(ingest/superset): add datasets ingestion #10592
base: master
Are you sure you want to change the base?
feat(ingest/superset): add datasets ingestion #10592
Conversation
@hsheth2 Could you please review this. |
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.
Some higher level questions before I dive into the actual code
- Superset "datasets" are basically a view over data warehouse tables, right? For the most part, they have the same columns, plus some additional ones if using the "superset semantic layer"
- In this PR, the goal should be to draw warehouse <- superset dataset <- superset chart lineage, right? I suspect that ingesting only metadata about superset datasets, without lineage up to the warehouse, will make things confusing
Yes, you are right, this PR is aimed towards ingesting Superset datasets which are views over warehouse tables. These datasets are of interest because they allow users to interact with the data and leverage some capabilities of the Superset layer in a user-friendly way. So we decided it would be helpful to introduce these into Datahub so we could have a more detailed view of Superset lineage. It is especially useful for the period when all or some of the sources that are used in Superset are unavailable for ingesting to Datahub due to different reasons. For example, we could not currently ingest sources that use sql_alchemy in its plugins because the proxy that we use for access doesn't allow for it. One of such sources is Clickhouse. I also introduced "use_superset_platfrom" parameter to assign Superset platform to new datasets. Superset assigns the platform of the source to its datasets by default which indeed could be confusing and we are able to deal with it in this PR by changing platform to Superset. One more thing to consider is that I make a distinction between datasets that are based on tables and on views, these datasets receive "virtual" tag. |
@hsheth2 could you please review this, I believe this PR will bring value to those who mainly use metadata from Superset |
@Serge-B2 I think it makes sense to have the lineage look like this
I don't think it makes sense to have this be configurable - we should have an opinion on how it should be modeled. As far as implementation, we definitely will need all of the dataset-level lineage above, in addition to the schema for the superset virtual dataset that you've already extracted. Ideally, we also generate fine grained lineage from the superset dataset up to the warehouse table |
Checklist
This PR introduces support for the Datasets entity in the Superset data ingestion plugin, enhancing its integration capabilities with DataHub.