はじめに
Vertica9.0より、Universally Unique Identifier (以下、UUID)データ型をサポートしています。
Vertica9.0からは、UUIDデータ型がサポートされ、16バイトで管理することができるようになりました。
これまでと比べ、ストレージ容量の削減はもちろんのこと、パフォーマンス向上にもつながります。
またUUID_GENERATE()関数というUUIDを自動生成する関数も使用できるようになりました。
これによりUUIDの生成をVerticaで簡単に行えるようになっています。
本記事ではUUIDデータ型を使用したテーブルの作成例とUUID_GENERATE()関数の使用例をご案内いたします。
UUIDデータ型を使用したテーブル作成
UUIDデータ型を使用したテーブルを作成します。
通常のテーブル作成と同様CREATE TABLE文にて、列名の後に「UUID」と指定することでUUIDデータ型の列を定義することができます。
dbadmin=> CREATE TABLE public.Customers
dbadmin-> (
dbadmin(> cust_id uuid,
dbadmin(> lname varchar(36),
dbadmin(> fname varchar(24)
dbadmin(> );
CREATE TABLEUUIDを含むデータをロードします。
dbadmin=> COPY Customers FROM STDIN;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> {cede66b7-3d29-4da6-b700-871fc0ac57be}|Kearney|Thomas
>> 34462732ed5649838f3be735b0c32d50|Pham|Duc
>> 9fb0-1de0-1d63-4d09-9415-90e0-b4e9-3b9a|Steinberg|Jeremy
>> \.データがロードされていることを確認します。
dbadmin=> SELECT cust_id, fname, lname FROM Customers;
cust_id | fname | lname
--------------------------------------+--------+-----------
cede66b7-3d29-4da6-b700-871fc0ac57be | Thomas | Kearney
34462732-ed56-4983-8f3b-e735b0c32d50 | Duc | Pham
9fb01de0-1d63-4d09-9415-90e0b4e93b9a | Jeremy | Steinberg
(3 rows)UUID_GENERATE()関数によるUUIDの生成
UUID_GENERATE()関数を使用することで、Vertica内でUUIDを生成することができます。
UUID_GENERATE()関数にて生成したUUIDを含むデータをロードします。
dbadmin=> INSERT INTO Customers SELECT UUID_GENERATE(),'Rostova','Natasha';
OUTPUT
--------
1
(1 row)
dbadmin=> COMMIT;
COMMITロードしたデータを確認します。
dbadmin=> SELECT cust_id, fname, lname FROM Customers;
cust_id | fname | lname
--------------------------------------+---------+-----------
cede66b7-3d29-4da6-b700-871fc0ac57be | Thomas | Kearney
34462732-ed56-4983-8f3b-e735b0c32d50 | Duc | Pham
9fb01de0-1d63-4d09-9415-90e0b4e93b9a | Jeremy | Steinberg
59dcc700-3a1e-406b-b748-dcdff51fa1a1 | Natasha | Rostova ★UUIDが自動生成されている
(4 rows)制限事項
・UUIDデータ型はCHAR型およびVARCHAR型でサポートされている関数をサポートしています。
(例.MIN、MAX、CONCAT等)
・UUIDデータ型はSUMやAVGの算術演算子はサポートしていません。
参考情報
UUID Data Type
https://my.vertica.com/docs/9.0.x/HTML/index.htm#Authoring/SQLReferenceManual/DataTypes/UUID.htm
UUID_GENERATE
https://my.vertica.com/docs/9.0.x/HTML/index.htm#Authoring/SQLReferenceManual/Functions/UUID/UUID_GENERATE.htm
検証バージョンについて
この記事の内容はVertica 9.0で確認しています。