Apache Druid: a high performance real-time analytics database.
Go to file
imply-cheddar a8b916576d
Allow for appending tasks to co-exist with each other. (#12041)
* Allow for appending tasks to co-exist with each other.

Add a config parameter for appending tasks to allow them to
use a SHARED lock.  This will allow multiple appending tasks
to add segments to the same datasource at the same time.

This config should actually be the default, but it is added
as a config to enable a smooth transition/validation in
production settings before forcing it as the default
behavior going forward.

This change leverages the TaskLockType.SHARED that existed
previously, this used to carry the semantics of a READ lock,
which was "escalated" when the task wanted to actually
persist the segment.  As of many moons before this diff, the
SHARED lock had stopped being used but was still piped into
the code.  It turns out that with a few tweaks, it can be
adjusted to be a shared lock for append tasks to allow them
all to write to the same datasource, so that is what this does.

* Can only reuse the shared lock if using the same groupId

* Need to serialize out the task lock type

* Adjust Unit tests to expect new field in JSON
2021-12-09 16:46:40 -08:00
.github Lock hadoop dependencies to 2.8.5 (#11583) 2021-08-12 15:16:47 +05:30
.idea Use ExecutorService variables to assign ExecutorService Instances (#11373) 2021-06-25 16:56:34 -07:00
benchmarks Intern RowSignature in DruidSchema to reduce its memory footprint (#12001) 2021-12-08 15:11:13 +05:30
cloud bump version to 0.23.0-SNAPSHOT (#11670) 2021-09-08 15:56:04 -07:00
codestyle Remove use of deprecated PMD ruleset (#12044) 2021-12-09 13:04:27 -08:00
core Add parse error list API for stream supervisors, use structured object for parse exceptions, simplify parse exception message (#11961) 2021-12-09 15:42:55 -06:00
dev chore: fix case of GitHub (#10928) 2021-05-07 01:15:43 -07:00
distribution Support for hadoop 3 via maven profiles (#11794) 2021-10-30 22:46:24 +05:30
docs clarify time format for intervals (#12035) 2021-12-08 08:31:21 -08:00
examples Replace source call to make scripts more portable (#12014) 2021-12-06 13:41:25 +05:30
extendedset bump version to 0.23.0-SNAPSHOT (#11670) 2021-09-08 15:56:04 -07:00
extensions-contrib Add parse error list API for stream supervisors, use structured object for parse exceptions, simplify parse exception message (#11961) 2021-12-09 15:42:55 -06:00
extensions-core Add parse error list API for stream supervisors, use structured object for parse exceptions, simplify parse exception message (#11961) 2021-12-09 15:42:55 -06:00
helm/druid update Druid Chart README doc and removes unnecessary lock file (#11945) 2021-11-22 21:34:26 +08:00
hll bump version to 0.23.0-SNAPSHOT (#11670) 2021-09-08 15:56:04 -07:00
hooks Add thread count to pre-push hook to speed up checking (#11808) 2021-11-22 21:33:01 +08:00
indexing-hadoop Add parse error list API for stream supervisors, use structured object for parse exceptions, simplify parse exception message (#11961) 2021-12-09 15:42:55 -06:00
indexing-service Allow for appending tasks to co-exist with each other. (#12041) 2021-12-09 16:46:40 -08:00
integration-tests Make NodeRole available during binding; add support for dynamic registration of DruidService (#12012) 2021-12-03 11:59:00 -08:00
licenses Web console: Better hotkeys and library upgrades (#11365) 2021-06-17 18:24:29 -07:00
processing Add parse error list API for stream supervisors, use structured object for parse exceptions, simplify parse exception message (#11961) 2021-12-09 15:42:55 -06:00
publications De-incubation cleanup in code, docs, packaging (#9108) 2020-01-03 12:33:19 -05:00
server Add parse error list API for stream supervisors, use structured object for parse exceptions, simplify parse exception message (#11961) 2021-12-09 15:42:55 -06:00
services Make NodeRole available during binding; add support for dynamic registration of DruidService (#12012) 2021-12-03 11:59:00 -08:00
sql Return 400 when SQL query cannot be planned (#12033) 2021-12-08 21:49:54 +05:30
web-console Web console: use query actions in query view (#12037) 2021-12-08 13:01:29 -08:00
website Docs: Add multi-dimension partitioning doc; refactor native batch and separate into smaller topics. (#11983) 2021-12-03 16:37:14 +05:30
.asf.yaml Add .asf.yaml. (#9083) 2019-12-20 16:45:38 -08:00
.backportrc.json Add 0.18.0 to .backportrc.json to facilitate backport. (#9661) 2020-04-11 13:49:04 -07:00
.codecov.yml Use Codecov (#8388) 2019-08-28 08:49:30 -07:00
.dockerignore Add docker container for druid (#6896) 2019-02-08 12:12:28 +00:00
.gitignore Refactor ResponseContext (#11828) 2021-12-06 17:03:12 -08:00
.lgtm.yml Suppress LGTM warnings about stack trace exposure (#9631) 2020-04-09 17:31:03 -07:00
.travis.yml Support for hadoop 3 via maven profiles (#11794) 2021-10-30 22:46:24 +05:30
CONTRIBUTING.md Fix numbered list formatting in markdown. (#9664) 2020-04-21 20:18:12 -07:00
LABELS Add plain text README.txt, use relative link from README.md to build.md (#7611) 2019-05-09 21:29:26 -07:00
LICENSE support Aliyun OSS service as deep storage (#9898) 2020-07-01 22:20:53 -07:00
NOTICE license.yaml fixes for code introduced related to AWS RDS token based password provider in PR #9518 (#10885) 2021-03-10 12:59:25 -08:00
README.md Fix travis' link behind build badge (#11858) 2021-11-01 07:26:30 -07:00
README.template De-incubation cleanup in code, docs, packaging (#9108) 2020-01-03 12:33:19 -05:00
check_test_suite.py suppress false positive cve (#11699) 2021-09-13 20:45:38 -07:00
check_test_suite_test.py suppress false positive cve (#11699) 2021-09-13 20:45:38 -07:00
licenses.yaml Web console: query view improvements and other fixes (#12031) 2021-12-07 10:16:16 -08:00
owasp-dependency-check-suppressions.xml Support for hadoop 3 via maven profiles (#11794) 2021-10-30 22:46:24 +05:30
pom.xml Remove use of deprecated PMD ruleset (#12044) 2021-12-09 13:04:27 -08:00
setup-hooks.sh Add git pre-commit hook to source control (#9554) 2020-06-05 11:19:42 -10:00
upload.sh Adding licenses and enable apache-rat-plugin. (#6215) 2018-09-18 08:39:26 -07:00

README.md

Slack Build Status Language grade: Java Coverage Status Docker Helm


Website | Documentation | Developer Mailing List | User Mailing List | Slack | Twitter | Download


Apache Druid

Druid is a high performance real-time analytics database. Druid's main value add is to reduce time to insight and action.

Druid is designed for workflows where fast queries and ingest really matter. Druid excels at powering UIs, running operational (ad-hoc) queries, or handling high concurrency. Consider Druid as an open source alternative to data warehouses for a variety of use cases. The design documentation explains the key concepts.

Getting started

You can get started with Druid with our local or Docker quickstart.

Druid provides a rich set of APIs (via HTTP and JDBC) for loading, managing, and querying your data. You can also interact with Druid via the built-in console (shown below).

Load data

data loader Kafka

Load streaming and batch data using a point-and-click wizard to guide you through ingestion setup. Monitor one off tasks and ingestion supervisors.

Manage the cluster

management

Manage your cluster with ease. Get a view of your datasources, segments, ingestion tasks, and services from one convenient location. All powered by SQL systems tables, allowing you to see the underlying query for each view.

Issue queries

query view combo

Use the built-in query workbench to prototype DruidSQL and native queries or connect one of the many tools that help you make the most out of Druid.

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 in this repository and submit a pull request.

Community

Community support is available on the druid-user mailing list, which is hosted at Google Groups.

Development discussions occur on dev@druid.apache.org, which you can subscribe to by emailing dev-subscribe@druid.apache.org.

Chat with Druid committers and users in real-time on the #druid channel in the Apache Slack team. Please use this invitation link to join the ASF Slack, and once joined, go into the #druid channel.

Building from source

Please note that JDK 8 is required to build Druid.

For instructions on building Druid from source, see docs/development/build.md

Contributing

Please follow the community guidelines for contributing.

For instructions on setting up IntelliJ dev/intellij-setup.md

License

Apache License, Version 2.0