Skip to content
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

projections + compaction + catalog + msq #17803

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

clintropolis
Copy link
Member

Description

changes:

  • CompactionTask now accepts a projections property which will cause classic and MSQ auto-compaction to build segments with projections
  • DataSourceCompactionConfig has been turned into an interface, with the existing implementation renamed to InlineSchemaDataSourceCompactionConfig
  • Added projections list to InlineSchemaDataSourceCompactionConfig to allow explicitly defining projections in an inline schema compaction spec
  • if not explicitly defined, compaction tasks will now preserve existing projections when processing segments, combining all named projections across the segments being processed - different projections with the same name are not checked for equivalence, rather one will be chosen dependent on segment processing order.
  • Added ability to define projections as a property of a datasource in the catalog
  • If projections are defined in a catalog, they will be automatically used by MSQ insert and replace queries
  • Added new experimental CatalogDataSourceCompactionConfig which allows populating much of a CompactionTask using information stored in the catalog. Currently this has some feature gaps compared to InlineSchemaDataSourceCompactionConfig, but will be improved in follow-up work to eventually become much more powerful than what can be expressed via a InlineSchemaDataSourceCompactionConfig
  • Moved MetadataCatalog to druid-server from the catalog extension
  • Added method to get MetadataCatalog from CatalogResolver
  • Added CatalogCoreModule to provide a null binding for MetadataCatalog, overridden if the catalog extension is loaded
  • Overlord added as a watcher for catalog like the Broker so that it can have CatalogResolver and MetadataCatalog available
  • Added binding for MetadataCatalog to Coordinator to have MetadataCatalg available

Release note

todo


This PR has:

  • been self-reviewed.
  • added documentation for new or modified features or behaviors.
  • a release note entry in the PR description.
  • added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
  • added or updated version, license, or notice information in licenses.yaml
  • added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
  • added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
  • added integration tests.
  • been tested in a test Druid cluster.
Not Found
changes:
* `CompactionTask` now accepts a `projections` property which will cause classic and MSQ auto-compaction to build segments with projections
* `DataSourceCompactionConfig` has been turned into an interface, with the existing implementation renamed to `InlineSchemaDataSourceCompactionConfig`
* Added projections list to `InlineSchemaDataSourceCompactionConfig` to allow explicitly defining projections in an inline schema compaction spec
* if not explicitly defined, compaction tasks will now preserve existing projections when processing segments, combining all named projections across the segments being processed - different projections with the same name are not checked for equivalence, rather one will be chosen dependent on segment processing order.
* Added ability to define projections as a property of a datasource in the catalog
* If projections are defined in a catalog, they will be automatically used by MSQ insert and replace queries
* Added new experimental `CatalogDataSourceCompactionConfig` which allows populating much of a `CompactionTask` using information stored in the catalog. Currently this has some feature gaps compared to `InlineSchemaDataSourceCompactionConfig`, but will be improved in follow-up work to eventually become much more powerful than what can be expressed via a `InlineSchemaDataSourceCompactionConfig`
* Moved `MetadataCatalog` to druid-server from the catalog extension
* Added method to get `MetadataCatalog` from `CatalogResolver`
* Added `CatalogCoreModule` to provide a null binding for `MetadataCatalog`, overridden if the catalog extension is loaded
* Overlord added as a watcher for catalog like the Broker so that it can have `CatalogResolver` and `MetadataCatalog` available
* Added binding for `MetadataCatalog` to Coordinator to have `MetadataCatalg` available
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant