Add missing delta-storage dependency and class loader workaround to Delta table ingestion#16648
Merged
abhishekrb19 merged 3 commits intoapache:masterfrom Jun 25, 2024
Merged
Conversation
With the upgrade to Kernel 3.2.0, the Druid Delta connector extension isn't able to ingest from Delta tables successfully. Please see delta-io/delta#3299 The underlying problem seems to be coming from https://github.com/delta-io/delta/blob/master/kernel/kernel-defaults/src/main/java/io/delta/kernel/defaults/internal/logstore/LogStoreProvider.java#L99 This patch is a workaround to setting the thread class loader explictly. The Kernel community may consider a fix in the next release as it's affected another connector as well.
abhishekagarwal87
approved these changes
Jun 25, 2024
abhishekagarwal87
approved these changes
Jun 25, 2024
abhishekrb19
added a commit
to abhishekrb19/incubator-druid
that referenced
this pull request
Sep 27, 2024
…ub.com/apache/druid/pull/16648/files This dependency was added in apache#16648 as a workaround to the class loader. Remove it.
10 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
With the upgrade to Kernel 3.2.0, the Druid Delta connector extension isn't able to read and ingest Delta tables successfully.
The Delta Kernel now requires the
delta-storagedependency, so add this in our connector. However, even after adding the dependency, reading from a Delta table fails with the following error:Please see the upstream issue delta-io/delta#3299 and fix delta-io/delta#3304. I verified the upstream fix by deploying a custom Kernel jar and reverting this Class loader workaround, so we should be able to remove it once we upgrade the Kernel to a later version.
But as the comments in this patch notes, this is only a temporary workaround until we update to the next upstream Kernel library version. The alternative to this patch would be to revert to 3.1.0 where this issue didn't exist. But we lose some new features and performance improvements made in 3.2.0.
Note that this issue wasn't caught in the unit tests present in our Druid extension because the test setup doesn't fully model an actual setup. For example, the
DeltaLakeDruidModuleconfiguration is skipped.I will follow up with a sanity IT to catch such issues in the future.
This PR has: