add link
This commit is contained in:
parent
c55862679e
commit
394633d806
|
@ -0,0 +1 @@
|
|||
<!-- toc -->
|
|
@ -0,0 +1 @@
|
|||
<!-- toc -->
|
|
@ -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可以从一行跳到另一行,避免读取与查询过滤器不匹配的数据。
|
||||
|
||||
|
|
|
@ -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可以被配置记录和报告每个服务查询的指标。
|
|
@ -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线程池。
|
||||
|
|
|
@ -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)
|
||||
|
||||
### 元数据存储表
|
||||
#### 段表
|
||||
|
|
|
@ -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。
|
||||
|
|
|
@ -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应该很少(如果为了测试目的)自己运行。
|
||||
|
||||
|
|
|
@ -86,7 +86,7 @@ Router有一个可配置的策略列表,用于选择将查询路由到哪个Br
|
|||
```
|
||||
|
||||
> [!WARNING]
|
||||
> 默认情况下禁用基于JavaScript的功能。有关使用Druid的JavaScript功能的指南,包括如何启用它的说明,请参阅[Druid JavaScript编程指南]()。
|
||||
> 默认情况下禁用基于JavaScript的功能。有关使用Druid的JavaScript功能的指南,包括如何启用它的说明,请参阅[Druid JavaScript编程指南](../Development/JavaScript.md)。
|
||||
|
||||
### Avatica查询平衡
|
||||
|
||||
|
|
|
@ -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)文档的**分区规范**部分。
|
||||
|
||||
### 段文件的核心数据结构
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
<!-- toc -->
|
|
@ -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,以实现容错和减少资源争用。
|
||||
|
||||
|
|
|
@ -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上的连接池。
|
||||
|
||||
### 加载数据
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
<!-- toc -->
|
|
@ -0,0 +1 @@
|
|||
<!-- toc -->
|
|
@ -0,0 +1 @@
|
|||
<!-- toc -->
|
|
@ -0,0 +1 @@
|
|||
<!-- toc -->
|
|
@ -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)
|
|
@ -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)
|
|
@ -212,4 +212,4 @@ druid.indexer.logs.directory=var/druid/indexing-logs
|
|||
|
||||
### 进一步阅读
|
||||
|
||||
更多关于从Hadoop加载数据的信息,可以查看[Druid Hadoop批量摄取文档]()
|
||||
更多关于从Hadoop加载数据的信息,可以查看[Druid Hadoop批量摄取文档](../DataIngestion/hadoopbased.md)
|
|
@ -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查询的信息
|
|
@ -85,4 +85,4 @@ bin/post-index-task --file quickstart/tutorial/retention-index.json --url http:/
|
|||
相反,如果希望根据数据的生命周期保留数据(例如,保留从过去3个月到现在3个月的数据),则应定义一个周期性加载规则(Period Load Rule)。
|
||||
|
||||
### 进一步阅读
|
||||
[加载规则]()
|
||||
[加载规则](../Operations/retainingOrDropData.md)
|
|
@ -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)
|
Loading…
Reference in New Issue