From fea2ab7094e092a08b0a4c48bb447a6128f0cd94 Mon Sep 17 00:00:00 2001 From: Jonathan Wei Date: Thu, 9 Aug 2018 14:19:11 -0700 Subject: [PATCH] New docs intro (#6122) * New docs intro * PR comments * Fix arch diagram * PR comment * PR comment * PR comment --- docs/content/design/index.md | 305 ++++++++++++++++------------- docs/content/ingestion/overview.md | 279 ++++++++++++++++++++++++++ docs/content/toc.md | 10 +- docs/img/druid-architecture.png | Bin 0 -> 151681 bytes docs/img/druid-timeline.png | Bin 0 -> 36729 bytes 5 files changed, 461 insertions(+), 133 deletions(-) create mode 100644 docs/content/ingestion/overview.md create mode 100644 docs/img/druid-architecture.png create mode 100644 docs/img/druid-timeline.png diff --git a/docs/content/design/index.md b/docs/content/design/index.md index a39f9de163..a0bed6748d 100644 --- a/docs/content/design/index.md +++ b/docs/content/design/index.md @@ -2,152 +2,193 @@ layout: doc_page --- -# Druid Concepts +# What is Druid? + +Druid is a data store designed for high-performance slice-and-dice analytics +("[OLAP](http://en.wikipedia.org/wiki/Online_analytical_processing)"-style) on large data sets. Druid is most often +used as a data store for powering GUI analytical applications, or as a backend for highly-concurrent APIs that need +fast aggregations. Common application areas for Druid include: + +- Clickstream analytics +- Network flow analytics +- Server metrics storage +- Application performance metrics +- Digital marketing analytics +- Business intelligence / OLAP + +Druid's key features are: + +1. **Columnar storage format.** Druid uses column-oriented storage, meaning it only needs to load the exact columns +needed for a particular query. This gives a huge speed boost to queries that only hit a few columns. In addition, each +column is stored optimized for its particular data type, which supports fast scans and aggregations. +2. **Scalable distributed system.** Druid is typically deployed in clusters of tens to hundreds of servers, and can +offer ingest rates of millions of records/sec, retention of trillions of records, and query latencies of sub-second to a +few seconds. +3. **Massively parallel processing.** Druid can process a query in parallel across the entire cluster. +4. **Realtime or batch ingestion.** Druid can ingest data either realtime (ingested data is immediately available for +querying) or in batches. +5. **Self-healing, self-balancing, easy to operate.** As an operator, to scale the cluster out or in, simply add or +remove servers and the cluster will rebalance itself automatically, in the background, without any downtime. If any +Druid servers fail, the system will automatically route around the damage until those servers can be replaced. Druid +is designed to run 24/7 with no need for planned downtimes for any reason, including configuration changes and software +updates. +6. **Cloud-native, fault-tolerant architecture that won't lose data.** Once Druid has ingested your data, a copy is +stored safely in [deep storage](#deep-storage) (typically cloud storage, HDFS, or a shared filesystem). Your data can be +recovered from deep storage even if every single Druid server fails. For more limited failures affecting just a few +Druid servers, replication ensures that queries are still possible while the system recovers. +7. **Indexes for quick filtering.** Druid uses [CONCISE](https://arxiv.org/pdf/1004.0403) or +[Roaring](https://roaringbitmap.org/) compressed bitmap indexes to create indexes that power fast filtering and +searching across multiple columns. +8. **Approximate algorithms.** Druid includes algorithms for approximate count-distinct, approximate ranking, and +computation of approximate histograms and quantiles. These algorithms offer bounded memory usage and are often +substantially faster than exact computations. For situations where accuracy is more important than speed, Druid also +offers exact count-distinct and exact ranking. +9. **Automatic summarization at ingest time.** Druid optionally supports data summarization at ingestion time. This +summarization partially pre-aggregates your data, and can lead to big costs savings and performance boosts. + +# When should I use Druid? + +Druid is likely a good choice if your use case fits a few of the following descriptors: + +- Insert rates are very high, but updates are less common. +- Most of your queries are aggregation and reporting queries ("group by" queries). You may also have searching and +scanning queries. +- You are targeting query latencies of 100ms to a few seconds. +- Your data has a time component (Druid includes optimizations and design choices specifically related to time). +- You may have more than one table, but each query hits just one big distributed table. Queries may potentially hit more +than one smaller "lookup" table. +- You have high cardinality data columns (e.g. URLs, user IDs) and need fast counting and ranking over them. +- You want to load data from Kafka, HDFS, flat files, or object storage like Amazon S3. + +Situations where you would likely _not_ want to use Druid include: + +- You need low-latency updates of _existing_ records using a primary key. Druid supports streaming inserts, but not streaming updates (updates are done using +background batch jobs). +- You are building an offline reporting system where query latency is not very important. +- You want to do "big" joins (joining one big fact table to another big fact table). + +# Architecture + +Druid has a multi-process, distributed architecture that is designed to be cloud-friendly and easy to operate. Each +Druid process type can be configured and scaled independently, giving you maximum flexibility over your cluster. This +design also provides enhanced fault tolerance: an outage of one component will not immediately affect other components. + +Druid's process types are: + +* [**Historical**](../design/historical.html) processes are the workhorses that handle storage and querying on "historical" data +(including any streaming data that has been in the system long enough to be committed). Historical processes +download segments from deep storage and respond to queries about these segments. They don't accept writes. +* [**MiddleManager**](../design/middlemanager.html) processes handle ingestion of new data into the cluster. They are responsible +for reading from external data sources and publishing new Druid segments. +* [**Broker**](../design/broker.html) processes receive queries from external clients and forward those queries to Historicals and +MiddleManagers. When Brokers receive results from those subqueries, they merge those results and return them to the +caller. End users typically query Brokers rather than querying Historicals or MiddleManagers directly. +* [**Coordinator**](../design/coordinator.html) processes watch over the Historical processes. They are responsible for assigning +segments to specific servers, and for ensuring segments are well-balanced across Historicals. +* [**Overlord**](../design/overlord.html) processes watch over the MiddleManager processes and are the controllers of data ingestion +into Druid. They are responsible for assigning ingestion tasks to MiddleManagers and for coordinating segment +publishing. +* [**Router**](../development/router.html) processes are _optional_ processes that provide a unified API gateway in front of Druid Brokers, +Overlords, and Coordinators. They are optional since you can also simply contact the Druid Brokers, Overlords, and +Coordinators directly. + +Druid processes can be deployed individually (one per physical server, virtual server, or container) or can be colocated +on shared servers. One common colocation plan is a three-type plan: + +1. "Data" servers run Historical and MiddleManager processes. +2. "Query" servers run Broker and (optionally) Router processes. +3. "Master" servers run Coordinator and Overlord processes. They may run ZooKeeper as well. + +In addition to these process types, Druid also has three external dependencies. These are intended to be able to +leverage existing infrastructure, where present. + +* [**Deep storage**](#deep-storage), shared file storage accessible by every Druid server. This is typically going to +be a distributed object store like S3 or HDFS, or a network mounted filesystem. Druid uses this to store any data that +has been ingested into the system. +* [**Metadata store**](#metadata-storage), shared metadata storage. This is typically going to be a traditional RDBMS +like PostgreSQL or MySQL. +* [**ZooKeeper**](#zookeeper) is used for internal service discovery, coordination, and leader election. + +The idea behind this architecture is to make a Druid cluster simple to operate in production at scale. For example, the +separation of deep storage and the metadata store from the rest of the cluster means that Druid processes are radically +fault tolerant: even if every single Druid server fails, you can still relaunch your cluster from data stored in deep +storage and the metadata store. + +The following diagram shows how queries and data flow through this architecture: + + + +# Datasources and segments + +Druid data is stored in "datasources", which are similar to tables in a traditional RDBMS. Each datasource is +partitioned by time and, optionally, further partitioned by other attributes. Each time range is called a "chunk" (for +example, a single day, if your datasource is partitioned by day). Within a chunk, data is partitioned into one or more +"segments". Each segment is a single file, typically comprising up to a few million rows of data. Since segments are +organized into time chunks, it's sometimes helpful to think of segments as living on a timeline like the following: + + + +A datasource may have anywhere from just a few segments, up to hundreds of thousands and even millions of segments. Each +segment starts life off being created on a MiddleManager, and at that point, is mutable and uncommitted. The segment +building process includes the following steps, designed to produce a data file that is compact and supports fast +queries: + +- Conversion to columnar format +- Indexing with bitmap indexes +- Compression using various algorithms + - Dictionary encoding with id storage minimization for String columns + - Bitmap compression for bitmap indexes + - Type-aware compression for all columns -Druid is an open source data store designed for [OLAP](http://en.wikipedia.org/wiki/Online_analytical_processing) queries on event data. -This page is meant to provide readers with a high level overview of how Druid stores data, and the architecture of a Druid cluster. +Periodically, segments are committed and published. At this point, they are written to [deep storage](#deep-storage), +become immutable, and move from MiddleManagers to the Historical processes (see [Architecture](#architecture) above +for details). An entry about the segment is also written to the [metadata store](#metadata-storage). This entry is a +self-describing bit of metadata about the segment, including things like the schema of the segment, its size, and its +location on deep storage. These entries are what the Coordinator uses to know what data *should* be available on the +cluster. -## The Data +# Query processing -To frame our discussion, let's begin with an example data set (from online advertising): +Queries first enter the Broker, where the Broker will identify which segments have data that may pertain to that query. +The list of segments is always pruned by time, and may also be pruned by other attributes depending on how your +datasource is partitioned. The Broker will then identify which Historicals and MiddleManagers are serving those segments +and send a rewritten subquery to each of those processes. The Historical/MiddleManager processes will take in the +queries, process them and return results. The Broker receives results and merges them together to get the final answer, +which it returns to the original caller. - timestamp publisher advertiser gender country click price - 2011-01-01T01:01:35Z bieberfever.com google.com Male USA 0 0.65 - 2011-01-01T01:03:63Z bieberfever.com google.com Male USA 0 0.62 - 2011-01-01T01:04:51Z bieberfever.com google.com Male USA 1 0.45 - 2011-01-01T01:00:00Z ultratrimfast.com google.com Female UK 0 0.87 - 2011-01-01T02:00:00Z ultratrimfast.com google.com Female UK 0 0.99 - 2011-01-01T02:00:00Z ultratrimfast.com google.com Female UK 1 1.53 +Broker pruning is an important way that Druid limits the amount of data that must be scanned for each query, but it is +not the only way. For filters at a more granular level than what the Broker can use for pruning, indexing structures +inside each segment allow Druid to figure out which (if any) rows match the filter set before looking at any row of +data. Once Druid knows which rows match a particular query, it only accesses the specific columns it needs for that +query. Within those columns, Druid can skip from row to row, avoiding reading data that doesn't match the query filter. -This data set is composed of three distinct components. If you are acquainted with OLAP terminology, the following concepts should be familiar. +So Druid uses three different techniques to maximize query performance: -* **Timestamp column**: We treat timestamp separately because all of our queries - center around the time axis. +- Pruning which segments are accessed for each query. +- Within each segment, using indexes to identify which rows must be accessed. +- Within each segment, only reading the specific rows and columns that are relevant to a particular query. -* **Dimension columns**: Dimensions are string attributes of an event, and the columns most commonly used in filtering the data. -We have four dimensions in our example data set: publisher, advertiser, gender, and country. -They each represent an axis of the data that we’ve chosen to slice across. -* **Metric columns**: Metrics are columns used in aggregations and computations. In our example, the metrics are clicks and price. -Metrics are usually numeric values, and computations include operations such as count, sum, and mean. -Also known as measures in standard OLAP terminology. +# External Dependencies -## Sharding the Data +## Deep storage -Druid shards are called `segments` and Druid always first shards data by time. In our compacted data set, we can create two segments, one for each hour of data. +Druid uses deep storage only as a backup of your data and as a way to transfer data in the background between +Druid processes. To respond to queries, Historical processes do not read from deep storage, but instead read pre-fetched +segments from their local disks before any queries are served. This means that Druid never needs to access deep storage +during a query, helping it offer the best query latencies possible. It also means that you must have enough disk space +both in deep storage and across your Historical processes for the data you plan to load. -For example: +For more details, please see [Deep storage dependency](../dependencies/deep-storage.html). -Segment `sampleData_2011-01-01T01:00:00:00Z_2011-01-01T02:00:00:00Z_v1_0` contains +## Metadata storage - 2011-01-01T01:00:00Z ultratrimfast.com google.com Male USA 1800 25 15.70 - 2011-01-01T01:00:00Z bieberfever.com google.com Male USA 2912 42 29.18 +The metadata storage holds various system metadata such as segment availability information and task information. +For more details, please see [Metadata storage dependency](..dependencies/metadata-storage.html) -Segment `sampleData_2011-01-01T02:00:00:00Z_2011-01-01T03:00:00:00Z_v1_0` contains +## Zookeeper - 2011-01-01T02:00:00Z ultratrimfast.com google.com Male UK 1953 17 17.31 - 2011-01-01T02:00:00Z bieberfever.com google.com Male UK 3194 170 34.01 - -Segments are self-contained containers for the time interval of data they hold. Segments -contain data stored in compressed column orientations, along with the indexes for those columns. Druid queries only understand how to -scan segments. - -Segments are uniquely identified by a datasource, interval, version, and an optional partition number. -Examining our example segments, the segments are named following this convention: `dataSource_interval_version_partitionNumber` - -## Roll-up - -The individual events in our example data set are not very interesting because there may be trillions of such events. -However, summarizations of this type of data can yield many useful insights. -Druid summarizes this raw data at ingestion time using a process we refer to as "roll-up". -Roll-up is a first-level aggregation operation over a selected set of dimensions, equivalent to (in pseudocode): - - GROUP BY timestamp, publisher, advertiser, gender, country - :: impressions = COUNT(1), clicks = SUM(click), revenue = SUM(price) - -The compacted version of our original raw data looks something like this: - - timestamp publisher advertiser gender country impressions clicks revenue - 2011-01-01T01:00:00Z ultratrimfast.com google.com Male USA 1800 25 15.70 - 2011-01-01T01:00:00Z bieberfever.com google.com Male USA 2912 42 29.18 - 2011-01-01T02:00:00Z ultratrimfast.com google.com Male UK 1953 17 17.31 - 2011-01-01T02:00:00Z bieberfever.com google.com Male UK 3194 170 34.01 - -In practice, we see that rolling up data can dramatically reduce the size of data that needs to be stored (up to a factor of 100). -Druid will roll up data as it is ingested to minimize the amount of raw data that needs to be stored. -This storage reduction does come at a cost; as we roll up data, we lose the ability to query individual events. Phrased another way, -the rollup granularity is the minimum granularity you will be able to explore data at and events are floored to this granularity. -Hence, Druid ingestion specs define this granularity as the `queryGranularity` of the data. The lowest supported `queryGranularity` is millisecond. - -### Roll-up modes - -Druid supports two roll-up modes, i.e., _perfect roll-up_ and _best-effort roll-up_. In the perfect roll-up mode, Druid guarantees that input data are perfectly aggregated at ingestion time. Meanwhile, in the best-effort roll-up, input data might not be perfectly aggregated and thus there can be multiple segments holding the rows which should belong to the same segment with the perfect roll-up since they have the same dimension value and their timestamps fall into the same interval. - -The perfect roll-up mode encompasses an additional preprocessing step to determine intervals and shardSpecs before actual data ingestion if they are not specified in the ingestionSpec. This preprocessing step usually scans the entire input data which might increase the ingestion time. The [Hadoop indexing task](../ingestion/batch-ingestion.html) always runs with this perfect roll-up mode. - -On the contrary, the best-effort roll-up mode doesn't require any preprocessing step, but the size of ingested data might be larger than that of the perfect roll-up. All types of [streaming indexing (i.e., realtime index task, kafka indexing service, ...)](../ingestion/stream-ingestion.html) run with this mode. - -Finally, the [native index task](../ingestion/tasks.html) supports both modes and you can choose either one which fits to your application. - -## Indexing the Data - -Druid gets its speed in part from how it stores data. Borrowing ideas from search infrastructure, -Druid creates immutable snapshots of data, stored in data structures highly optimized for analytic queries. - -Druid is a column store, which means each individual column is stored separately. Only the columns that pertain to a query are used -in that query, and Druid is pretty good about only scanning exactly what it needs for a query. -Different columns can also employ different compression methods. Different columns can also have different indexes associated with them. - -Druid indexes data on a per-shard (segment) level. - -## Loading the Data - -Druid has two means of ingestion, real-time and batch. Real-time ingestion in Druid is best effort. Exactly once semantics are not guaranteed with real-time ingestion in Druid, although we have it on our roadmap to support this. -Batch ingestion provides exactly once guarantees and segments created via batch processing will accurately reflect the ingested data. -One common approach to operating Druid is to have a real-time pipeline for recent insights, and a batch pipeline for the accurate copy of the data. - -## Querying the Data - -Druid's native query language is JSON over HTTP, although the community has contributed query libraries in [numerous languages](../development/libraries.html), including SQL. - -Druid is designed to perform single table operations and does not currently support joins. -Many production setups do joins at ETL because data must be denormalized before loading into Druid. - -## The Druid Cluster - -A Druid Cluster is composed of several different types of nodes. Each node is designed to do a small set of things very well. - -* **Historical Nodes** Historical nodes commonly form the backbone of a Druid cluster. Historical nodes download immutable segments locally and serve queries over those segments. -The nodes have a shared nothing architecture and know how to load segments, drop segments, and serve queries on segments. - -* **Broker Nodes** Broker nodes are what clients and applications query to get data from Druid. Broker nodes are responsible for scattering queries and gathering and merging results. -Broker nodes know what segments live where. - -* **Coordinator Nodes** Coordinator nodes manage segments on historical nodes in a cluster. Coordinator nodes tell historical nodes to load new segments, drop old segments, and move segments to load balance. - -* **Real-time Processing** Real-time processing in Druid can currently be done using standalone realtime nodes or using the indexing service. The real-time logic is common between these two services. -Real-time processing involves ingesting data, indexing the data (creating segments), and handing segments off to historical nodes. Data is queryable as soon as it is - ingested by the realtime processing logic. The hand-off process is also lossless; data remains queryable throughout the entire process. - -### External Dependencies - -Druid has a couple of external dependencies for cluster operations. - -* **Zookeeper** Druid relies on Zookeeper for intra-cluster communication. - -* **Metadata Storage** Druid relies on a metadata storage to store metadata about segments and configuration. Services that create segments write new entries to the metadata store - and the coordinator nodes monitor the metadata store to know when new data needs to be loaded or old data needs to be dropped. The metadata store is not - involved in the query path. MySQL and PostgreSQL are popular metadata stores for production, but Derby can be used for experimentation when you are running all druid nodes on a single machine. - -* **Deep Storage** Deep storage acts as a permanent backup of segments. Services that create segments upload segments to deep storage and historical nodes download -segments from deep storage. Deep storage is not involved in the query path. S3 and HDFS are popular deep storages. - -### High Availability Characteristics - -Druid is designed to have no single point of failure. Different node types are able to fail without impacting the services of the other node types. To run a highly available Druid cluster, you should have at least 2 nodes of every node type running. - -### Comprehensive Architecture - -For a comprehensive look at Druid architecture, please read our [white paper](http://static.druid.io/docs/druid.pdf). +Druid uses [ZooKeeper](http://zookeeper.apache.org/) (ZK) for management of current cluster state. +For more details, please see [Zookeeper dependency](../dependencies/zookeeper.html). diff --git a/docs/content/ingestion/overview.md b/docs/content/ingestion/overview.md new file mode 100644 index 0000000000..c7f0d67b8b --- /dev/null +++ b/docs/content/ingestion/overview.md @@ -0,0 +1,279 @@ +--- +layout: doc_page +--- + +# Ingestion + +## Overview + +### Datasources and segments + +Druid data is stored in "datasources", which are similar to tables in a traditional RDBMS. Each datasource is +partitioned by time and, optionally, further partitioned by other attributes. Each time range is called a "chunk" (for +example, a single day, if your datasource is partitioned by day). Within a chunk, data is partitioned into one or more +"segments". Each segment is a single file, typically comprising up to a few million rows of data. Since segments are +organized into time chunks, it's sometimes helpful to think of segments as living on a timeline like the following: + + + +A datasource may have anywhere from just a few segments, up to hundreds of thousands and even millions of segments. Each +segment starts life off being created on a MiddleManager, and at that point, is mutable and uncommitted. The segment +building process includes the following steps, designed to produce a data file that is compact and supports fast +queries: + +- Conversion to columnar format +- Indexing with bitmap indexes +- Compression using various algorithms + - Dictionary encoding with id storage minimization for String columns + - Bitmap compression for bitmap indexes + - Type-aware compression for all columns + +Periodically, segments are published (committed). At this point, they are written to deep storage, become immutable, and +move from MiddleManagers to the Historical processes. An entry about the segment is also written to the metadata store. +This entry is a self-describing bit of metadata about the segment, including things like the schema of the segment, its +size, and its location on deep storage. These entries are what the Coordinator uses to know what data *should* be +available on the cluster. + +For details on the segment file format, please see [segment files](../design/segments.html). + +#### Segment identifiers + +Segments all have a four-part identifier with the following components: + +- Datasource name. +- Time interval (for the time chunk containing the segment; this corresponds to the `segmentGranularity` specified +at ingestion time). +- Version number (generally an ISO8601 timestamp corresponding to when the segment set was first started). +- Partition number (an integer, unique within a datasource+interval+version; may not necessarily be contiguous). + +For example, this is the identifier for a segment in datasource `clarity-cloud0`, time chunk +`2018-05-21T16:00:00.000Z/2018-05-21T17:00:00.000Z`, version `2018-05-21T15:56:09.909Z`, and partition number 1: + +``` +clarity-cloud0_2018-05-21T16:00:00.000Z_2018-05-21T17:00:00.000Z_2018-05-21T15:56:09.909Z_1 +``` + +Segments with partition number 0 (the first partition in a chunk) omit the partition number, like the following +example, which is a segment in the same time chunk as the previous one, but with partition number 0 instead of 1: + +``` +clarity-cloud0_2018-05-21T16:00:00.000Z_2018-05-21T17:00:00.000Z_2018-05-21T15:56:09.909Z +``` + +#### Segment versioning + +You may be wondering what the "version number" described in the previous section is for. Or, you might not be, in which +case good for you and you can skip this section! + +It's there to support batch-mode overwriting. In Druid, if all you ever do is append data, then there will be just a +single version for each time chunk. But when you overwrite data, what happens behind the scenes is that a new set of +segments is created with the same datasource, same time interval, but a higher version number. This is a signal to the +rest of the Druid system that the older version should be removed from the cluster, and the new version should replace +it. + +The switch appears to happen instantaneously to a user, because Druid handles this by first loading the new data (but +not allowing it to be queried), and then, as soon as the new data is all loaded, switching all new queries to use those +new segments. Then it drops the old segments a few minutes later. + + +#### Segment states + +Segments can be either _available_ or _unavailable_, which refers to whether or not they are currently served by some +Druid server process. They can also be _published_ or _unpublished_, which refers to whether or not they have been +written to deep storage and the metadata store. And published segments can be either _used_ or _unused_, which refers to +whether or not Druid considers them active segments that should be served. + +Putting these together, there are five basic states that a segment can be in: + +- **Published, available, and used:** These segments are published in deep storage and the metadata store, and they are +served by Historical processes. They are the majority of active data in a Druid cluster (they include everything except +in-flight realtime data). +- **Published, available, and unused:** These segments are being served by Historicals, but won't be for very long. They +may be segments that have recently been overwritten (see [Segment versioning](#segment-versioning)) or dropped for +other reasons (like drop rules, or being dropped manually). +- **Published, unavailable, and used:** These segments are published in deep storage and the metadata store, and +_should_ be served, but are not actually being served. If segments stay in this state for more than a few minutes, it's +usually because something is wrong. Some of the more common causes include: failure of a large number of Historicals, +Historicals being out of capacity to download more segments, and some issue with coordination that prevents the +Coordinator from telling Historicals to load new segments. +- **Published, unavailable, and unused:** These segments are published in deep storage and the metadata store, but +are inactive (because they have been overwritten or dropped). They lie dormant, and can potentially be resurrected +by manual action if needed (in particular: setting the "used" flag to true). +- **Unpublished and available:** This is the state that segments are in while they are being built by Druid ingestion +tasks. This includes all "realtime" data that has not been handed off to Historicals yet. Segments in this state may or +may not be replicated. If all replicas are lost, then the segment must be rebuilt from scratch. This may or may not be +possible. (It is possible with Kafka, and happens automatically; it is possible with S3/HDFS by restarting the job; and +it is _not_ possible with Tranquility, so in that case, data will be lost.) + +The sixth state in this matrix, "unpublished and unavailable," isn't possible. If a segment isn't published and isn't +being served then does it really exist? + + +#### Indexing and handoff + +_Indexing_ is the mechanism by which new segments are created, and _handoff_ is the mechanism by which they are published +and begin being served by Historical processes. The mechanism works like this on the indexing side: + +1. An _indexing task_ starts running and building a new segment. It must determine the identifier of the segment before +it starts building it. For a task that is appending (like a Kafka task, or an index task in append mode) this will be +done by calling an "allocate" API on the Overlord to potentially add a new partition to an existing set of segments. For +a task that is overwriting (like a Hadoop task, or an index task _not_ in append mode) this is done by locking an +interval and creating a new version number and new set of segments. +2. If the indexing task is a realtime task (like a Kafka task) then the segment is immediately queryable at this point. +It's available, but unpublished. +3. When the indexing task has finished reading data for the segment, it pushes it to deep storage and then publishes it +by writing a record into the metadata store. +4. If the indexing task is a realtime task, at this point it waits for a Historical process to load the segment. If the +indexing task is not a realtime task, it exits immediately. + +And like this on the Coordinator / Historical side: + +1. The Coordinator polls the metadata store periodically (by default, every 1 minute) for newly published segments. +2. When the Coordinator finds a segment that is published and used, but unavailable, it chooses a Historical process +to load that segment and instructs that Historical to do so. +3. The Historical loads the segment and begins serving it. +4. At this point, if the indexing task was waiting for handoff, it will exit. + + +## Ingestion methods + +In most ingestion methods, this work is done by Druid +MiddleManager nodes. One exception is Hadoop-based ingestion, where this work is instead done using a Hadoop MapReduce +job on YARN (although MiddleManager nodes are still involved in starting and monitoring the Hadoop jobs). + +Once segments have been generated and stored in [deep storage](../dependencies/deep-storage.html), they will be loaded by Druid Historical nodes. Some Druid +ingestion methods additionally support _real-time queries_, meaning you can query in-flight data on MiddleManager nodes +before it is finished being converted and written to deep storage. In general, a small amount of data will be in-flight +on MiddleManager nodes relative to the larger amount of historical data being served from Historical nodes. + +See the [Design](../design/index.html) page for more details on how Druid stores and manages your data. + +The table below lists Druid's most common data ingestion methods, along with comparisons to help you choose +the best one for your situation. + +|Method|How it works|Can append and overwrite?|Can handle late data?|Exactly-once ingestion?|Real-time queries?| +|------|------------|-------------------------|---------------------|-----------------------|------------------| +|[Native batch](native_tasks.html)|Druid loads data directly from S3, HTTP, NFS, or other networked storage.|Append or overwrite|Yes|Yes|No| +|[Hadoop](hadoop.html)|Druid launches Hadoop Map/Reduce jobs to load data files.|Append or overwrite|Yes|Yes|No| +|[Kafka indexing service](../development/extensions-core/kafka-ingestion.html)|Druid reads directly from Kafka.|Append only|Yes|Yes|Yes| +|[Tranquility](stream-push.html)|You use Tranquility, a client side library, to push individual records into Druid.|Append only|No - late data is dropped|No - may drop or duplicate data|Yes| + +## Partitioning + +Druid is a distributed data store, and it partitions your data in order to process it in parallel. Druid +[datasources](../design/index.html) are always partitioned first by time based on the +[segmentGranularity](../ingestion/index.html#granularityspec) parameter of your ingestion spec. Each of these time partitions is called +a _time chunk_, and each time chunk contains one or more [segments](../design/segments.html). The segments within a +particular time chunk may be partitioned further using options that vary based on the ingestion method you have chosen. + + * With [Hadoop](hadoop.html) you can do hash- or range-based partitioning on one or more columns. + * With [Native batch](native_tasks.html) you can partition on a hash of all dimension columns. This is useful when + rollup is enabled, since it maximizes your space savings. + * With [Kafka indexing](../development/extensions-core/kafka-ingestion.html), partitioning is based on Kafka + partitions, and is not configurable through Druid. You can configure it on the Kafka side by using the partitioning + functionality of the Kafka producer. + * With [Tranquility](stream-push.html), partitioning is done by default on a hash of all dimension columns in order + to maximize rollup. You can also provide a custom Partitioner class; see the + [Tranquility documentation](https://github.com/druid-io/tranquility/blob/master/docs/overview.md#partitioning-and-replication) + for details. + +All Druid datasources are partitioned by time. Each data ingestion method must acquire a write lock on a particular +time range when loading data, so no two methods can operate on the same time range of the same datasource at the same +time. However, two data ingestion methods _can_ operate on different time ranges of the same datasource at the same +time. For example, you can do a batch backfill from Hadoop while also doing a real-time load from Kafka, so long as +the backfill data and the real-time data do not need to be written to the same time partitions. (If they do, the +real-time load will take priority.) + +## Rollup + +Druid is able to summarize raw data at ingestion time using a process we refer to as "roll-up". +Roll-up is a first-level aggregation operation over a selected set of "dimensions", where a set of "metrics" are aggregated. + +Suppose we have the following raw data, representing total packet/byte counts in particular seconds for traffic between a source and destination. The `srcIP` and `dstIP` fields are dimensions, while `packets` and `bytes` are metrics. + +``` +timestamp srcIP dstIP packets bytes +2018-01-01T01:01:35Z 1.1.1.1 2.2.2.2 100 1000 +2018-01-01T01:01:51Z 1.1.1.1 2.2.2.2 200 2000 +2018-01-01T01:01:59Z 1.1.1.1 2.2.2.2 300 3000 +2018-01-01T01:02:14Z 1.1.1.1 2.2.2.2 400 4000 +2018-01-01T01:02:29Z 1.1.1.1 2.2.2.2 500 5000 +2018-01-01T01:03:29Z 1.1.1.1 2.2.2.2 600 6000 +2018-01-02T21:33:14Z 7.7.7.7 8.8.8.8 100 1000 +2018-01-02T21:33:45Z 7.7.7.7 8.8.8.8 200 2000 +2018-01-02T21:35:45Z 7.7.7.7 8.8.8.8 300 3000 +``` + +If we ingest this data into Druid with a `queryGranularity` of `minute` (which will floor timestamps to minutes), the roll-up operation is equivalent to the following pseudocode: + +``` +GROUP BY TRUNCATE(timestamp, MINUTE), srcIP, dstIP :: SUM(packets), SUM(bytes) +``` + +After the data above is aggregated during roll-up, the following rows will be ingested: + +``` +timestamp srcIP dstIP packets bytes +2018-01-01T01:01:00Z 1.1.1.1 2.2.2.2 600 6000 +2018-01-01T01:02:00Z 1.1.1.1 2.2.2.2 900 9000 +2018-01-01T01:03:00Z 1.1.1.1 2.2.2.2 600 6000 +2018-01-02T21:33:00Z 7.7.7.7 8.8.8.8 300 3000 +2018-01-02T21:35:00Z 7.7.7.7 8.8.8.8 300 3000 +``` + +Druid can roll up data as it is ingested to minimize the amount of raw data that needs to be stored. +In practice, we see that rolling up data can dramatically reduce the size of data that needs to be stored (up to a factor of 100). +This storage reduction does come at a cost: as we roll up data, we lose the ability to query individual events. + +The rollup granularity is the minimum granularity you will be able to explore data at and events are floored to this granularity. +Hence, Druid ingestion specs define this granularity as the `queryGranularity` of the data. The lowest supported `queryGranularity` is millisecond. + +The following links may be helpful in further understanding dimensions and metrics: +* https://en.wikipedia.org/wiki/Dimension_(data_warehouse) +* https://en.wikipedia.org/wiki/Measure_(data_warehouse)) + +### Roll-up modes + +Druid supports two roll-up modes, i.e., _perfect roll-up_ and _best-effort roll-up_. In the perfect roll-up mode, Druid guarantees that input data are perfectly aggregated at ingestion time. Meanwhile, in the best-effort roll-up, input data might not be perfectly aggregated and thus there can be multiple segments holding the rows which should belong to the same segment with the perfect roll-up since they have the same dimension value and their timestamps fall into the same interval. + +The perfect roll-up mode encompasses an additional preprocessing step to determine intervals and shardSpecs before actual data ingestion if they are not specified in the ingestionSpec. This preprocessing step usually scans the entire input data which might increase the ingestion time. The [Hadoop indexing task](../ingestion/hadoop.html) always runs with this perfect roll-up mode. + +On the contrary, the best-effort roll-up mode doesn't require any preprocessing step, but the size of ingested data might be larger than that of the perfect roll-up. All types of [streaming indexing (e.g., kafka indexing service)](../ingestion/stream-ingestion.html) run with this mode. + +Finally, the [native index task](../ingestion/native_tasks.html) supports both modes and you can choose either one which fits to your application. + +## Data maintenance + +### Inserts and overwrites + +Druid can insert new data to an existing datasource by appending new segments to existing segment sets. It can also add new data by merging an existing set of segments with new data and overwriting the original set. + +Druid does not support single-record updates by primary key. + +Updates are described further at [update existing data](../ingestion/update-existing-data.html). + +### Compaction + +Compaction is a type of overwrite operation, which reads an existing set of segments, combines them into a new set with larger but fewer segments, and overwrites the original set with the new compacted set, without changing the data that is stored. + +For performance reasons, it is sometimes beneficial to compact a set of segments into a set of larger but fewer segments, as there is some per-segment processing and memory overhead in both the ingestion and querying paths. + +For compaction documentation, please see [tasks](../ingestion/tasks.html). + +### Retention and Tiering + +Druid supports retention rules, which are used to define intervals of time where data should be preserved, and intervals where data should be discarded. + +Druid also supports separating historical nodes into tiers, and the retention rules can be configured to assign data for specific intervals to specific tiers. + +These features are useful for performance/cost management; a common use case is separating historical nodes into a "hot" tier and a "cold" tier. + +For more information, please see [Load rules](../operations/rule-configuration.html). + +### Deletes + +Druid supports permanent deletion of segments that are in an "unused" state (see the [Segment states](#segment-states) section above). + +The Kill Task deletes unused segments within a specified interval from metadata storage and deep storage. + +For more information, please see [Kill Task](../ingestion/tasks.html#kill-task). \ No newline at end of file diff --git a/docs/content/toc.md b/docs/content/toc.md index a8cd7ed2d7..840fddc0c2 100644 --- a/docs/content/toc.md +++ b/docs/content/toc.md @@ -3,7 +3,14 @@ layout: toc --- ## Getting Started - * [Concepts](/docs/VERSION/design/) + * [Design](/docs/VERSION/design/index.html) + * [What is Druid?](/docs/VERSION/design/index.html#what-is-druid) + * [When should I use Druid](/docs/VERSION/design/index.html#when-to-use-druid) + * [Architecture](/docs/VERSION/design/index.html#architecture) + * [Datasources & Segments](/docs/VERSION/design/index.html#datasources-and-segments) + * [Query processing](/docs/VERSION/design/index.html#query-processing) + * [External dependencies](/docs/VERSION/design/index.html#external-dependencies) + * [Ingestion overview](/docs/VERSION/ingestion/overview.html) * [Quickstart](/docs/VERSION/tutorials/index.html) * [Tutorial: Loading a file](/docs/VERSION/tutorials/tutorial-batch.html) * [Tutorial: Loading stream data from Kafka](/docs/VERSION/tutorials/tutorial-kafka.html) @@ -20,6 +27,7 @@ layout: toc * [Clustering](/docs/VERSION/tutorials/cluster.html) ## Data Ingestion + * [Ingestion overview](/docs/VERSION/ingestion/overview.html) * [Data Formats](/docs/VERSION/ingestion/data-formats.html) * [Ingestion Spec](/docs/VERSION/ingestion/index.html) * [Schema Design](/docs/VERSION/ingestion/schema-design.html) diff --git a/docs/img/druid-architecture.png b/docs/img/druid-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..cac289e410c78cf413d9ab17e9f28f06f0edbe9e GIT binary patch literal 151681 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 @JKOk(K&~e^%Z}@O*1UF! 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 literal 0 HcmV?d00001 diff --git a/docs/img/druid-timeline.png b/docs/img/druid-timeline.png new file mode 100644 index 0000000000000000000000000000000000000000..fdeaf8c292ef88f6e52c57fb5a0e3975b8011a14 GIT binary patch literal 36729 zcmeFZbySqy*FTJuASs9-NT>)XARyf!EiED;As`^q-6?{Abmt(gbT>##cgGOI&_l-z z%)Hm={e6DVdTxB)KY#DLmb#W}yiV`4Mj$6E`2r0M8y^h~ zog4=n_#&p{IF5#PBhySmLPbtOf=fB zavZvcM`+KBd7h!mF>zq}ebT*i*S9qNz8~40YpOOZKA*8}cC^yHY4Icck)B@k0ZUbN z`Z|k&>FM_FG&Cg{E{L2vZ3Z)+rVyb$7nEU9`bdT*OKSYQ^+M zW=x@!&=(wIh8`=OYk`4wJU#ZKBXP=hSUn85$gx0Vd>U?9+Fe5Z&e7AS5B;jyB~p5{ z&b>v#kcAa5H~MJY*3)t55eCtmu)c3E;;#2-#+0zT1bl4xdaTA00h1YE=WS!Q3UIv( z{eCAdN3zT$;Xz{KtAy^b1cUAab}et!%~m=sq-51+QcjOnQ$D%%-n6B=;*v-Brns56 z2W+IDyDV-~vT5nwCx~`ciaP7r(_bOx>I~2rbX_RK`_w8C_Z7`_Q7i4BrWG;40U5AFOI=E z_fx>e6MhtgU-ikHKibB$FqH6S`zUW@3<>)ANvHSzgTB~NpOjt`r(NL zZ~Bw zAUH%ctl1yhNwh3_^9LriA8SiIu?+D|9+F_(E*x^)d4F<$+YI#Kh;;>ghJ#PcL9?I8 z+8LHDm+5R%vSgn!)JENx?am^|B6-2O@%U@}QJMn7R%GgrFK_R;3fKC3M0upnDI*kA zGZIuAm_i=C=y~=0VRqs{#6jBgY)Vz(Jlipa%~$Wak8d15I*z`pIPfBjwJZ8HqXvTp z+a&9$bQ+U2(_obTW6%SA7H@4t)rC1$hF_##Ji3fQ;j_e6{*N>tRi%rlV>bv+KF*ryKe&D_?4T3;Oo@rMY^&de_)mo@?I2 zZ>#y^U+2}}83QV(s>-V1FAM1iNsLT`oSWZDpRM?Gs)tV6$3SZOmIk^(_U{KCC~A%> za4OixuHEc+>Q`m8WEEvCozN>})-JBxn4y{Jo~f^3dr!1A0x? zKvE*-%Xgb_gXE=z$WqmcVUtYk%zH-MMpd?9wxPDgxZ~~f^z&JBKZ_m>#F!-+)`2TV z@p;O5NfTld=XnDAsrx>z!Tami3?TyjWc{q5StIe%H(GDC#x##!kFb7V;nn8RY$|

6cDsNOrC=snVH!I$Q7bQc%C%(J9o)8j?6DpW^&x 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