You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: inlong-sdk/transform-sdk/src/main/java/org/apache/inlong/sdk/transform/process/function/string/ParseUrlFunction.java
+33-7Lines changed: 33 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -57,31 +57,40 @@ public class ParseUrlFunction implements ValueParser {
Copy file name to clipboardExpand all lines: inlong-sdk/transform-sdk/src/main/java/org/apache/inlong/sdk/transform/process/function/string/UrlDecodeFunction.java
+18-2Lines changed: 18 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -30,6 +30,7 @@
30
30
importjava.net.URLDecoder;
31
31
importjava.nio.charset.StandardCharsets;
32
32
importjava.util.List;
33
+
importjava.util.Map;
33
34
34
35
/**
35
36
* UrlDecodeFunction -> url_decode(str[, charset])
@@ -53,39 +54,54 @@ public class UrlDecodeFunction implements ValueParser {
Copy file name to clipboardExpand all lines: inlong-sdk/transform-sdk/src/test/java/org/apache/inlong/sdk/transform/process/processor/TestCsv2KvProcessor.java
+59Lines changed: 59 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -139,4 +139,63 @@ public void testCsv2CsvSplit() throws Exception {
StringtransformSql = "select replace(substr(ftime,1,10),'-','') as imp_hour,"
156
+
+ "url_decode(event_value,'GBK') as decode_event_value,"
157
+
+ "url_decode(hardware_os,'GBK') as decode_hardvalue_os,"
158
+
+ "lower($ctx.decode_hardvalue_os) as lower_hardvalue_os,"
159
+
+ "ftime as ftime,event_code as event_code,"
160
+
+ "event_time as event_time,"
161
+
+ "parse_url($ctx.decode_event_value,'QUERY','A100') as log_id,"
162
+
+ "parse_url($ctx.decode_event_value,'QUERY','A153') as qimei36,"
163
+
+ "case when $ctx.lower_hardvalue_os like '%android%' then 'android' when $ctx.lower_hardvalue_os like '%ipad%' then 'ipad' when $ctx.lower_hardvalue_os like '%iphone%' then 'iphone' when $ctx.lower_hardvalue_os like '%harmony%' then 'harmony' when $ctx.lower_hardvalue_os like '%windows%' then 'windows' when $ctx.lower_hardvalue_os like '%mac%' then 'mac' when $ctx.lower_hardvalue_os like '%linux%' then 'linux' else 'unknown' end as platform,"
164
+
+ "$ctx.decode_hardvalue_os as hardware_os,"
165
+
+ "trim(case when hardware_os LIKE '%Android%' then regexp_extract($ctx.decode_hardvalue_os, 'Android(.+),level', 1) when hardware_os LIKE '%iPhone%' then regexp_extract($ctx.decode_hardvalue_os, 'OS(.+)\\\\(', 1) when hardware_os LIKE '%Harmony%' then regexp_extract($ctx.decode_hardvalue_os, 'Harmony\\\\s+[^\\\\s]+\\\\s+([^\\\\s]+)\\\\(', 1) else 'unknown' end) as os_version,"
166
+
+ "parse_url($ctx.decode_event_value,'QUERY','A9') as brand,"
167
+
+ "parse_url($ctx.decode_event_value,'QUERY','A10') as model,"
168
+
+ "country as country,"
169
+
+ "province as province,"
170
+
+ "parse_url($ctx.decode_event_value,'QUERY','A160') as city,"
171
+
+ "parse_url($ctx.decode_event_value,'QUERY','A19') as network_type,"
172
+
+ "parse_url($ctx.decode_event_value,'QUERY','dt_qq') as dt_qq,"
173
+
+ "url_decode(app_version,'GBK') as app_version,"
174
+
+ "parse_url($ctx.decode_event_value,'QUERY','A67') as boundle_id,"
175
+
+ "parse_url($ctx.decode_event_value,'QUERY','dt_usid') as dt_usid,"
176
+
+ "parse_url($ctx.decode_event_value,'QUERY','dt_pgid') as dt_pgid,"
177
+
+ "parse_url($ctx.decode_event_value,'QUERY','dt_ref_pgid') as dt_ref_pgid,"
178
+
+ "parse_url($ctx.decode_event_value,'QUERY','dt_eid') as dt_eid,"
179
+
+ "parse_url($ctx.decode_event_value,'QUERY','dt_element_lvtm') as dt_element_lvtm,"
180
+
+ "parse_url($ctx.decode_event_value,'QUERY','dt_lvtm') as dt_lvtm,"
181
+
+ "product_id as product_id,"
182
+
+ "json_remove(str_to_json($ctx.decode_event_value,'&','='),'udf_kv') as biz_pub_params,"
183
+
+ "parse_url($ctx.decode_event_value,'QUERY','udf_kv') as udf_kv,"
184
+
+ "case when sdk_id='js' then 1 when sdk_id='weapp' then 2 else 0 end as sdk_type,"
185
+
+ "split_index(app_version,'\\.',0)*1000+split_index(app_version,'\\.',1)*100+split_index(split_index(app_version,'\\.',2),'\\(',0) as app_version_num "
186
+
+ "from source where parse_url(url_decode(event_value,'GBK'),'QUERY','dt_pgid') like 'pg_sgrp_%'";
0 commit comments