現在、いくつかのデータベース システム (NoSql) をテストしていますが、今は Cassandra で何かをテストしています。たとえば、MySQL のようにユーザー ID を自動インクリメントするオプションはありません。ここで質問です。完全なクラスター全体で UUID を生成するにはどうすればよいですか? Facebook も過去に Cassandra を使用しており、ユーザー ID も生成しています ( https://developers.facebook.com/tools/explorer/?method=GET&path=me )。彼らはどうやってこれを作ったのですか?
2 に答える
3
UUID タイプのいずれか (UUIDType または TimeUUIDType) を使用する必要があります。ID を時間順に並べたい場合は、TimeUUIDType を使用します。古いものからではなく、最新のものを最初に取得する場合は、ReversedType でラップします。
于 2013-04-01T16:28:55.113 に答える
1
一意のIDは、コンピューターのmac(またはホスト名を使用できます)とそのマシンの一意のID(サーバーの再起動後)の組み合わせです。cassandra の PlayOrm は、system.currenttimemillions を使用して短い ID を実際に生成しますが、必要に応じて一意にするための追加が行われます。TimeUUID タイプは mac + time です (さらに、マシン内で一意にするために time に追加されます)。
ディーン
于 2013-04-03T12:20:49.333 に答える