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 を提供したくない場合は、一意の ID にランダム GUID を使用します。詳細情報へのリンクは次のとおりです: http://hypertable.com/documentation/developer_guide/#unique-cells

ホストとポートを 1 つの列 ("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";

セカンダリ インデックスは、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 に答える