0

如果我有以下表模式来记录异常(在标准 SQL 模式中):

Table: ExceptionLog
Columns: ID (Long), 
         ExceptionClass (String),      
         ExceptionMessage (String), 
         Host (String), 
         Port (Integer), 
         HttpHeader (String), 
         HttpPostBody (String), 
         HttpMethod (String)

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

4

1 回答 1

1

什么是 ID - 它是自动递增的唯一 ID?Hypertable 没有自动增量,但如果您不想提供自己的 ID,则使用随机 GUID 作为唯一 ID。这是包含更多信息的链接:http: //hypertable.com/documentation/developer_guide/#unique-cells

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

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

CREATE TABLE ExceptionLog (ID, ExceptionClass, ExceptionMessage, Host, Port, HttpHeader, HttpPostBody, HttpMethod);

如果您有频繁的查询,例如

SELECT ExceptionClass FROM ExceptionLog WHERE ExceptionClass = "Segfault";

二级索引记录在这里:http ://hypertable.com/documentation/developer_guide/#secondary-indices

这是一个演示如何使用 Java 客户端的示例。这相当简单:https ://github.com/cruppstahl/hypertable/blob/v0.9.6/src/java/ThriftClient/org/hypertable/thrift/BasicClientTest.java

于 2012-09-10T04:53:34.243 回答