如何使用HyperTable设计异常日志记录表并通过Java客户端访问它?

如何使用HyperTable设计异常日志记录表并通过Java客户端访问它?,java,nosql,hypertable,Java,Nosql,Hypertable,如果我有下表架构来记录异常(在标准SQL架构中): 我如何在HyperTable中设计相同的东西(具体来说,什么是提高效率的最佳方法)?还有,如何使用HyperTable Java客户端对其进行编码?什么是ID?它是自动递增的唯一ID吗?Hypertable没有自动递增功能,但如果您不想提供自己的ID,则会使用随机GUID作为唯一ID。以下是有关详细信息的链接: 我可能会将主机和端口组合成一个列(“hypertable.com:8080”),但这是我个人的偏好 其他一切看起来都很好。您可以简单

如果我有下表架构来记录异常(在标准SQL架构中):


我如何在HyperTable中设计相同的东西(具体来说,什么是提高效率的最佳方法)?还有,如何使用HyperTable Java客户端对其进行编码?

什么是ID?它是自动递增的唯一ID吗?Hypertable没有自动递增功能,但如果您不想提供自己的ID,则会使用随机GUID作为唯一ID。以下是有关详细信息的链接:

我可能会将主机和端口组合成一个列(“hypertable.com:8080”),但这是我个人的偏好

其他一切看起来都很好。您可以简单地将其转换为HQL中的CREATE TABLE语句:

CREATE TABLE ExceptionLog (ID, ExceptionClass, ExceptionMessage, Host, Port, HttpHeader, HttpPostBody, HttpMethod);
如果您有像这样的频繁查询,您可能还希望有二级索引,即ExceptionClass上的索引

SELECT ExceptionClass FROM ExceptionLog WHERE ExceptionClass = "Segfault";
二级索引记录在此处:


下面的示例演示了如何使用Java客户机。很简单:

谢谢你的回答。问题是我要用什么作为钥匙。在传统SQL中,它将是一个生成的唯一ID(我正在从传统SQL转换为HyperTable,因此如果您能解释如何构造新模式,它将有所帮助)。您可以使用GUID。其他一切都可以保持原样,但正如我在上面所写的,您可能希望在某些列族上创建索引。以下是有关如何在hypertable中使用唯一键的文档:
SELECT ExceptionClass FROM ExceptionLog WHERE ExceptionClass = "Segfault";