summaryrefslogtreecommitdiff
path: root/README.md
blob: 7c44094433944260cdefd66901e4fadd8b30e541 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# log-stream-completion-schema

基于Nacos的动态日志预处理程序,接收原始日志根据对应Schema定义进行数据清洗,并将结果回写Kafka。  
当Nacos上Schame变更后可动态获取到最新版本的信息,无需重启任务。


## 函数功能列表
* current_timestamp
> 获取当前时间戳,若追加字段已有时间戳,不予以覆盖。
* snowflake_id
> 雪花ID函数,返回一个一定条件内不重复的 long 类型数值。  
> https://git.mesalab.cn/bigdata/algorithm/snowflake
* geo_ip_detail
> IP定位库,获取对应IP的详细地理位置信息,城市,州/省,国家
* geo_asn
> ASN定位库,获取对应IP的ASN信息
* geo_ip_country
> IP定位库,获取对应IP的地理位置信息,仅包含 国家
* set_value
> 给予字段固定值。
* get_value
> 获取字段值并追加到新的字段。
* if
> IF函数实现,解析日志构建三目运算;包含判断是否为数字若为数字则转换为long类型返回结果。  
> 若参数携带 $. 标识,则使用的是数据内的字段值;若不携带则为参数指定的值。
* sub_domain
> 获取顶级域名
* radius_match
> 根据IP获取对应的Raidus用户信息。  
> 实际数据存储在HBase tsg_galaxy:relation_framedip_account表中,依赖RELATIONSHIP-RADIUS-ACCOUNT程序;使用时加载到内存中加速查询。
* gtpc_match
> 根据日志common_tunnels内的信息,获取GTPC TEID对应的用户信息(phonenumber、imsi、imei),样例数据:
```  
{"common_tunnels":"[{\"tunnels_schema_type\":\"GTP\",\"gtp_endpoint_a2b_teid\":247749709,\"gtp_endpoint_b2a_teid\":665547833,\"gtp_sgw_ip\":\"192.56.5.2\",\"gtp_pgw_ip\":\"192.56.10.20\",\"gtp_sgw_port\":2152,\"gtp_pgw_port\":2152}]"}  
```
> 实际数据存储在HBase tsg_galaxy:relation_user_teid中,依赖RELATIONSHIP-RADIUS-USER程序;使用时加载到内存中加速查询。
* ~~app_match~~
> ~~根据APP_ID获取对应的APP名称~~ 22.02版本后弃用
* decode_of_base64
> 根据编码解码base64,若编码字段为空则根据默认编码解析(UTF-8)
* flattenSpec
> 根据表达式解析json,使用jsonPath工具类  
> https://github.com/json-path/JsonPath