SQL 方言通

首页 / 字符串

UUID 生成随机 ID

UUID 生成 36 位的随机唯一标识字符串。MaxCompute、StarRocks、Doris、Spark 和 Flink 的文档都有 UUID()。Hive 4.2.1 源码中注册了 uuid(),但官方 Wiki 没有收录。

各引擎写法 · 迁移注意事项 · 示例

各引擎写法

引擎支持写法说明依据
MaxCompute支持UUID()返回随机的全局 ID 字符串,重复概率很小。官方文档
Hologres不支持—Hologres 字符串函数文档中没有找到 UUID,需要在实例中确认。待核实
StarRocks支持uuid()返回 36 位 VARCHAR,每次调用结果不同。另有 uuid_numeric 返回数值型。官方文档
Doris支持UUID()返回 RFC 4122 格式的 36 位 VARCHAR。官方文档
Hive支持uuid()官方 Wiki 的函数列表没有 uuid,这里的依据是 Hive 4.2.1 的 FunctionRegistry 源码。官方文档
Spark SQL支持uuid()Spark 2.3.0 起提供,返回 36 位字符串,属于非确定性函数。官方文档
Flink SQL支持UUID()按 RFC 4122 第 4 版生成伪随机 UUID。官方文档

迁移注意事项

示例

给每条导入记录生成批次内 ID

MaxCompute
SELECT UUID() AS row_id, * FROM ods_import;
StarRocks
SELECT uuid() AS row_id, * FROM ods_import;
Doris
SELECT UUID() AS row_id, * FROM ods_import;
Hive
SELECT uuid() AS row_id, * FROM ods_import;
Spark SQL
SELECT uuid() AS row_id, * FROM ods_import;
Flink SQL
SELECT UUID() AS row_id, * FROM ods_import;

同类函数

字符串:全部引擎写法对照

核对日期: · 提交勘误