From d9d2d6f3e5aea974b103f0f30c27414751189a4d Mon Sep 17 00:00:00 2001 From: theonlybigmiao <12958000+tong-cheng-yu-luo@user.noreply.gitee.com> Date: Tue, 12 Nov 2024 14:36:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90api-reference=E7=BF=BB?= =?UTF-8?q?=E8=AF=91=E5=B7=A5=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- operations/api-reference-chinese.md | 910 ++++++++++++++++++++++++++++ 1 file changed, 910 insertions(+) create mode 100644 operations/api-reference-chinese.md diff --git a/operations/api-reference-chinese.md b/operations/api-reference-chinese.md new file mode 100644 index 0000000..4732946 --- /dev/null +++ b/operations/api-reference-chinese.md @@ -0,0 +1,910 @@ +--- +id: api-reference +title: "API reference" +--- + + + + +本页文档记录了各个Druid服务类型的所有API端点。 + +## Common + +以下端点由所有进程支持。 + +### 进程信息(Process information) + +#### GET + +* `/status` + +返回Druid版本、已加载的扩展、已使用的内存、总内存以及其他有关进程的有用信息。 + +* `/status/health` + +一个始终返回布尔值“true”的端点,响应为200 OK,对于自动健康检查很有用。 + +* `/status/properties` + +返回进程的当前配置属性。 + +* `/status/selfDiscovered/status` + +返回一个形式为 `{"selfDiscovered": true/false}`的JSON映射, 指示节点是否已从Druid集群的中心节点发现机制(目前是ZooKeeper)收到了“该节点已被添加到集群中”的确认。 + +建议不要在自动部署/容器管理系统中将Druid节点视为“健康”或“就绪”,直到它从此端点返回 `{"selfDiscovered": true}`。这是因为由于网络问题,节点可能与集群的其他部分隔离。在这种情况下,考虑节点“健康”是没有意义的。此外,当节点(如Broker)使用ZooKeeper段发现来构建其对Druid集群的视图时(而不是HTTP段发现), +它们可能无法使用,直到ZooKeeper客户端完全初始化并开始从ZooKeeper集群接收数据。`{"selfDiscovered": true}`是一个代理事件,表明节点上的ZooKeeper客户端已经开始从ZooKeeper集群接收数据,并且预计通过此节点将及时发现所有段和其他节点。 + +* `/status/selfDiscovered` + +与`/status/selfDiscovered/status`类似,但如果节点已自行发现,则返回200 OK响应和空体;如果节点尚未自行发现,则返回503 SERVICE UNAVAILABLE。此端点可能很有用,因为某些监控检查(如AWS负载均衡器健康检查)无法查看响应体。 + +## 主服务器(Master Server) +这一段记录了建议的 [three-server configuration](../design/processes.md#server-types)中位于主服务器(协调者-Coordinator和霸王-Overlord)进程的API端点。 + +### 协调者(Coordinator) + +#### 领导(Leadership) + +##### GET + +* `/druid/coordinator/v1/leader` + +返回集群的当前领导协调者。 + +* `/druid/coordinator/v1/isLeader` + +返回一个JSON对象,字段为“leader”,值为true或false,指示此服务器是否是集群的当前领导协调者。此外,如果服务器是当前的领导协调者,则返回HTTP 200;如果不是,则返回HTTP 404。这适合用作负载均衡器状态检查,如果您只想将负载均衡器中的活动领导者视作不脱产的。 + + + +#### Segment Loading + +##### GET + +* `/druid/coordinator/v1/loadstatus` + +返回相对于应加载的段数,集群实际加载的段数百分比。 + +* `/druid/coordinator/v1/loadstatus?simple` + +返回待加载的段数,直到集群中理应被加载的段可供查询。这不包括段复制计数。 + +* `/druid/coordinator/v1/loadstatus?full` + +返回每个层级中待加载的段数,直到集群中应被加载的段都可用。这包括段复制计数。 + +* `/druid/coordinator/v1/loadstatus?full&computeUsingClusterView` + +返回每个层级中尚未加载的段数,直到集群中加载的段都可用。 +结果包括段重复计数。在计算剩余要加载的段数时,它也计入可用节点数,这些节点是能够加载段的服务类型。 +当以下条件满足时,一个段被视为完全加载: +- Druid已根据相应的加载规则对它复制了相应次数。 +- 或者在每个配置为复制的层级中,该段的副本数等于当前允许在该层级加载该段的可用服务类型节点数。 + +* `/druid/coordinator/v1/loadqueue` + +返回每个历史进程要加载和删除的段ID。 + +* `/druid/coordinator/v1/loadqueue?simple` + +返回每个历史进程要加载和删除的段数,以及每个历史进程总的段加载和删除大小(以字节为单位)。 + +* `/druid/coordinator/v1/loadqueue?full` + +返回每个历史进程要加载和删除的段的序列化JSON。 + + +#### 数据源加载的段(Segment Loading by Datasource) + +请注意,所有 _interval_ 查询参数都是ISO 8601字符串(例如,2016-06-27/2016-06-28)。 +另请注意,这些API只保证段在调用时是可用的。 +由于历史进程失败或其他任何原因,段可能仍然丢失。 + +##### GET + +* `/druid/coordinator/v1/datasources/{dataSourceName}/loadstatus?forceMetadataRefresh={boolean}&interval={myInterval}` + +返回给定间隔(或如果不给定间隔,则为过去2周)上给定数据源在集群中实际加载占理应加载段数的百分比。需要设置`forceMetadataRefresh`。 + +将`forceMetadataRefresh`设置为true将强制协调者从元数据存储中轮询最新的段元数据(注意:`forceMetadataRefresh=true`会刷新协调者所有数据源的元数据缓存。就元数据存储的负载而言,这可能是一个沉重的操作,但为确保我们验证所有最新段的加载状态可能是必要的)。 +将`forceMetadataRefresh`设置为false将使用协调者上次强制/定期刷新时缓存的元数据。 +如果给定输入没有使用过的段,此API返回`204 No Content`。 + +* `/druid/coordinator/v1/datasources/{dataSourceName}/loadstatus?simple&forceMetadataRefresh={boolean}&interval={myInterval}` + +返回在给定的时间间隔内(如果没有给出时间间隔,则为最近2周)待加载的段数,直到在集群中理应加载的段对于给定数据源全部可用。这不包括段复制计数。需要设置`forceMetadataRefresh`。 +将`forceMetadataRefresh`设置为true将强制协调者从元数据存储中轮询最新的段元数据 +(注意:`forceMetadataRefresh=true`刷新协调者所有数据源的元数据缓存。就元数据存储的负载而言,这可能是一个沉重的操作,但为确保我们验证所有最新段的加载状态可能是必要的) +将`forceMetadataRefresh`设置为false将使用协调者上次强制/定期刷新时缓存的元数据。 +如果给定输入没有使用过的段,此API返回`204 No Content`. + +* `/druid/coordinator/v1/datasources/{dataSourceName}/loadstatus?full&forceMetadataRefresh={boolean}&interval={myInterval}` + +返回在给定的时间间隔内(如果没有给出时间间隔,则为最近2周)每个层级中待加载的段数,直到在集群中理应加载的段对于给定数据源全部可用。这包括段复制计数。需要设置`forceMetadataRefresh`。 +将`forceMetadataRefresh`设置为true将强制协调者从元数据存储中轮询最新的段元数据 +(注意:`forceMetadataRefresh=true`刷新协调者所有数据源的元数据缓存。就元数据存储的负载而言,这可能是一个沉重的操作,但为确保我们验证所有最新段的加载状态可能是必要的) +将`forceMetadataRefresh`设置为false将使用协调者上次强制/定期刷新时缓存的元数据。 +在计算剩余要加载的段时,您可以通过可选的查询参数`computeUsingClusterView`来考虑可用群集服务。有关详细信息,请参阅 [Coordinator Segment Loading](#coordinator-segment-loading)。 +如果给定输入没有找到使用过的段,此API返回`204 No Content`。 + +#### 元数据存储信息(Metadata store information) + +##### GET + +* `/druid/coordinator/v1/metadata/segments` + +返回集群中每个使能的数据源的所有段的列表。 + +* `/druid/coordinator/v1/metadata/segments?datasources={dataSourceName1}&datasources={dataSourceName2}` + +返回集群中一个或多个特定数据源的所有段的列表。 + +* `/druid/coordinator/v1/metadata/segments?includeOvershadowedStatus` + +返回每个数据源的所有段的列表,包括完整的段元数据和一个额外的字段`overshadowed`。 + +* `/druid/coordinator/v1/metadata/segments?includeOvershadowedStatus&datasources={dataSourceName1}&datasources={dataSourceName2}` + +返回一个或多个特定数据源的所有段的列表,包括完整的段元数据和一个额外的字段`overshadowed`。 + +* `/druid/coordinator/v1/metadata/datasources` + +返回集群中至少有一个使用过的段的数据源名称列表。 + +* `/druid/coordinator/v1/metadata/datasources?includeUnused` + +返回数据源名称的列表,无论集群中是否有使用过的段属于那些数据源。 + +* `/druid/coordinator/v1/metadata/datasources?includeDisabled` + +返回数据源名称列表,无论它们是否被禁用, + +* `/druid/coordinator/v1/metadata/datasources?full` + +返回集群中至少有一个使用过的段的数据源的所有数据源列表。返回这些数据源在元数据存储中的全部元数据。 + +* `/druid/coordinator/v1/metadata/datasources/{dataSourceName}` + +返回数据源在元数据存储中的全部元数据。 + +* `/druid/coordinator/v1/metadata/datasources/{dataSourceName}/segments` + +返回数据源在元数据存储中的所有段的列表。 + +* `/druid/coordinator/v1/metadata/datasources/{dataSourceName}/segments?full` + +返回数据源在元数据存储中的所有段列表,包括完整的段元数据。 + +* `/druid/coordinator/v1/metadata/datasources/{dataSourceName}/segments/{segmentId}` + +如果某特定段被使用,返回该段在元数据存储中的完整段元数据。如果该段未使用或未知,则返回404响应。 + +##### POST + +* `/druid/coordinator/v1/metadata/datasources/{dataSourceName}/segments` + +对于一个在元数据存储中存储的数据源,返回与给定间隔重叠的所有段的列表。请求体是ISO 8601间隔的类似[interval1, interval2,...]的字符串数组,例如["2012-01-01T00:00:00.000/2012-01-03T00:00:00.000", "2012-01-05T00:00:00.000/2012-01-07T00:00:00.000"]。 + +* `/druid/coordinator/v1/metadata/datasources/{dataSourceName}/segments?full` + +返回数据源中与给定间隔重叠的所有段列表,包括元数据存储中完整的段元数据。请求体是ISO 8601间隔的类似[interval1, interval2,...]的字符串数组,例如["2012-01-01T00:00:00.000/2012-01-03T00:00:00.000", "2012-01-05T00:00:00.000/2012-01-07T00:00:00.000"]。 + + + +#### 数据库(Datasources) + +请注意,所有 _interval_ URL参数都是ISO 8601字符串,由`_`而不是`/`分隔 +(e.g., 2016-06-27_2016-06-28)。 + +##### GET + +* `/druid/coordinator/v1/datasources` + +返回集群中找到的数据源名称列表。 + +* `/druid/coordinator/v1/datasources?simple` + +返回一个JSON对象列表,包括集群中找到的数据源名称以及属性。属性包括段计数、总段字节大小、复制的总段字节大小、最小时间和最大时间。 + +* `/druid/coordinator/v1/datasources?full` + +返回集群中找到的数据源名称列表,以及这些数据源的所有元数据。 + +* `/druid/coordinator/v1/datasources/{dataSourceName}` + +返回一个JSON对象,它包含数据源的名称和属性。属性包括段计数、总段字节大小、复制的总段字节大小、最小时间和最大时间。 + +* `/druid/coordinator/v1/datasources/{dataSourceName}?full` + +返回数据源的完整元数据。 + +* `/druid/coordinator/v1/datasources/{dataSourceName}/intervals` + +返回一系列段间隔。 + +* `/druid/coordinator/v1/datasources/{dataSourceName}/intervals?simple` + +返回一个映射,将间隔映射到一个JSON对象,该对象包含该间隔内段的总体字节大小和段数。 + +* `/druid/coordinator/v1/datasources/{dataSourceName}/intervals?full` + +返回一个间隔到映射的映射,第一个映射是指从段的元数据到包含该间隔内段的服务器名称集合的映射。 + +* `/druid/coordinator/v1/datasources/{dataSourceName}/intervals/{interval}` + +返回一个间隔内的段ID集合。 + +* `/druid/coordinator/v1/datasources/{dataSourceName}/intervals/{interval}?simple` + +返回一个映射,将包含在指定间隔内的段间隔映射到一个JSON对象,该对象包含该间隔内段的总体字节大小和段数。 + +* `/druid/coordinator/v1/datasources/{dataSourceName}/intervals/{interval}?full` + +返回一个包含在指定间隔内的段间隔到映射的映射,第一个映射是指从段的元数据到包含该间隔内段的映射的服务器名称集合的映射。 + +* `/druid/coordinator/v1/datasources/{dataSourceName}/intervals/{interval}/serverview` + +返回一个映射,将包含在指定间隔内的段间隔映射到包含该间隔内段的服务器的信息。 + +* `/druid/coordinator/v1/datasources/{dataSourceName}/segments` + +返回集群中数据源的所有段列表。 + +* `/druid/coordinator/v1/datasources/{dataSourceName}/segments?full` + +返回集群中数据源的所有段列表,包括完整的段元数据。 + +* `/druid/coordinator/v1/datasources/{dataSourceName}/segments/{segmentId}` + +返回集群中特定段的完整段元数据。 + +* `/druid/coordinator/v1/datasources/{dataSourceName}/tiers` + +返回某个数据源存在的层级。 + +#### 注意协调者的POST和DELETE API +当调用这些API时,段将被启用,但如果有任何dropRule匹配,协调者段可以再次禁用这些段。 如果没有loadRule匹配,这些API启用的段可能不会被历史进程加载。 +如果一个indexing或kill任务与这些API同时运行,结果是不受控的。 +一些段可能被杀死,其他的可能被启用。也有可能所有的段可能被禁用,但同时索引任务可能能够从那些段中读取数据并取得成功。 + +警告:避免对同一数据源和时间块同时使用indexing或kill任务和这些API。(如果时间块或数据源不重叠,那就是好的) + +##### POST + +* `/druid/coordinator/v1/datasources/{dataSourceName}` + +将所有属于某个数据源的段标记为已使用。返回一个JSON对象,形式为 +`{"numChangedSegments": }` ,其中包含数据库中状态已更改的段数(即,段被标记为已使用)作为此API调用的结果。 + +* `/druid/coordinator/v1/datasources/{dataSourceName}/segments/{segmentId}` + +将某个数据源的某段标记为已使用。返回一个JSON对象,形式为 `{"segmentStateChanged": }` , +其中的布尔值指示段的状态是否已更改(即,段被标记为已使用)作为此API调用的结果。 + +* `/druid/coordinator/v1/datasources/{dataSourceName}/markUsed` + +* `/druid/coordinator/v1/datasources/{dataSourceName}/markUnused` + +通过间隔或一组段ID标记某个数据源的段(未)已使用。 + +在标记使用时,只有未被遮罩的段会被更新。 + +请求载荷包含要标记为未使用的间隔或一组段ID。 +应该提供间隔或段ID,如果两者或两者都没有在有效负载中提供,API将抛出错误(400 BAD REQUEST)。 + +间隔指定作为ISO 8601字符串的开始和结束时间。 `interval=(start/end)` 其中开始和结束都是包含的,只有完全包含在指定间隔内的段才会被禁用,部分重叠的段不会受到影响。 + +JSON请求载荷: + +|键|描述|示例| +|----------|-------------|---------| +|`interval`|The interval for which to mark segments unused|"2015-09-12T03:00:00.000Z/2015-09-12T05:00:00.000Z"| +|`segmentIds`|Set of segment Ids to be marked unused|["segmentId1", "segmentId2"]| + +##### DELETE + +* `/druid/coordinator/v1/datasources/{dataSourceName}` + +将所有属于某个数据源的段标记为未使用。返回一个JSON对象,格式为 +`{"numChangedSegments": }` ,其中包含数据库中状态已更改的段数(即段被标记为未使用)作为此API调用的结果。 + +* `/druid/coordinator/v1/datasources/{dataSourceName}/intervals/{interval}` +* `@Deprecated. /druid/coordinator/v1/datasources/{dataSourceName}?kill=true&interval={myInterval}` + +为给定的间隔和数据源运行 [Kill task](../ingestion/tasks.md)。 + +* `/druid/coordinator/v1/datasources/{dataSourceName}/segments/{segmentId}` + +将某个数据源的段标记为未使用。返回一个JSON对象,格式为 `{"segmentStateChanged": }` , +其中布尔值指示段的状态是否已更改(即段被标记为未使用)作为此API调用的结果。 + +#### 保留规则 + +请注意,所有 _interval_ URL参数都是ISO 8601字符串,由 `_` 而不是 `/` 分隔 +(e.g., 2016-06-27_2016-06-28)。 + +##### GET + +* `/druid/coordinator/v1/rules` + +以JSON对象的格式返回包括默认数据源在内的集群中所有数据源的规则。 + +* `/druid/coordinator/v1/rules/{dataSourceName}` + +返回指定数据源的所有规则。 + + +* `/druid/coordinator/v1/rules/{dataSourceName}?full` + +返回指定数据源的所有规则,包括默认数据源。 + +* `/druid/coordinator/v1/rules/history?interval=` + +返回所有数据源的规则审计历史。默认的间隔值可以通过在 Coordinator runtime.properties 中设置`druid.audit.manager.auditHistoryMillis` 来指定(如果不配置,则为1周)。 + +* `/druid/coordinator/v1/rules/history?count=` + +返回所有数据源规则审计历史的最后条记录。 + +* `/druid/coordinator/v1/rules/{dataSourceName}/history?interval=` + +返回指定数据源的规则审计历史。默认的间隔值可以通过在 Coordinator runtime.properties 中设置`druid.audit.manager.auditHistoryMillis` 来指定(如果不配置,则为1周)。 + +* `/druid/coordinator/v1/rules/{dataSourceName}/history?count=` + +返回指定数据源的规则审计历史的最后条记录。 + +##### POST + +* `/druid/coordinator/v1/rules/{dataSourceName}` + +使用携带JSON格式规则列表的POST更新规则。 + +也可以指定用于审计配置更改的可选头参数。 + +| 头参数名称 | 描述 | 默认值 | +|----------|-------------|---------| +|`X-Druid-Author`| author making the config change|""| +|`X-Druid-Comment`| comment describing the change being done|""| + +#### 间隔(Intervals) + +请注意,所有 _interval_ URL参数都是ISO 8601字符串,由`_`而不是`/`分隔 +(e.g.,2016-06-27_2016-06-28)。 + +##### GET + +* `/druid/coordinator/v1/intervals` + +返回具有总大小和计数的所有数据源的所有间隔。 + +* `/druid/coordinator/v1/intervals/{interval}` + +返回与给定等时间隔相交的所有间隔的聚合总大小和计数。 + +* `/druid/coordinator/v1/intervals/{interval}?simple` + +返回给定等时间隔内每个间隔的总大小和计数。 + +* `/druid/coordinator/v1/intervals/{interval}?full` + +返回给定等时间隔内各数据源中各间隔的总大小和计数。 + +#### 动态配置 + +有关详细信息,请参阅 [Coordinator Dynamic Configuration](../configuration/index.md#dynamic-configuration)。 + +请注意,所有 _interval_ URL参数都是ISO 8601字符串,由`_`而不是`/`分隔 +(e.g.,2016-06-27_2016-06-28)。 + +##### GET + +* `/druid/coordinator/v1/config` + +检索当前协调者动态配置。 + +* `/druid/coordinator/v1/config/history?interval={interval}&count={count}` + +检索对overlord动态配置的更改历史。分别接受`interval`和`count`查询字符串参数来按间隔过滤和限制结果数量。 + +##### POST + +* `/druid/coordinator/v1/config` + +更新overlord动态工作器配置。 + +#### 压缩状态 + +##### GET + +* `/druid/coordinator/v1/compaction/progress?dataSource={dataSource}` + +返回给定数据源等待压缩的总大小。 +这只对启用了压缩的数据源有效 + +##### GET + +* `/druid/coordinator/v1/compaction/status` + +返回所有启用了/启用过自动压缩的数据源的最近一次自动压缩运行的状态和统计信息。 +响应载荷包括一个`latestStatus`对象列表。每个`latestStatus`代表一个启用了/启用过自动压缩的数据源。 +`latestStatus` 对象具有以下键: +* `dataSource`: 此状态信息的数据源名称 +* `scheduleStatus`: 自动压缩调度状态。可能的值是NOT_ENABLED和RUNNING。如果数据源有主动的自动压缩配置提交,则返回RUNNING,否则返回NOT_ENABLED。 +* `bytesAwaitingCompaction`: 此数据源等待通过自动压缩来压缩的总字节数(仅考虑有资格进行自动压缩的间隔/段) +* `bytesCompacted`: 此数据源已使用自动压缩配置中的规格集进行压缩的总字节数 +* `bytesSkipped`: 此数据源进行自动压缩时跳过(没有资格进行自动压缩)的总字节数 +* `segmentCountAwaitingCompaction`: 此数据源等待通过自动压缩进行压缩的总段数(仅考虑有资格进行自动压缩的间隔/段) +* `segmentCountCompacted`: 此数据源已经根据自动压缩配置中的规格集压缩的总段数 +* `segmentCountSkipped`: 此数据源进行自动压缩时跳过(没有资格进行自动压缩)的总段数 +* `intervalCountAwaitingCompaction`: 此数据源等待通过自动压缩进行压缩的总间隔数(仅考虑有资格进行自动压缩的间隔/段) +* `intervalCountCompacted`: 此数据源已经根据自动压缩配置中的规格集压缩的总间隔数 +* `intervalCountSkipped`: 此数据源进行自动压缩时跳过(没有资格进行自动压缩)的总间隔数 + +##### GET + +* `/druid/coordinator/v1/compaction/status?dataSource={dataSource}` + +与上面的API `/druid/coordinator/v1/compaction/status` 类似,但过滤响应以实现仅返回给定{dataSource}的信息。 +请注意,给定的{dataSource}必须启用/启用过自动压缩。 + +#### 压缩配置 + +##### GET + +* `/druid/coordinator/v1/config/compaction` + +返回所有压缩配置。 + +* `/druid/coordinator/v1/config/compaction/{dataSource}` + +返回某个数据源的压缩配置。 + +##### POST + +* `/druid/coordinator/v1/config/compaction/taskslots?ratio={someRatio}&max={someMaxSlots}` + +更新压缩任务的容量。 `ratio` 和 `max` 用于限制压缩任务的最大数量。 +它们分别表示总任务槽与压缩任务槽的比率以及压缩任务的最大任务槽数。 +实际的最大压缩任务数是 `min(max, ratio * total task slots)`。 +请注意,`ratio`和`max`是可选的,可以省略。如果省略,将使用默认值(0.1和无限)。 + +* `/druid/coordinator/v1/config/compaction` + +为数据源创建或更新压缩配置。 +有关配置详情信息,请参阅 [Compaction Configuration](../configuration/index.md#compaction-dynamic-configuration)。 + + +##### DELETE + +* `/druid/coordinator/v1/config/compaction/{dataSource}` + +为数据源删除压缩配置。 + +#### 服务器信息 + +##### GET + +* `/druid/coordinator/v1/servers` + +返回服务器URL列表,格式为 `{hostname}:{port}`。请注意, +以不同类型运行的进程将使用不同的端口多次出现。 + +* `/druid/coordinator/v1/servers?simple` + +返回服务器数据对象列表,每个对象具有以下键: +* `host`: 主机URL包括 (`{hostname}:{port}`) +* `type`: 进程类型 (`indexer-executor`, `historical`) +* `currSize`: 当前使用的存储大小 +* `maxSize`: 最大存储大小 +* `priority` +* `tier` + +### 霸王(Overlord) + +#### 领导(Leadership) + +##### GET + +* `/druid/indexer/v1/leader` + +返回集群的当前领导Overlord。如果您有多个Overlords,任何时候只有其中一个进行领导。其他的处于待命状态。 + +* `/druid/indexer/v1/isLeader` + +这返回一个JSON对象,字段为 "leader",值为true或false。此外,如果服务器是当前的领导, +此调用返回HTTP 200;如果不是,则返回HTTP 404。 这适合用作负载均衡器状态检查,如果您只想将活动领导者视作在负载均衡器中不脱产的。 + +#### 任务 + +请注意,所有 _interval_ URL参数都是ISO 8601字符串,由`_`而不是`/`分隔 +(例如,2016-06-27_2016-06-28)。 + +##### GET + +* `/druid/indexer/v1/tasks` + +检索任务列表。接受查询字符串参数 `state`, `datasource`, `createdTimeInterval`, `max`, 和 `type`。 + +| 查询参数 | 描述 | +|---|---| +|`state`|按任务状态过滤任务列表,有效选项为 `running`, `complete`, `waiting`, and `pending`.| +| `datasource`| 返回按Druid数据源过滤的任务。| +| `createdTimeInterval`| 返回在指定间隔内创建的任务。 | +| `max`|返回 `"complete"`任务的最大数量。仅当 `state` 设置为 `"complete"`时适用。| +| `type`| 按任务类型过滤任务。有关更多详细信息,请参阅 [task documentation](../ingestion/tasks.md) 。| + + +* `/druid/indexer/v1/completeTasks` + +检索完整任务列表。相当于 `/druid/indexer/v1/tasks?state=complete`。 + +* `/druid/indexer/v1/runningTasks` + +检索运行中的任务列表。相当于 `/druid/indexer/v1/tasks?state=running`。 + +* `/druid/indexer/v1/waitingTasks` + +检索等待中的任务列表。相当于 `/druid/indexer/v1/tasks?state=waiting`。 + +* `/druid/indexer/v1/pendingTasks` + +检索待处理的任务列表。相当于 `/druid/indexer/v1/tasks?state=pending`。 + +* `/druid/indexer/v1/task/{taskId}` + +检索任务的“有效载荷”。 + +* `/druid/indexer/v1/task/{taskId}/status` + +检索任务的状态。 + +* `/druid/indexer/v1/task/{taskId}/segments` + +检索某个任务段的详细信息。 + +> 此API已弃用,将在未来的版本中删除。 + +* `/druid/indexer/v1/task/{taskId}/reports` + +检索任务的 [任务完成报告](../ingestion/tasks.md#task-reports) 。 仅适用于已完成的任务。 + +##### POST + +* `/druid/indexer/v1/task` + +向霸王(overlord)提交任务和监控规范的端点。返回已提交任务的taskId。 + +* `/druid/indexer/v1/task/{taskId}/shutdown` + +关闭某个任务。 + +* `/druid/indexer/v1/datasources/{dataSource}/shutdownAllTasks` + +关闭某个数据源的所有任务 + +* `/druid/indexer/v1/taskStatus` + +检索任务状态对象的列表,这些对象包含请求体中的任务id字符串列表。 + +##### DELETE + +* `/druid/indexer/v1/pendingSegments/{dataSource}` + +手动清理`datasource`的元数据存储中的待处理段表。返回一个JSON对象响应,其中包含`numDeleted`和从待处理段表中删除的行数。 +此API由 +`druid.coordinator.kill.pendingSegments.on` [协调者 设置](../configuration/index.md#coordinator-operation) +使用,该设置可自动化此操作以定期执行。 + +#### 监管者(Supervisor) + +##### GET + +* `/druid/indexer/v1/supervisor` + +返回当前活动的supervisor的ID字符串列表。 + +* `/druid/indexer/v1/supervisor?full` + +返回当前活动的supervisor的对象列表。 + +|字段|类型|描述| +|---|---|---| +|`id`|String|supervisor 唯一标识符| +|`state`|String|supervisor的基本状态。可用状态:`UNHEALTHY_SUPERVISOR`, `UNHEALTHY_TASKS`, `PENDING`, `RUNNING`, `SUSPENDED`, `STOPPING`。 更多细节请查看 [Kafka 文档](../development/extensions-core/kafka-ingestion.md#operations) | +|`detailedState`|String|supervisor的特定状态。 (请参阅特定的supervisor文档以了解详细信息, e.g. [Kafka](../development/extensions-core/kafka-ingestion.md) 或 [Kinesis](../development/extensions-core/kinesis-ingestion.md))| +|`healthy`|Boolean|整体supervisor健康状况的true或false指示器| +|`spec`|SupervisorSpec|supervisor的json规范(有关详细信息,请参阅supervisor配置)| + +* `/druid/indexer/v1/supervisor?state=true + +返回当前活动的supervisor及其当前状态的对象列表。 + +|字段|类型|描述| +|---|---|---| +|`id`|String|supervisor 唯一标识符| +|`state`|String|supervisor的基本状态。可用状态: `UNHEALTHY_SUPERVISOR`, `UNHEALTHY_TASKS`, `PENDING`, `RUNNING`, `SUSPENDED`, `STOPPING`。 更多细节请查看 [Kafka 文档](../development/extensions-core/kafka-ingestion.md#operations) | +|`detailedState`|String|supervisor的特定状态。 (请参阅特定的supervisor文档以了解详细信息, e.g. [Kafka](../development/extensions-core/kafka-ingestion.md) or [Kinesis](../development/extensions-core/kinesis-ingestion.md))| +|`healthy`|Boolean|整体supervisor健康状况的true或false指示器| +|`suspended`|Boolean|supervisor是否处于挂起状态的true或false指示器| + +* `/druid/indexer/v1/supervisor/` + +返回具有提供的ID的supervisor的当前规格。 + +* `/druid/indexer/v1/supervisor//status` + +返回具有提供的ID的supervisor的当前状态。 + +* `/druid/indexer/v1/supervisor/history` + +返回所有supervisor(当前和过去的)规格的审计历史。 + +* `/druid/indexer/v1/supervisor//history` + +返回具有提供的ID的supervisor规格的审计历史。 + +##### POST + +* `/druid/indexer/v1/supervisor` + +创建新的supervisor或更新现有的supervisor。 + +* `/druid/indexer/v1/supervisor//suspend` + +挂起具有提供的ID的当前运行的supervisor。响应更新的SupervisorSpec。 + +* `/druid/indexer/v1/supervisor/suspendAll` + +立刻(一次性?)挂起所有的supervisor。 + +* `/druid/indexer/v1/supervisor//resume` + +恢复supervisor的索引任务。响应更新的SupervisorSpec。 + +* `/druid/indexer/v1/supervisor/resumeAll` + +立刻(一次性?)恢复所有supervisor。 + +* `/druid/indexer/v1/supervisor//reset` + +重置指定的supervisor。 + +* `/druid/indexer/v1/supervisor//terminate` + +终止具有提供的ID的supervisor。 + +* `/druid/indexer/v1/supervisor/terminateAll` + +立刻(一次性)终止所有supervisor。 + +* `/druid/indexer/v1/supervisor//shutdown` + +关闭某个supervisor。 + +> 此API已弃用,将在未来的版本中删除。 +> 请使用等效的 'terminate' 代替。 + +#### 动态配置 + +有关详细信息,请参阅[Overlord动态配置](../configuration/index.md#overlord-dynamic-configuration) 。 + +请注意,所有 _interval_ URL参数都是ISO 8601字符串,由`_`而不是`/`分隔 +(e.g.,2016-06-27_2016-06-28)。 + +##### GET + +* `/druid/indexer/v1/worker` + +检索当前的Overlord动态配置。 + +* `/druid/indexer/v1/worker/history?interval={interval}&count={count}` + +检索Overlord动态配置更改的历史。 接受 `interval` 和 `count` 查询字符串参数来按间隔过滤和限制结果数量。 + +* `/druid/indexer/v1/workers` + +检索集群中所有工作节点及其元数据的列表。 + +* `/druid/indexer/v1/scaling` + +检索Overlord扩展事件(如果使用自动扩充runner)。 + +##### POST + +* /druid/indexer/v1/worker + +更新Overlord动态工作器配置。 + +## 数据服务器(Data Server) + +本节文档记录了建议的[三-服务器](../design/processes.md#server-types)配置中数据服务器 (MiddleManagers/Peons and Historicals)上进程的API端点。 + +### MiddleManager + +##### GET + +* `/druid/worker/v1/enabled` + +检查MiddleManager是否处于启用或禁用状态。返回JSON对象,其键为`druid.host`和`druid.port`的组合,值为布尔状态。 + +```json +{"localhost:8091":true} +``` + +* `/druid/worker/v1/tasks` + +检索在MiddleManager上运行的活动任务列表。返回任务id字符串的JSON列表。正常使用时优先使用 `/druid/indexer/v1/tasks` [Overlord API](#overlord) 或它的任务状态特定变体之一。 + +```json +["index_wikiticker_2019-02-11T02:20:15.316Z"] +``` + +* `/druid/worker/v1/task/{taskid}/log` + +按任务id检索任务日志输出流。正常使用应优先使用 `/druid/indexer/v1/task/{taskId}/log` +[Overlord API](#overlord) 代替。 + +##### POST + +* `/druid/worker/v1/disable` + +'禁用' 某个MiddleManager,使其停止接受新任务,但完成所有现有任务。返回JSON对象,键为 + `druid.host` 和 `druid.port`的组合。 + +```json +{"localhost:8091":"disabled"} +``` + +* `/druid/worker/v1/enable` + +'启用' 某个MiddleManager,允许它再次接受新任务(如果之前已禁用)。返回JSON对象,键为 + `druid.host` 和 `druid.port`的组合。 + +```json +{"localhost:8091":"enabled"} +``` + +* `/druid/worker/v1/task/{taskid}/shutdown` + +通过`taskid`关闭某个正在运行的任务。正常使用应优先使用 `/druid/indexer/v1/task/{taskId}/shutdown` +[Overlord API](#overlord) 代替. 返回 JSON: + +```json +{"task":"index_kafka_wikiticker_f7011f8ffba384b_fpeclode"} +``` + + +### Peon + +#### GET + +* `/druid/worker/v1/chat/{taskId}/rowStats` + +从某个Peon检索实时的行统计报告。有关更多详细信息,请参阅 [任务报告](../ingestion/tasks.md#task-reports) 。 + +* `/druid/worker/v1/chat/{taskId}/unparseableEvents` + +从某个Peon检索无法解析的事件报告。有关更多详细信息,请参阅 [任务报告](../ingestion/tasks.md#task-reports) 。 + +### Historical + +#### 段加载(Segment Loading) + +##### GET + +* `/druid/historical/v1/loadstatus` + +返回JSON格式的 `{"cacheInitialized":}`, 其中值是`true`或`false`, +指示本地缓存中的所有段是否已加载。这可用于了解历史进程在重新启动后何时准备被查询。 + +* `/druid/historical/v1/readiness` + +类似于 `/druid/historical/v1/loadstatus`, 但不是返回带有标志的JSON,而是在本地缓存中的段已加载时返回200 OK, +如果没有,则返回503 SERVICE UNAVAILABLE。 + + +## 查询服务器(Query Server) + +本节文档记录了建议的[三-服务器 配置](../design/processes.md#server-types) +中查询服务器(Brokers)上进程的API端点。 +### Broker + +#### 数据源信息(Datasource Information) + +请注意,所有的 _interval_ URL参数都是ISO 8601字符串,由`_`而不是`/`分隔 +(例如,2016-06-27_2016-06-28)。 + +##### GET + +* `/druid/v2/datasources` + +返回可查询的数据源列表。 + +* `/druid/v2/datasources/{dataSourceName}` + +返回数据源的维度和指标。可以选择性提供请求参数"full"以获取服务的间隔列表以及这些间隔所提供的维度和指标。也可以明确提供请求参数"interval"以引用特定的间隔。 + +如果没有指定间隔,将使用默认间隔,该间隔跨越当前时间之前的一个可配置时间段。此默认间隔的持续时间通过ISO 8601持续格式指定: + +druid.query.segmentMetadata.defaultHistory + +* `/druid/v2/datasources/{dataSourceName}/dimensions` + +返回某个数据源的维度。 + +> 此API已弃用,并将在未来版本中移除。请改用 [SegmentMetadataQuery](../querying/segmentmetadataquery.md) 来代替, +> 它提供更全面的信息,并支持包括流数据源在内的所有数据源类型。 如果您使用SQL,还鼓励使用 [INFORMATION_SCHEMA 表](../querying/sql.md#metadata-tables)。 + +* `/druid/v2/datasources/{dataSourceName}/metrics` + +返回某个数据源的指标。 + +> 此API已弃用,并将在未来版本中移除。请改用 [SegmentMetadataQuery](../querying/segmentmetadataquery.md) 来代替, +> 它提供更全面的信息,并支持包括流数据源在内的所有数据源类型。 如果您使用SQL,还鼓励使用 [INFORMATION_SCHEMA 表](../querying/sql.md#metadata-tables)。 + +* `/druid/v2/datasources/{dataSourceName}/candidates?intervals={comma-separated-intervals}&numCandidates={numCandidates}` + +返回给定数据源和间隔的包含服务器位置的段信息列表。 如果没有指定"numCandidates", 则将返回每个间隔的所有服务器。 + +#### 加载状态(Load Status) + +##### GET + +* `/druid/broker/v1/loadstatus` + +返回一个标志,指示Broker是否知道集群中的所有段。这可以用来知道Broker进程在重启后何时可以被查询。 + +* `/druid/broker/v1/readiness` + +类似于`/druid/broker/v1/loadstatus`, 但不是返回JSON,如果准备就绪则响应200 OK,否则响应503 SERVICE UNAVAILABLE。 + +#### 查询(Queries) + +##### POST + +* `/druid/v2/` + +提交查询的端点。接受一个 `?pretty` 选项,用于美化打印结果。 + +* `/druid/v2/candidates/` + +返回给定查询的包含服务器位置的段信息列表。 + +### 路由(Router) + +#### GET + +* `/druid/v2/datasources` + +返回一个可查询的数据源列表。 + +* `/druid/v2/datasources/{dataSourceName}` + +返回该数据源的维度和指标。 + +* `/druid/v2/datasources/{dataSourceName}/dimensions` + +返回该数据源的维度。 + +* `/druid/v2/datasources/{dataSourceName}/metrics` + +返回该数据源的指标。 -- Gitee