package com.sensorsdata.platform.dataloader.worker.processor;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import java.io.IOException;
import java.util.Map;
/**
* @author wuyongkang@sensorsdata.cn
* @version 1.0.0
* @since 2022/03/09 17:49
*/
@Slf4j
public class EventDeletePreprocessorDemo implements EventDeletePreprocessor{
private ObjectMapper objectMapper = new ObjectMapper();
/**
* 样例数据
* {
* "bucket_id": 0,
* "day_id": 18830,
* "distinct_id": "test_distinct_id",
* "dtk": null,
* "event": "TestEventName", // 事件名
* "mutable_event_key_property": null,
* "offset": 612,
* "project_id": 1,
* "properties": { // 事件的所有属性
* "$ip": "10.90.28.102",
* "$is_login_id": false,
* "$lib": "Java",
* "$lib_version": "3.1.10",
* "bool1": true,
* "list2": [
* "element1"
* ],
* "num3": 1234,
* "str4": "0512"
* },
* "real_timestamp": 1629686984720,
* "receive_timestamp": 1629686984720,
* "type": "track",
* "update_mutable_event": false,
* "user_id": 74031585797665980,
* "ver": 0
* }
**/
@Override
public boolean process(String eventData) {
try {
// 1. 将 string 类型的 JSON 数据 EventData 解析成 Map<String, Object>
Map<String, Object> eventDataMap = objectMapper.readValue(eventData, Map.class);
// 2. 获取到事件名
Object eventName = eventDataMap.get("event");
// 3. 获取到事件的所有属性
Map<String, Object> properties = (Map<String, Object>) eventDataMap.get("properties");
// 4. 获取事件中属性 "$is_login_id" 的值
Object isLoginId = properties.get("$is_login_id");
if ((eventName != null && "Test".equals(eventDataMap.get("event"))) ||
(isLoginId != null && false == (Boolean) isLoginId)) {
return true;
}
} catch (IOException e) {
log.error("preprocessor error.");
throw new RuntimeException(e);
}
return false;
}
}
博士僧小星
- 粉丝: 2436
- 资源: 5997
最新资源
- 基于stm32F1的气体监测.zip
- stm32f407 硬件SPI TFT 1.44 st7735.rar
- STM32F407核心板资料(型号FK407M1).rar
- ADI的ADC采集芯片AD7190驱动,主控IC STM32F407,通过外使SPI进行读写
- java-jsp毕业生论文管理系统计算机毕业设计程序.zip
- java-jsp毕业生信息管理系统计算机毕业设计程序.zip
- 基于java的毕业设计(源代码+论文)3套(14)
- 500kW三相光伏并网逆变器的仿真模型: 1. DC DC采用MPPT最大功率点跟踪控制; 2. DC AC采用功率外环电流内环的双闭环控制,有功功率和无功功率解耦控制+前馈补偿,SVPWM空间电压矢
- 基于java的毕业设计(源代码+论文)3套(12)
- 1_6020222704吕锡振-实验五代码.ipynb
- 台达AS228T实际案例伺服步进程序 六个步进,昆仑通态触摸屏, FB功能块实用,多次调用 注释清洗,逻辑实用
- readslc代码需要的数据文件
- 基于can总线的dsp28335升级方案 包括bootloader源码,app源码,上位机 上位机用c#,vs2013 升级过程见视频 示例工程为62kb
- jh_flutter_demo.apk
- 半桥LLC仿真模型,基于MATLAB Simulink建模仿真 可以进行LLC暂态、稳态仿真,仿真zvs特性、软启动等 仿真模型使用MATLAB 2017b搭建
- 西门子1200PLC博图自动称重配料系统程序例程,组态画面采用KTP1200触摸屏 具体为1200和变频器Modbus RTU 通 讯,托利多电子称modbus RTU通讯,带 PID 温度控制程序
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈