OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

UUIDデータ型のサポート(Vertica9.0新機能)

公開日:
更新日:
基本操作
新バージョン/機能
#データ型

はじめに

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 TABLE

UUIDを含むデータをロードします。

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で確認しています。