summaryrefslogtreecommitdiff
path: root/docs/grootstream-design-cn.md
diff options
context:
space:
mode:
authordoufenghu <[email protected]>2024-10-09 17:02:50 +0800
committerdoufenghu <[email protected]>2024-10-09 17:02:50 +0800
commit13c046f56014ac7496c1d6ec07029756bb3cc287 (patch)
tree61db609cd2b2db4064feb815f6b4224a773f84aa /docs/grootstream-design-cn.md
parent815e819cbd16e944964ea91875a0943f5565f98c (diff)
[Feature][Doc] Add uuid udfs description
Diffstat (limited to 'docs/grootstream-design-cn.md')
-rw-r--r--docs/grootstream-design-cn.md45
1 files changed, 42 insertions, 3 deletions
diff --git a/docs/grootstream-design-cn.md b/docs/grootstream-design-cn.md
index bde9c9d..16833e2 100644
--- a/docs/grootstream-design-cn.md
+++ b/docs/grootstream-design-cn.md
@@ -1654,10 +1654,10 @@ JSON_EXTRACT(null, 'device_tag', 'data_center', parameters)
- Parameters
- - parent_fields: Array[string] // 指定哪些字段的子字段将进行重命名。如果为空,则仅会对顶级字段进行重命名,不支持对数组结构中的key进行重命名。
- - rename_fields: // 指定的字段进行重命名
+ - parent_fields: Array[string] 指定哪些字段的子字段将进行重命名。如果为空,则仅会对顶级字段进行重命名,不支持对数组结构中的key进行重命名。
+ - rename_fields: 指定的字段进行重命名
- current_field_name : new_field_name
- - rename_expression=`<string>` // 对字段执行AviatorScript表达式,返回值作为重命名后的字段名,优先级低于rename_fields。
+ - rename_expression=`<string>` 对字段执行AviatorScript表达式,返回值作为重命名后的字段名,优先级低于rename_fields。
@@ -1735,9 +1735,48 @@ Parameters:
```
+ #### UUID
+使用UUIDv4标准,生成128位随机UUID。实现方式参考:https://github.com/cowtowncoder/java-uuid-generator
+```yaml
+- function: UUID
+ output_fields: [log_uuid]
+
+ # 3f0f8d7e-d89e-4b0a-9f2e-2eab5c99d062
+```
+
+ #### UUIDv5
+
+是一种基于 **命名空间和名称** 生成的 UUID。与 `UUIDv4` 主要依赖随机数不同,`UUIDv5` 使用 SHA-1 哈希算法将命名空间和名称组合后生成一个确定性的 UUID。这意味着对同一命名空间和相同名称的输入,`UUIDv5` 总是会生成相同的 UUID。
+- Parameters
+ - namespace = <Enum> 枚举值,命名空间是一个 UUID,它定义了名称所属的上下文。可指定如下命名空间:
+ - NAMESPACE_IP: 6ba7b890-9dad-11d1-80b4-00c04fd430c8
+ - NAMESPACE_DOMAIN: 6ba7b891-9dad-11d1-80b4-00c04fd430c8
+ - NAMESPACE_APP: 6ba7b892-9dad-11d1-80b4-00c04fd430c8
+ - NAMESPACE_SUBSCRIBER: 6ba7b893-9dad-11d1-80b4-00c04fd430c8
+
+```yaml
+- function: UUIDv5
+ lookup_fields: [ client_ip, server_ip ] # 基于 client_ip, server_ip的值组成UUIDv5 name 参数值与命名空间结合后,通过哈希生成唯一的 UUID。
+ output_fields: [ip_uuid]
+ parameters:
+ namespace: NAMESPACE_IP
+
+ # 2ed6657d-e927-568b-95e1-2665a8aea6a2
+```
+
+ #### UUIDv7
+
+通过时间戳和随机数生成唯一UUID,适合需要时间排序的场景,比如数据库索引和日志记录。
+
+```yaml
+- function: UUIDv7
+ output_fields: [log_uuid] # 生成基于时间戳和随机数的 UUID
+
+ # 2ed6657d-e927-568b-95e1-2665a8aea6a2
+```
### 聚合函数