纯前端工具:用可视化表单维护 CEP 相关配置(虚拟事件、模式匹配、归因策略),并在本地生成多种运行时的 MVP 骨架代码(ClickHouse UDF、StarRocks UDF、Hive UDF、Flink CEP、Siddhi)。src/codegen/patterns/* 与 src/codegen/attribution/* 分别实现模式匹配与归因策略的生成逻辑;各引擎入口文件负责拼装「虚拟事件 + 模式 + 归因」或按「代码生成」页所选范围仅输出其中一段。
- 输入:
Array<Record<string, unknown>>—— 每条为任意 JSON 对象;「虚拟事件」含全局唯一的event_key,其下可有多规则组(组内三段式 AND、组间 OR),命中后得到params.{abstract_param_key}。 - 输出:
Record<string, number>—— 归因 label 到权重的映射(在生成代码中以注释与占位逻辑体现)。
生成物定位为 可粘贴修改的起点,不保证与各引擎方言完全等价;复杂 CE 语义需在生成文件中按环境补全(代码中已用 TODO 标出)。
- React 19、Vite 6、TypeScript、Tailwind CSS v4(
@tailwindcss/vite) react-router-dom路由;@monaco-editor/react只读预览;lucide-react图标
布局与编译方式参考同工作区的 chatbot 前端(顶栏分段导航 + h-screen 主壳)。
npm install
npm run dev
npm run build
npm run lint项目配置保存在浏览器 localStorage(键名 effect-cep:project:v1)。在顶栏右侧 项目配置(齿轮)中可 导出 / 导入 JSON 备份或协作。若当前项目中 没有任何虚拟事件,下次加载时会自动合并一组 电商演示 event_key(PAGE_VIEW、PRODUCT_VIEW、ADD_TO_CART、BEGIN_CHECKOUT、ORDER_PAID、ORDER_REFUNDED),便于本地调模式与归因;已有虚拟事件时不会覆盖。
- 虚拟事件:
event_key(全局唯一)、描述;多规则组在弹窗中配置(每组:三段式 AND + 虚拟参数;组间 OR);列表页仅概括展示。 - 模式匹配:Within(毫秒)、步骤序列、每步
event_key、谓词(可写row/params.)、发生次数区间,以及多组输出规则*(选择步骤、条件:未达到最少 / 超过最多 / 次数在范围内;多条result_key与 value,可为0/1或含{stepN.field}的表达式)。 - 归因策略:选择待归因虚拟事件与可归因事件库(与模式解耦);点击生成排列后对库内事件做全排列(库至多 6 个以免超过 720 条),对每种排列配置
label→weight映射,并可删除不合理排列;旧版「关联模式 + 单组条目」导入后变为单条空序排列。
配置变更会自动写回本地存储;代码生成入口在「模式匹配」「归因策略」详情区标题行右上角(进入后按模块锁定生成范围)。基础校验结果在「代码生成」页顶部展示。
黄金样例与期望输出见 fixtures/starrocks-pattern-e2e/。本地 Docker 与注册步骤见 docker/starrocks/README.md。
npm installnpm run starrocks:e2e:package— 根据 fixture 生成CepPatternAgg.java并mvn package打出带依赖 jar。- 将
starrocks-udf-e2e/target/cep-pattern-udaf-1.0-SNAPSHOT-jar-with-dependencies.jar复制到docker/starrocks/host-jar/。 cd docker/starrocks && docker compose up -d,按docker/starrocks/README.md顺序执行init/*.sql。- 将
04_verify.sql的pattern_out与fixtures/starrocks-pattern-e2e/expected.json对照。