UUID (Windows では GUID)とは、以下の形式の ID です
092a83d4-f578-4074-ae54-1c7e64953dbd |
UUID は、数学的に衝突の無いユニーク ID を生成できるので、Windows のオブジェクト名で採用されています
従来からシステムで良くやる手は、採番マスターを作ってシステム内で ID がユニーク値になる事を担保していましたが、UUID のを使えば非同期に任意のタイミングで ID を生成しても、数学的にシステム内でのユニーク値が担保されるので、ID 生成が圧倒的に簡素化出来るようになります
難点は人が ID を覚えるのが困難な点ですが、「表に見える名前」を別に付けておけば何とかなります
(Windows もその実装)
UUID は、.NET フレームワークで生成がサポートされているので、PowerShell で簡単に生成できます
[guid]::NewGuid() |
お仕事案件で UUID を手動で大量作成する必要があったので、ワンライナーの PowerShell スクリプト作りました
$UUID = @() ;for($i = 0;$i -lt 1000; $i++){ $UUID += ([guid]::NewGuid()).Guid } ; $UUID | Set-Clipboard |
コマンドを実行すると、クリップボードに UUID が 1,000個セットされるので、Excel やテキストエディタにペーストしてご利用ください
このスクリプトは、1,000個の UUID を生成しますが、生成数は任意数に変更出来ます
矢印の所にある数値が生成数なので、ここの値を変更すれば任意の数の UUID が生成できますが、10,000
とか生成すると結構待たされるので 1,000 辺りが現実的かなと思います
(格納領域を動的拡張しているので、ある一定数を超えると一気に遅くなります)
もっと多くの UUID を一度に生成したいのであれば、以下のように string 配列を事前に作っておけば高速化出来ますが、それでも 10,000 辺りが現実的かなと思います
$Num = 10000; $UUID = New-Object string[] $Num ; for($i = 0;$i -lt $Num; $i++){ $UUID += ([guid]::NewGuid()).Guid } ; $UUID | Set-Clipboard |
RFC 4122 - A Universally Unique IDentifier (UUID) URN Namespace
https://datatracker.ietf.org/doc/html/rfc4122
Copyright © MURA All rights reserved.