Cassandra の用語では、何TimeUUID
をいつ使用しますか?
3 に答える
TimeUUID は、ランダムなグローバル一意識別子です。16 バイト。
16 進数表示の例: a4a70900-24e1-11df-8924-001ff3591711
http://en.wikipedia.org/wiki/Universally_Unique_Identifierを参照してください
リレーショナルデータベースの観点から、または値のリストをいくつかのキーの下に保存する必要がある場合に、主キーとして機能する場合があります。
たとえば、cassandra に基づくこのオープン ソースの twitter の例を確認してください。
http://github.com/ercflo/twissandra
User = {
'a4a70900-24e1-11df-8924-001ff3591711': {
'id': 'a4a70900-24e1-11df-8924-001ff3591711',
'username': 'ericflo',
'password': '****',
},
}
Username = {
'ericflo': {
'id': 'a4a70900-24e1-11df-8924-001ff3591711',
},
}
Friends = {
'a4a70900-24e1-11df-8924-001ff3591711': {
# friend id: timestamp of when the friendship was added
'10cf667c-24e2-11df-8924-001ff3591711': '1267413962580791',
'343d5db2-24e2-11df-8924-001ff3591711': '1267413990076949',
'3f22b5f6-24e2-11df-8924-001ff3591711': '1267414008133277',
},
}
ここで、ユーザーには一意のキー a4a70900-24e1-11df-8924-001ff3591711 が割り当てられ、他の場所からユーザーを参照するために使用されます。
TimeUUIDは、抽象クラスAbstractTypeの 6 つの具象実装の 1 つです。
ColumnFamilies の場合、CompareWith という属性を指定できます。(SuperColumns には、同様の CompareSubcolumnsWith 属性があります)。
この属性の有効な値は、抽象クラス AbstractType を実装するクラスです (例: TimeUUID)。CompareWith 属性は、スライス操作のために列をソートする方法を Cassandra に指示します。
Java を使用していて、TimeUUID で cassandra を使用している場合は、cassandra FAQ のこのセクションを読むことをお勧めします。
ColumnFamily 内の一意の「行」を示す