在开发调试或者生产运维过程中,往往需要去Lindorm中查询某条数据。除了使用Lindorm shell来写Get、Scan请求,Lindorm insight提供了一个简单的SQL查询入口,您可以使用SQL语法来查询Lindorm的表。

注意事项

在您执行SQL前,请您务必先阅读下面的几点重要说明,能有效解决您使用时可能遇到的问题或疑惑:
  • 本系统只支持SELECT查询语句,如果需要变更数据操作,需要通过命令行或者使用产品提供的API自行开发应用。
  • 为确保数据安全,本系统每次查询返回最多100条数据。
  • 对所有varbinary类型的字段进行条件查询时,必须使用HexCode编码的字符串作为value 。
  • ROW字段对应HBase的rowkeyROWqualifier都是 varbinary类型,qualifier如果不属于family, 则需要指定family,例如:select `ROW`, q1, `f1:q2` from ...
  • ROWCOL是SQL保留字,查询时需要加反引号;qualifier指定family时也需要加反引号。

操作步骤

从Lindorm Insight中的 SQL方式查询页面可以进入数据查询系统。在查询前,先要选择表所在Namespace,选择了Namespace后,页面右侧的树形结构中会展示出这个Namespace中所有的表;单击表名可以显示这个表的schema,ROW代表RowKey, COL是预置的列名。您可以根据这个表的schema来构造select请求。
说明 Lindorm insight的SQL查询页面不支持use namespace语法,只能通过左上角的Namespace列表选择或切换Namespace。
  1. 访问Lindorm Insight。具体操作请参考如何访问Lindorm Insight?
  2. 在左侧导航栏,单击数据查询
  3. SQL方式查询页面,下拉选择Namespace,页面右侧会展示出当前Namespace下的所有的表。参考这些表输入查询SQL,单击执行
    SQL查询

转换Binary编码字符与HexCode编码字符

Lindorm内部使用byte[]的形式存储数据,在SQL方式查询页面中返回的查询结果中,varbinary类型的字段以Lindorm BinaryString的编码形式展示。

varbinary类型的字段进行条件查询时(即where子句中包含如rowkey等字段),必须使用HexCode编码的字符作为查询条件的value。例如:查询rowkeyr1数据,则SQL查询中的where子句应该写成where rowkey='7321'(字符串r1的HexCode编码字符为7321)。

为方便用户在查询数据时进行编码转换,Lindorm Insight系统在 SQL方式查询页面中提供了一个简单的转换工具,只需将您的 Binary编码字符串输入转换框中,即可在SQL编辑器内看到该字符串相应的 HexCode编码,如下图所示: Binary编码字符串转换
如果您需要查看 HexCode编码的查询结果,可以勾选 HexString单选框,系统会将查询返回结果中 varbinary类型的字段都转为 HexCode编码的字符串,如下图所示: HexString