This commit is contained in:
liujianhuan 2020-04-08 14:20:07 +08:00
parent c55862679e
commit 394633d806
23 changed files with 48 additions and 41 deletions

View File

@ -0,0 +1 @@
<!-- toc -->

View File

@ -0,0 +1 @@
<!-- toc -->

View File

@ -67,7 +67,7 @@ Druid数据被存储在"datasources"中类似于传统RDBMS中的表。每一
有关段文件格式的信息,请参见[段文件](Segments.md)
有关数据在Druid的建模请参见[schema设计]()
有关数据在Druid的建模请参见[schema设计](../DataIngestion/schemadesign.md)
#### 索引和切换(Indexing and handoff)
@ -127,7 +127,7 @@ clarity-cloud0_2018-05-21T16:00:00.000Z_2018-05-21T17:00:00.000Z_2018-05-21T15:5
### 查询处理
查询首先进入[Broker](), Broker首先鉴别哪些段可能与本次查询有关。 段的列表总是按照时间进行筛选和修剪的当然也可能由其他属性具体取决于数据源的分区方式。然后Broker将确定哪些[Historical]()和[MiddleManager]()为这些段提供服务、并向每个进程发送一个子查询。 Historical和MiddleManager进程接收查询、处理查询并返回结果Broker将接收到的结果合并到一起形成最后的结果集返回给调用者。
查询首先进入[Broker](../Design/Broker.md), Broker首先鉴别哪些段可能与本次查询有关。 段的列表总是按照时间进行筛选和修剪的当然也可能由其他属性具体取决于数据源的分区方式。然后Broker将确定哪些[Historical](../Design/Historical.md)和[MiddleManager](../Design/MiddleManager.md)为这些段提供服务、并向每个进程发送一个子查询。 Historical和MiddleManager进程接收查询、处理查询并返回结果Broker将接收到的结果合并到一起形成最后的结果集返回给调用者。
Broker精简是Druid限制每个查询扫描数据量的一个重要方法但不是唯一的方法。对于比Broker更细粒度级别的精简筛选器每个段中的索引结构允许Druid在查看任何数据行之前找出哪些行如果有的话与筛选器集匹配。一旦Druid知道哪些行与特定查询匹配它就只访问该查询所需的特定列。在这些列中Druid可以从一行跳到另一行避免读取与查询过滤器不匹配的数据。

View File

@ -2,10 +2,10 @@
## Historical
### 配置
对于Apache Druid Historical的配置请参见 [Historical配置]()
对于Apache Druid Historical的配置请参见 [Historical配置](../Configuration/configuration.md#Historical)
### HTTP
Historical的API列表请参见 [Historical API]()
Historical的API列表请参见 [Historical API](../Operations/api.md#Historical)
### 运行
```
@ -28,6 +28,6 @@ org.apache.druid.cli.Main server historical
### 查询段
有关查询Historical的详细信息请参阅 [数据查询]()。
有关查询Historical的详细信息请参阅 [数据查询](../Querying/makeNativeQueries.md)。
Historical可以被配置记录和报告每个服务查询的指标。

View File

@ -2,17 +2,17 @@
## Indexer
> [!WARNING]
> 索引器是一个可选的和[实验性]()的功能, 其内存管理系统仍在开发中,并将在以后的版本中得到显著增强。
> 索引器是一个可选的和[实验性](../Development/experimental.md)的功能, 其内存管理系统仍在开发中,并将在以后的版本中得到显著增强。
Apache Druid索引器进程是MiddleManager + Peon任务执行系统的另一种可替代选择。索引器在单个JVM进程中作为单独的线程运行任务而不是为每个任务派生单独的JVM进程。
与MiddleManager + Peon系统相比Indexer的设计更易于配置和部署并且能够更好地实现跨任务的资源共享。
### 配置
对于Apache Druid Indexer进程的配置请参见 [Indexer配置]()
对于Apache Druid Indexer进程的配置请参见 [Indexer配置](../Configuration/configuration.md#Indexer)
### HTTP
Indexer进程与[MiddleManager]()共用API
Indexer进程与[MiddleManager](../Operations/api.md#MiddleManager)共用API
### 运行
```
@ -26,7 +26,7 @@ org.apache.druid.cli.Main server indexer
**查询资源**
查询处理线程和缓冲区在所有任务中共享。索引器将为来自所有任务共享的单个端点的查询提供服务。
如果启用了[查询缓存](),则查询缓存也将在所有任务中共享。
如果启用了[查询缓存](../Configuration/configuration.md),则查询缓存也将在所有任务中共享。
**服务端HTTP线程**
索引器维护两个大小相等的HTTP线程池。

View File

@ -4,7 +4,7 @@
元数据存储是Apache Druid的一个外部依赖。Druid使用它来存储系统的各种元数据但不存储实际的数据。下面有许多用于各种目的的表。
Derby是Druid的默认元数据存储但是它不适合生产环境。[MySQL]()和[PostgreSQL]()是更适合生产的元数据存储。
Derby是Druid的默认元数据存储但是它不适合生产环境。[MySQL](../Configuration/core-ext/mysql.md)和[PostgreSQL](../Configuration/core-ext/postgresql.md)是更适合生产的元数据存储。
> [!WARNING]
> 元数据存储存储了Druid集群工作所必需的整个元数据。对于生产集群考虑使用MySQL或PostgreSQL而不是Derby。此外强烈建议设置数据库的高可用因为如果丢失任何元数据将无法恢复。
@ -20,11 +20,11 @@ druid.metadata.storage.connector.connectURI=jdbc:derby://localhost:1527//opt/var
### MySQL
参见[mysql-metadata-storage]()扩展文档
参见[mysql-metadata-storage](../Configuration/core-ext/mysql.md)扩展文档
### PostgreSQL
参见[postgresql-metadata-storage]()扩展文档
参见[postgresql-metadata-storage](../Configuration/core-ext/postgresql.md)扩展文档
### 添加自定义的数据库连接池属性
@ -37,7 +37,7 @@ druid.metadata.storage.connector.dbcp.maxConnLifetimeMillis=1200000
druid.metadata.storage.connector.dbcp.defaultQueryTimeout=30000
```
全部列表请查看 [基本数据源配置]()
全部列表请查看 [基本数据源配置](https://commons.apache.org/proper/commons-dbcp/configuration.html)
### 元数据存储表
#### 段表

View File

@ -1,10 +1,10 @@
<!-- toc -->
## MiddleManager进程
### 配置
对于Apache Druid MiddleManager配置可以参见[索引服务配置]()
对于Apache Druid MiddleManager配置可以参见[索引服务配置](../Configuration/configuration.md#MiddleManager)
### HTTP
对于MiddleManager的API接口详见 [MiddleManager API]()
对于MiddleManager的API接口详见 [MiddleManager API](../Operations/api.md#MiddleManager)
### 综述
MiddleManager进程是执行提交的任务的工作进程。MiddleManager将任务转发给运行在不同jvm中的Peon。我们为每个任务设置单独的jvm的原因是为了隔离资源和日志。每个Peon一次只能运行一个任务但是一个MiddleManager可能有多个Peon。

View File

@ -1,10 +1,10 @@
<!-- toc -->
## Peons
### 配置
对于Apache Druid Peon配置可以参见 [Peon查询配置]() 和 [额外的Peon配置]()
对于Apache Druid Peon配置可以参见 [Peon查询配置](../Configuration/configuration.md) 和 [额外的Peon配置](../Configuration/configuration.md)
### HTTP
对于Peon的API接口详见 [Peon API]()
对于Peon的API接口详见 [Peon API](../Operations/api.md#Peon)
Peon在单个JVM中运行单个任务。MiddleManager负责创建运行任务的Peon。Peon应该很少如果为了测试目的自己运行。

View File

@ -86,7 +86,7 @@ Router有一个可配置的策略列表用于选择将查询路由到哪个Br
```
> [!WARNING]
> 默认情况下禁用基于JavaScript的功能。有关使用Druid的JavaScript功能的指南包括如何启用它的说明请参阅[Druid JavaScript编程指南]()。
> 默认情况下禁用基于JavaScript的功能。有关使用Druid的JavaScript功能的指南包括如何启用它的说明请参阅[Druid JavaScript编程指南](../Development/JavaScript.md)。
### Avatica查询平衡

View File

@ -1,6 +1,6 @@
<!-- toc -->
## 段
ApacheDruid将索引存储在按时间分区的*段文件*中。在基本设置中,通常为每个时间间隔创建一个段文件,其中时间间隔可在 `granularitySpec` 的`segmentGranularity` 参数中配置。为了使Druid在繁重的查询负载下运行良好段文件大小必须在建议的300MB-700MB范围内。如果段文件大于此范围请考虑更改时间间隔的粒度或者对数据进行分区并在 `partitionsSpec` 中调整 `targetPartitionSize`此参数的建议起点是500万行。有关更多信息请参阅下面的**分片部分**和[批处理摄取]()文档的**分区规范**部分。
ApacheDruid将索引存储在按时间分区的*段文件*中。在基本设置中,通常为每个时间间隔创建一个段文件,其中时间间隔可在 `granularitySpec` 的`segmentGranularity` 参数中配置。为了使Druid在繁重的查询负载下运行良好段文件大小必须在建议的300MB-700MB范围内。如果段文件大于此范围请考虑更改时间间隔的粒度或者对数据进行分区并在 `partitionsSpec` 中调整 `targetPartitionSize`此参数的建议起点是500万行。有关更多信息请参阅下面的**分片部分**和[批处理摄取](../DataIngestion/native.md)文档的**分区规范**部分。
### 段文件的核心数据结构

View File

@ -0,0 +1 @@
<!-- toc -->

View File

@ -20,7 +20,7 @@ Druid包括一组参考配置和用于单机部署的启动脚本
这些示例配置的启动脚本与Druid服务一起运行单个ZK实例,您也可以选择单独部署ZK。
通过[Coordinator配置文档]()中描述的可选配置`druid.coordinator.asOverlord.enabled = true`可以在单个进程中同时运行Druid Coordinator和Overlord。
通过[Coordinator配置文档](../Configuration/configuration.md#Coordinator)中描述的可选配置`druid.coordinator.asOverlord.enabled = true`可以在单个进程中同时运行Druid Coordinator和Overlord。
虽然为大型单台计算机提供了示例配置但在更高规模下我们建议在集群部署中运行Druid以实现容错和减少资源争用。

View File

@ -67,7 +67,7 @@ Druid Broker服务接收查询请求并将其转发到集群中的其他部
如果您的使用场景具有复杂的扩展要求则还可以选择不将Druid服务混合部署例如独立的Historical Server
[基本集群调整指南]()中的信息可以帮助您进行决策,并可以调整配置大小。
[基本集群调整指南](../Operations/basicClusterTuning.md)中的信息可以帮助您进行决策,并可以调整配置大小。
#### 从单服务器环境迁移部署
@ -97,7 +97,7 @@ Query服务的硬件选择主要考虑可用的CPU、Broker服务的堆内和堆
对于CPU可以选择接近于单服务器环境核数1/4的硬件。
[基本集群调优指南]()包含有关如何计算Broker和Router服务内存使用量的信息。
[基本集群调优指南](../Operations/basicClusterTuning.md)包含有关如何计算Broker和Router服务内存使用量的信息。
### 选择操作系统
@ -142,7 +142,7 @@ cd apache-druid-0.17.0
### 配置元数据存储和深度存储
#### 从单服务器环境迁移部署
如果您已经有一个单服务器部署,并且希望在整个迁移过程中保留数据,请在更新元数据/深层存储配置之前,按照[元数据迁移]()和[深层存储迁移]()中的说明进行操作。
如果您已经有一个单服务器部署,并且希望在整个迁移过程中保留数据,请在更新元数据/深层存储配置之前,按照[元数据迁移](../Operations/metadataMigration.md)和[深层存储迁移](../Operations/DeepstorageMigration.md)中的说明进行操作。
这些指南针对使用Derby元数据存储和本地深度存储的单服务器部署。 如果您已经在单服务器集群中使用了非Derby元数据存储则可以在新集群中可以继续使用当前的元数据存储。
@ -157,7 +157,7 @@ cd apache-druid-0.17.0
在生产部署中我们建议运行专用的元数据存储例如具有复制功能的MySQL或PostgreSQL与Druid服务器分开部署。
[MySQL扩展]()和[PostgreSQL]()扩展文档包含有关扩展配置和初始数据库安装的说明。
[MySQL扩展](../Configuration/core-ext/mysql.md)和[PostgreSQL](../Configuration/core-ext/postgresql.md)扩展文档包含有关扩展配置和初始数据库安装的说明。
#### 深度存储
@ -192,7 +192,7 @@ druid.indexer.logs.type=s3
druid.indexer.logs.s3Bucket=your-bucket
druid.indexer.logs.s3Prefix=druid/indexing-logs
```
更多信息可以看[S3扩展]()部分的文档。
更多信息可以看[S3扩展](../Configuration/core-ext/s3.md)部分的文档。
##### HDFS
@ -224,7 +224,7 @@ druid.indexer.logs.directory=/druid/indexing-logs
* 需要将Hadoop的配置文件core-site.xml, hdfs-site.xml, yarn-site.xml, mapred-site.xml放置在Druid进程的classpath中可以将他们拷贝到`conf/druid/cluster/_common`目录中
更多信息可以看[HDFS扩展]()部分的文档。
更多信息可以看[HDFS扩展](../Configuration/core-ext/hdfs.md)部分的文档。
### Hadoop连接配置
@ -235,7 +235,7 @@ druid.indexer.logs.directory=/druid/indexing-logs
请注意您无需为了可以从Hadoop加载数据而使用HDFS深度存储。例如如果您的集群在Amazon Web Services上运行即使您使用Hadoop或Elastic MapReduce加载数据我们也建议使用S3进行深度存储。
更多信息可以看[基于Hadoop的数据摄取]()部分的文档。
更多信息可以看[基于Hadoop的数据摄取](../DataIngestion/hadoopbased.md)部分的文档。
### Zookeeper连接配置
@ -324,7 +324,7 @@ druid.indexer.fork.property.druid.processing.numThreads=1
`conf/druid/cluster`下的配置已经为此硬件确定了,一般情况下您无需做进一步的修改。
如果您选择了其他硬件,则[基本的集群调整指南]()可以帮助您调整配置大小。
如果您选择了其他硬件,则[基本的集群调整指南](../Operations/basicClusterTuning.md)可以帮助您调整配置大小。
### 开启端口(如果使用了防火墙)
@ -400,7 +400,7 @@ bin/start-cluster-data-server
bin/start-cluster-query-server
```
您可以根据查询负载添加更多查询服务器。 如果增加了查询服务器的数量,请确保按照[基本集群调优指南]()中的说明调整Historical和Task上的连接池。
您可以根据查询负载添加更多查询服务器。 如果增加了查询服务器的数量,请确保按照[基本集群调优指南](../Operations/basicClusterTuning.md)中的说明调整Historical和Task上的连接池。
### 加载数据

View File

@ -0,0 +1 @@
<!-- toc -->

View File

@ -0,0 +1 @@
<!-- toc -->

View File

@ -0,0 +1 @@
<!-- toc -->

View File

@ -0,0 +1 @@
<!-- toc -->

View File

@ -80,7 +80,7 @@ Druid的体系结构需要一个主时间列内部存储为名为__time的列
运行 `SELECT * FROM wikipedia` 查询可以看到详细的结果。
查看[查询教程]()以对新加载的数据运行一些示例查询。
查看[查询教程](../Querying/makeNativeQueries.md)以对新加载的数据运行一些示例查询。
### 使用spec加载数据通过控制台
@ -211,4 +211,4 @@ curl -X 'POST' -H 'Content-Type:application/json' -d @quickstart/tutorial/wikipe
### 更多信息
更多关于加载批数据的信息可以查看[原生批摄取文档]()
更多关于加载批数据的信息可以查看[原生批摄取文档](../DataIngestion/native.md)

View File

@ -121,7 +121,7 @@ Druid的体系结构需要一个主时间列内部存储为名为__time的列
![](img-2/tutorial-kafka-data-loader-12.png)
查看[查询教程]()以对新加载的数据运行一些示例查询。
查看[查询教程](../Querying/makeNativeQueries.md)以对新加载的数据运行一些示例查询。
#### 通过控制台提交supervisor
@ -203,7 +203,7 @@ curl -XPOST -H'Content-Type: application/json' -d @quickstart/tutorial/wikipedia
```
如果supervisor被成功创建后将会返回一个supervisor的ID在本例中看到的是 `{"id":"wikipedia"}`
更详细的信息可以查看[Druid Kafka索引服务文档]()
更详细的信息可以查看[Druid Kafka索引服务文档](../DataIngestion/kafka.md)
您可以在[Druid控制台]( http://localhost:8888/unified-console.html#tasks)中查看现有的supervisors和tasks
@ -214,4 +214,4 @@ curl -XPOST -H'Content-Type: application/json' -d @quickstart/tutorial/wikipedia
### 清理数据
如果您希望阅读其他任何入门教程则需要关闭集群并通过删除druid软件包下的`var`目录的内容来重置集群状态,因为其他教程将写入相同的"wikipedia"数据源。
### 进一步阅读
更多关于从Kafka流加载数据的信息可以查看[Druid Kafka索引服务文档]()
更多关于从Kafka流加载数据的信息可以查看[Druid Kafka索引服务文档](../DataIngestion/kafka.md)

View File

@ -212,4 +212,4 @@ druid.indexer.logs.directory=var/druid/indexing-logs
### 进一步阅读
更多关于从Hadoop加载数据的信息可以查看[Druid Hadoop批量摄取文档]()
更多关于从Hadoop加载数据的信息可以查看[Druid Hadoop批量摄取文档](../DataIngestion/hadoopbased.md)

View File

@ -273,5 +273,5 @@ curl -X 'POST' -H 'Content-Type:application/json' -d @quickstart/tutorial/wikipe
### 进一步阅读
[查询文档]()有更多关于Druid原生JSON查询的信息
[Druid SQL文档]()有更多关于Druid SQL查询的信息
[查询文档](../Querying/makeNativeQueries.md)有更多关于Druid原生JSON查询的信息
[Druid SQL文档](../Querying/druidsql.md)有更多关于Druid SQL查询的信息

View File

@ -85,4 +85,4 @@ bin/post-index-task --file quickstart/tutorial/retention-index.json --url http:/
相反如果希望根据数据的生命周期保留数据例如保留从过去3个月到现在3个月的数据则应定义一个周期性加载规则(Period Load Rule)。
### 进一步阅读
[加载规则]()
[加载规则](../Operations/retainingOrDropData.md)

View File

@ -4,7 +4,7 @@
本教程演示如何将现有段合并为较少但更大的段
因为每一个段都有一些内存和处理开销,所以有时减少段的总数是有益的。有关详细信息,请查阅[段大小优化]()。
因为每一个段都有一些内存和处理开销,所以有时减少段的总数是有益的。有关详细信息,请查阅[段大小优化](../Operations/segmentSizeOpt.md)。
本教程我们假设您已经按照[单服务器部署](../GettingStarted/chapter-3.md)中描述下载了Druid并运行在本地机器上。
@ -136,6 +136,6 @@ Coordinator将旧的输入段标记为未使用需要一段时间因此您可
![](img-8/tutorial-compaction-08.png)
### 进一步阅读
[任务文档]()
[任务文档](../DataIngestion/taskrefer.md)
[段优化]()
[段优化](../Operations/segmentSizeOpt.md)