
DataWave REST API参考手册query、plan、lookup、predict等核心接口使用指南【免费下载链接】datawaveDataWave is an ingest/query framework that leverages Apache Accumulo to provide fast, secure data access.项目地址: https://gitcode.com/gh_mirrors/da/datawaveDataWave 是基于 Apache Accumulo 的开源数据摄取与查询框架它的 Web 服务通过一套简洁的 REST API 暴露了强大的查询能力。本指南将带你快速掌握 DataWave REST API 中最常用的核心接口——query创建分页查询、plan查询计划预览、lookup原始数据回溯和 predict查询预测帮助新手在 10 分钟内跑通第一个查询。 先了解 DataWave 是什么DataWave 将海量事件数据高效写入 Apache Accumulo并提供一套完整的 REST 查询接口。你可以把它理解为一个带安全属性的搜索引擎查询时不仅要写查询语法还要声明你的权限auths系统会自动根据安全标签过滤结果。它的 REST 服务整体架构位于 web-services/ 模块下查询执行的核心逻辑在 BasicQueryBean.java 和 QueryExecutorBean.java 中实现微服务版的查询接口定义则见 Query.java。 核心接口全景速览接口作用典型场景query创建查询并按页拉取结果日常数据检索plan查看查询执行计划优化查询性能lookup按 UID/UUID 回溯原始数据查看命中的原始记录predict预测查询将命中哪些索引评估查询代价、提前发现错误count / hit / termFrequency统计命中数、命中摘要、词频聚合分析edge / mapReduce / cachedResults图分析、MapReduce 查询、结果缓存高级分析场景项目内置了一套可直接运行的调用脚本位于 docker/scripts/ 目录例如 query.sh、plan.sh、lookup.sh、predict.sh配合公共函数 common/query.sh 演示了标准的调用流程。 query 接口创建查询并分页拉取query 是 DataWave 使用频率最高的接口采用先创建、后翻页的两步式模式第一步创建查询POST/{queryLogic}/create核心参数包括query查询语句默认支持 LUCENE 语法通过query.syntax指定begin/end时间范围格式如19660908 000000.000columnVisibility与auths安全属性声明pagesize每页返回条数systemFrom/queryName调用来源与查询名称用于审计第二步分页获取GET/{queryId}/next创建成功后响应中会返回一个queryId之后每次调用next接口获取下一页直到查询结束自动销毁。官方脚本中的标准调用方式可以这样理解携带 mTLS 证书-E ${TMP_PEM}向/EventQuery/create提交参数 → 解析createResponse.xml拿到 queryId → 循环调用/{queryId}/next直到返回非 200 状态码。完整流程可参考 common/query.sh 中的runQuery函数。 plan 接口查询前的成本预估在大数据场景下直接执行一个代价高昂的查询可能拖垮系统。plan 接口允许你只查看执行计划而不真正执行响应中会列出查询要扫描的索引、预估代价等信息。它最适合在以下场景使用上线新查询前验证语法是否正确排查某个查询为什么慢确认查询会命中哪些字段索引调用脚本见 docker/scripts/plan.sh。 lookup 接口回溯命中的原始数据query 返回的是索引层面的结果如果你需要看到原始记录内容就用 lookup 接口。它支持按 UID、UUID 等条件回溯例如按 UUID 查询、获取下一条内容next等变体相关工具类位于 AbstractUUIDLookupCriteria.java 等文件中。典型用法query 命中的某条记录 → 用其 UUID 调用 lookup → 获取该事件的全部原始字段。 predict 接口预测查询命中范围predict 接口与 plan 类似但它聚焦于预测结果集不返回数据本身而是告诉你这个查询会匹配到什么。对于新手来说它是调试查询的利器——当你不确定一个 Lucene 查询是否会命中数据时先 predict 一下能帮你快速定位是语法问题、索引缺失还是权限不足。调用示例见 docker/scripts/predict.sh。 快速上手三步跑通第一个查询准备环境项目提供 Docker Compose 一键栈配置文件在 docker/docker-compose.yml启动后服务会生成 mTLS 证书PKI 材料见 docker/pki/。复制脚本改参数打开 docker/scripts/query.sh修改QUERY如GENRES:[Action to Western]、时间范围BEGIN/END和权限AUTHS。执行并翻页脚本会依次调用 create 和 next 接口把每页响应保存为nextResponse_1.xml等文件方便你检查 JSON/XML 返回结构。⚠️ 注意DataWave 的 REST API 默认启用mTLS 双向认证curl 调用时务必带上-k -E client.pem之类的客户端证书参数。 更多接口与进阶玩法统计类count.sh命中计数、hitHighlights.sh命中摘要、termFrequency.sh词频统计图分析edge.sh 调用 edge 接口做实体关系挖掘异步/批量streamingQuery.sh流式查询、mapReduceQuery.shMapReduce 分布式查询服务实现见 mapreduce-query/、cachedResultsQuery.sh缓存结果复用Web 查询界面浏览器端交互入口由 query-websocket/ 提供️ 相关资源导航资源路径REST API 部署配置web-services/rest-api/src/main/webapp/WEB-INF/web.xml查询执行核心web-services/query/src/main/java/datawave/webservice/query/runner/查询限流与配额web-services/query/src/main/java/datawave/webservice/query/limit/README.md微服务查询 API 定义microservices/services/query/api/src/main/java/datawave/microservice/query/Query.java官方文档站点源码web-services/deploy/docs/docs/index.html小结掌握 query检索 plan预览 predict预测 lookup回溯这四大核心接口就覆盖了 DataWave REST API 90% 的日常使用场景。建议从 docker/scripts/ 目录下的示例脚本入手它们是最直观的活文档。【免费下载链接】datawaveDataWave is an ingest/query framework that leverages Apache Accumulo to provide fast, secure data access.项目地址: https://gitcode.com/gh_mirrors/da/datawave创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考