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 存在,而且它至少包含一行,但这似乎是一个相当可靠的假设。
是否可以在 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 存在,而且它至少包含一行,但这似乎是一个相当可靠的假设。