Presto 的资源管理 REST API 文档还挺实用的,尤其适合你要实时掌握查询状态、节点健康、资源使用情况这些。像 /v1/cluster
这种接口,直接一发求就能看到集群有多少查询在跑、有几个节点在线,连预留内存都给你统计清楚,响应也快。
/v1/node
接口也蛮有意思的,查询各个节点的状态信息。你如果在调 Worker 问题时抓不准方向,用它方便,看 IP、主机名这些一清二楚。
至于提交查询这块,/v1/query 和 /v1/statement 是关键角色。简单说,/v1/query
是提交查询任务的,/v1/statement
是执行 SQL 的,你想发个 SQL 查表数据,像 SELECT * FROM my_table WHERE id > 100
,打个 POST 就能搞定,状态信息也会马上回来。
而 /v1/statement/query_id/token
更偏向查进度用,尤其是那种跑得比较久的查询,用它查个状态,不用等半天。开发和运维都适用,灵活度挺高。
要注意,求时别忘了带上像 X-Presto-User
这些 Header,尤其是多人共用环境下,日志排查更有用。
如果你平时对接 Presto 集群多,可以把这几个接口包成工具函数,写个小工具或者脚本,日常排查查询性能瓶颈、节点异常都方便不少。