Apache Druid: a high performance real-time analytics database.
Go to file
Roman Leventov 75d9e5e7a7 DimensionSelector-related bug fixes and optimizations (fixes #3799, part of #3798) (#3858)
*  * Add DimensionSelector.idLookup() and nameLookupPossibleInAdvance() to allow better inspection of features DimensionSelectors supports, and safer code working with DimensionSelectors in BaseTopNAlgorithm, BaseFilteredDimensionSpec, DimensionSelectorUtils;
 * Add PredicateFilteringDimensionSelector, to make BaseFilteredDimensionSpec to be able to decorate DimensionSelectors with unknown cardinality;
 * Add DimensionSelector.makeValueMatcher() (two kinds) for DimensionSelector-side specifics-aware optimization of ValueMatchers;
 * Optimize getRow() in BaseFilteredDimensionSpec's DimensionSelector, StringDimensionIndexer's DimensionSelector and SingleScanTimeDimSelector;
 * Use two static singletons, TrueValueMatcher and FalseValueMatcher, instead of BooleanValueMatcher;
 * Add NullStringObjectColumnSelector singleton and use it in MapVirtualColumn

* Rename DimensionSelectorUtils.makeNonDictionaryEncodedIndexedIntsBasedValueMatcher to makeNonDictionaryEncodedRowBasedValueMatcher

* Make ArrayBasedIndexedInts constructor private, replace it's usages with of() static factory method

* Cache baseIdLookup in ForwardingFilteredDimensionSelector

* Fix a bug in DimensionSelectorUtils.makeRowBasedValueMatcher(selector, predicate, matchNull)

* Employ precomputed BitSet optimization in DimensionSelector.makeValueMatcher(value, matchNull) when lookupId() is not available, but cardinality is known and lookupName() is available

* Doc fixes

* Addressed comments

* Fix

* Fix

* Adjust javadoc of DimensionSelector.nameLookupPossibleInAdvance() for SingleScanTimeDimSelector

* throw UnsupportedOperationException instead of IAE in BaseTopNAlgorithm
2017-01-25 15:28:27 -08:00
api Exclude the transitive dependency LGPL jar since it is not needed (#3865) 2017-01-19 11:49:08 -08:00
aws-common Bump versions to 0.9.3-SNAPSHOT (#3524) 2016-09-29 13:53:32 -07:00
benchmarks SQL: Ditch CalciteConnection layer and add DruidMeta, extension aggregators. (#3852) 2017-01-19 16:32:20 -08:00
bytebuffer-collections Migrating extendedset from Metamarkets. (#3694) 2017-01-17 10:10:27 -08:00
codestyle Migrating extendedset from Metamarkets. (#3694) 2017-01-17 10:10:27 -08:00
common Sequences refactorings and removed unused code (part of #3798) (#3693) 2017-01-19 20:07:43 -08:00
distribution streaming version of select query (#3307) 2017-01-19 16:09:53 -06:00
docs Remove throttling on drop segments (#3736) 2017-01-20 10:02:19 -08:00
examples Improve startup script - create PID and LOG dir if they do not exist (#3808) 2017-01-02 09:20:22 -08:00
extendedset Migrating extendedset from Metamarkets. (#3694) 2017-01-17 10:10:27 -08:00
extensions-contrib DimensionSelector-related bug fixes and optimizations (fixes #3799, part of #3798) (#3858) 2017-01-25 15:28:27 -08:00
extensions-core catch all errors (#3844) 2017-01-24 18:01:30 -07:00
indexing-hadoop Enable auto license checking (#3836) 2017-01-10 18:13:47 -08:00
indexing-service IndexTask improvements (#3611) 2017-01-18 14:24:37 -08:00
integration-tests ITKafkaIndexingServiceTest fixes (#3872) 2017-01-22 14:37:35 -08:00
java-util Sequences refactorings and removed unused code (part of #3798) (#3693) 2017-01-19 20:07:43 -08:00
processing DimensionSelector-related bug fixes and optimizations (fixes #3799, part of #3798) (#3858) 2017-01-25 15:28:27 -08:00
publications Changes to lambda architecture paper required for HICSS (#3382) 2016-09-06 21:32:21 -07:00
server Remove throttling on drop segments (#3736) 2017-01-20 10:02:19 -08:00
services Enable auto license checking (#3836) 2017-01-10 18:13:47 -08:00
sql SQL: Use topN for single-dim queries with LIMIT but no ORDER BY. (#3867) 2017-01-20 09:59:28 -08:00
.gitignore move distribution artifacts to distribution/target 2015-10-30 12:40:05 -05:00
.travis.yml Enable parallel test (#3774) 2016-12-14 21:05:56 -08:00
CONTRIBUTING.md Add doc link to eclipse formatting settings as well (#3131) 2016-06-24 15:27:50 -07:00
DruidCorporateCLA.pdf fix CLA email / mailing address 2014-04-17 15:26:28 -07:00
DruidIndividualCLA.pdf fix CLA email / mailing address 2014-04-17 15:26:28 -07:00
LICENSE Clean up README and license 2015-02-18 23:09:28 -08:00
NOTICE Migrating extendedset from Metamarkets. (#3694) 2017-01-17 10:10:27 -08:00
README.md update readme (#2830) 2016-04-13 11:33:31 -07:00
druid_intellij_formatting.xml Make formatting IntelliJ 2016 friendly (#2978) 2016-05-18 12:42:21 -07:00
eclipse.importorder Merge pull request #2905 from javasoze/eclipse_formatting 2016-04-29 18:42:03 -07:00
eclipse_formatting.xml Merge pull request #2905 from javasoze/eclipse_formatting 2016-04-29 18:42:03 -07:00
pom.xml build sqlserver-metadata-storage contrib extension (#3871) 2017-01-20 14:39:15 -08:00
upload.sh upload.sh: Use awscli if s3cmd is not available. (#3114) 2016-06-08 17:01:46 -07:00

README.md

Build Status Coverage Status

Druid

Druid is a distributed, column-oriented, real-time analytics data store that is commonly used to power exploratory dashboards in multi-tenant environments.

Druid excels as a data warehousing solution for fast aggregate queries on petabyte sized data sets. Druid supports a variety of flexible filters, exact calculations, approximate algorithms, and other useful calculations.

Druid can load both streaming and batch data and integrates with Samza, Kafka, Storm, Spark, and Hadoop.

License

Apache License, Version 2.0

More Information

More information about Druid can be found on http://www.druid.io.

Documentation

You can find the documentation for the latest Druid release on the project website.

If you would like to contribute documentation, please do so under /docs/content in this repository and submit a pull request.

Getting Started

You can get started with Druid with our quickstart.

Reporting Issues

If you find any bugs, please file a GitHub issue.

Community

Community support is available on the druid-user mailing list(druid-user@googlegroups.com).

Development discussions occur on the druid-development list(druid-development@googlegroups.com).

We also have a couple people hanging out on IRC in #druid-dev on irc.freenode.net.

Contributing

Please follow the guidelines listed here.