mirror of https://github.com/apache/druid.git
f8301a314f
changes: * Adds new `CompressedComplexColumn`, `CompressedComplexColumnSerializer`, `CompressedComplexColumnSupplier` based on `CompressedVariableSizedBlobColumn` used by JSON columns * Adds `IndexSpec.complexMetricCompression` which can be used to specify compression for the generic compressed complex column. Defaults to uncompressed because compressed columns are not backwards compatible. * Adds new definition of `ComplexMetricSerde.getSerializer` which accepts an `IndexSpec` argument when creating a serializer. The old signature has been marked `@Deprecated` and has a default implementation that returns `null`, but it will be used by the default implementation of the new version if it is implemented to return a non-null value. The default implementation of the new method will use a `CompressedComplexColumnSerializer` if `IndexSpec.complexMetricCompression` is not null/none/uncompressed, or will use `LargeColumnSupportedComplexColumnSerializer` otherwise. * Removed all duplicate generic implementations of `ComplexMetricSerde.getSerializer` and `ComplexMetricSerde.deserializeColumn` into default implementations `ComplexMetricSerde` instead of being copied all over the place. The default implementation of `deserializeColumn` will check if the first byte indicates that the new compression was used, otherwise will use the `GenericIndexed` based supplier. * Complex columns with custom serializers/deserializers are unaffected and may continue doing whatever it is they do, either with specialized compression or whatever else, this new stuff is just to provide generic implementations built around `ObjectStrategy`. * add ObjectStrategy.readRetainsBufferReference so CompressedComplexColumn only copies on read if required * add copyValueOnRead flag down to CompressedBlockReader to avoid buffer duplicate if the value needs copied anyway |
||
---|---|---|
.. | ||
aliyun-oss-extensions | ||
ambari-metrics-emitter | ||
cassandra-storage | ||
cloudfiles-extensions | ||
compressed-bigdecimal | ||
ddsketch | ||
distinctcount | ||
dropwizard-emitter | ||
druid-deltalake-extensions | ||
druid-iceberg-extensions | ||
gce-extensions | ||
graphite-emitter | ||
influx-extensions | ||
influxdb-emitter | ||
kafka-emitter | ||
kubernetes-overlord-extensions | ||
materialized-view-maintenance | ||
materialized-view-selection | ||
momentsketch | ||
moving-average-query | ||
opentelemetry-emitter | ||
opentsdb-emitter | ||
prometheus-emitter | ||
rabbit-stream-indexing-service | ||
redis-cache | ||
spectator-histogram | ||
sqlserver-metadata-storage | ||
statsd-emitter | ||
tdigestsketch | ||
thrift-extensions | ||
time-min-max | ||
virtual-columns | ||
README.md |
README.md
Community Extensions
Please contribute all community extensions in this directory and include a doc of how your extension can be used under docs/development/extensions-contrib/.
Please note that community extensions are maintained by their original contributors and are not packaged with the core Druid distribution. If you'd like to take on maintenance for a community extension, please post on dev@druid.apache.org to let us know!