2012-04-18 5 views
0

HBaseのインクリメントカウンタに関するドキュメントを見つけるのに苦労しています。誰もが知っている?HBaseスキーマ行キーデザイン - インクリメントカウンタ?

私のアプリケーション用のHbaseテーブルスキーマを設計しています。私のrow_keyは100%一意性を保証することはできません。ですから、問題は、私のrow_keyが重複を開始するときに、それらを区別するために行キーの一部としてインクリメントカウンタを持つことです。思考?

答えて

-1

あなたはそれはあなたがこのように行う場合

行キーが常に一意になる常にユニーク

info:aaa#timestamp 
info:bbb#timestamp 
info:ccc#timestamp 
info:aaa#timestamp 
info:bbb#timestamp 
info:ccc#timestamp 
info:aaa#timestamp 
info:bbb#timestamp 
info:ccc#timestamp 

などのOSになりますので、自分の行キーとタイムスタンプを追加する一つのことを行うことができます

もう一つ、あなたは

uidgen

Iを試すことができますあなたはその後、

public class GenerateUUID { 

    public static final void main(String... aArgs){ 
    UUID idOne = UUID.randomUUID(); 
    UUID idTwo = UUID.randomUUID(); 
    log("UUID One: " + idOne); 
    log("UUID Two: " + idTwo); 
    } 

    private static void log(Object aObject){ 
    System.out.println(String.valueOf(aObject)); 
    } 
} 

Javaを使用していると、あなたはこれを添付することができた場合のTさんは、通常は/ usr/binに/

nyancat〜#1はuuidgen 488bc393-a4f5-4a83-8df8-8c15e737dcc5

で見つかりましたあなたのキーとして

+0

ローキーデザインにタイムスタンプを追加しました。そのような場合でも、データが非常に迅速に生成されるため、重複している可能性があります。 – Shengjie

+0

乱数またはGUIDを追加できますか?ユニークさの問題を解決するだろうか? – Suman

+1

タイムスタンプは信頼できる一意のIDではありません。バウンダリーの[Flakeプロジェクトの書き方](http://boundary.com/blog/2012/01/12/flake-a-decentralized-k-ordered-unique-id-html)で、分散型UUID生成に関する優れたアプローチを見つけることができます。ジェネレータイン・エルラン/)(Twitterの[Snowflake](https://github.com/twitter/snowflake)も参照)。それは、一意性を保証しながら、残りの時間順の優れた特性を有する。 – mrflip

関連する問題