Apache Phoenix 中的验证查询

Validation query in Apache Phoenix

是否可以在 Apache Phoenix 中编写合理的验证查询?

我想要一些东西,它会向数据库发送一个简单的查询,并且 return 一个小而预测的 table 结果,而不假设数据库中已经存储了什么。它仅用作确认数据库是否存在并响应请求的一种方式。

在MySQL中,我使用了SELECT 1,效果非常好。但 Phoenix 不支持这一点:它坚持将其设置为 SELECT 1 FROM table,如果没有 table,它会抱怨。这对我没有用:它依赖于数据库中特定 table 的存在。

到目前为止我想到的最好的是

DROP SEQUENCE IF EXISTS completelyimplausiblesequencename

这行得通,但有点老套和不雅,但原则上它确实会改变状态。

还有更好的吗?

似乎可以假设 Phoenix 用来存储内部信息的 SYSTEM.CATALOG table 的存在。

因此,即使在原则上,获得不改变状态的简单验证查询的方法是

SELECT 1 FROM SYSTEM.CATALOG LIMIT 1

LIMIT 1 是必需的,因为否则您会为 table 中的每一行返回一个 1

准确地说,这不仅假设 table 存在,而且它至少包含一行,但这似乎是一个相当可靠的假设。