2017-09-16 11 views
0

私はdocsを読んでおり、クラウドスパナを使ってユニークキーを生成する方法を理解することはできません。 SQLではAUTOINCREMENTがありますが、クラウドスパナのアンチパターンです。 docs UserId apearのように:001930、001519、011289、010483、000241しかし、これらのIDをどのように生成するかは言いませんでした。クラウドスパナキー

答えて

0

クライアント側で独自のキー値を生成する必要があります。 AUTOINCREMENT、SEQUENCE、またはCloud Spannerのサーバーサイドで利用可能なその他の鍵生成オプションはありません。たとえば、UUIDの(ハッシュの)ハッシュでこのクライアント側を行うことができます。

+0

UUIDv5を使用すると、 "a0e6a3d6-aab2-49fc-a214-f26a1e3985e4"のような一意のIDが生成されます。この文字列はかなり大きな文字列として格納でき、その行の一意のIDとして機能します。クラウドスパナは、上記のような文字列を最初のタイムスタンプとして使用し、ホットスポットを軽減するプライマリキーを使用することができます。または、UUIDv5をINTにハッシュする必要があります(UUIDv5は英数字を先頭に持つことができるため)。 – Kerrop

+0

スペースを節約するために文字列ではなくBYTES(16)列のUUIDを使用していますが、ランダムに生成されたUUIDのハッシュをプライマリキーとして使用することを選択しました(http:// cloudspanner)。 blogspot.de/2017/09/google-cloud-spanner-with-jpa-and.html –

+0

UUID(本当にランダムな場合はv4)を使用して、 "ddb52691-20a6-4fea-b1b6-bc6840fa1485"をプライマリとして使用できます(英数字でも問題ありませんが)スペースを節約する理由からUUIDをハッシュすることをお勧めしますか( "ddb52691-20a6-4fea-b1b6-bc6840fa1484" - > "79f836782bcbb8ef159b1eef8ad7da7d"?主キーが2つのキーから構成されている理由は何ですか? – Kerrop