当前位置: 首页 > news >正文

flink 基站与服务器长连接,每次连接和断开都会上报数据,统计过去一小时每个基站断开次数和时长

模拟生成数据

CREATE TABLE ods_station_log (
  base_station_id int,   -- 基站ID
  event_type      int,   -- 事件类型: connect/disconnect
  event_time      TIMESTAMP_LTZ(3), -- 事件时间
  WATERMARK FOR event_time AS event_time - INTERVAL '5' SECOND -- 允许5秒乱序
) WITH (
  'connector' = 'datagen',
  
  -- 基站ID生成规则(BS001 ~ BS100)
  'fields.base_station_id.kind' = 'random',
  'fields.base_station_id.min' = '1',
  'fields.base_station_id.max' = '2',
  
  -- 事件类型随机生成(50%概率为 connect/disconnect)
  'fields.event_type.kind' = 'random',
  'fields.event_type.min' = '0',
  'fields.event_type.max' = '1',
  
  -- 事件时间生成规则(模拟1小时数据,每秒10条)
  'fields.event_time.kind' = 'random',
  'fields.event_time.max-past' = '1000s',
  -- 控制数据生成速率
  'rows-per-second' = '1'
);

需求: 基站与服务器长连接,每次连接和断开都会上报数据,统计过去一小时每个基站断开次数和时长
思路:

CREATE TEMPORARY VIEW disconnect_records2 AS
SELECT
  base_station_id,
  connect_time,
  disconnect_time,
  TIMESTAMPDIFF(SECOND, connect_time, disconnect_time) AS duration
FROM ods_station_log
MATCH_RECOGNIZE (
  PARTITION BY base_station_id
  ORDER BY event_time
  MEASURES
    e_connect.event_time AS connect_time,
    e_disconnect.event_time AS disconnect_time
  ONE ROW PER MATCH
  AFTER MATCH SKIP PAST LAST ROW
  PATTERN (e_connect e_disconnect) 
  DEFINE
    e_connect AS e_connect.event_type = 1,
    e_disconnect AS e_disconnect.event_type = 0
);
http://www.dtcms.com/a/101597.html

相关文章:

  • 如何保证云服务器的可靠性与可用性
  • Playwright页面对象模型POM + 常见断言 + playwright接口断言 + 参数化
  • 深入理解 DNS:互联网的“电话簿”
  • 【DPI】精讲深度数据包检测技术基础
  • Oracle数据库数据编程SQL<3.3 PL/SQL 游标>
  • 关于中文编程的一些思考
  • 使用 Cheerio 和 Node.js 进行网络抓取
  • 数据结构初阶:单链表
  • golang strings包常用方法
  • [MySQL] 库的操作 表的操作
  • Unity光线传播体积(LPV)技术实现详解
  • 基于Java(SSM)+Mysql实现移动大厅业务办理(增删改查)
  • 行业智能体大爆发,分布式智能云有解
  • 视觉风格提示词:Visual Style Prompting with Swapping Self-Attention(风格迁移)
  • Dubbo(24)如何配置Dubbo的监控中心?
  • 深度学习之卷积
  • 【零基础入门unity游戏开发——2D篇】2D物理系统 —— 2DEffector效应器
  • Rust 所有权与引用
  • 要创建一个基于Spring Boot、Thymeleaf、MyBatis Plus和MySQL的简单表格增删改查(CRUD)项目
  • RabbitMQ--延迟队列事务消息分发
  • 全面守护关键基础设施!Fortinet OT 安全平台功能与服务再扩展
  • Level DB --- TableCache
  • 【Elasticsearch入门到落地】10、初始化RestClient
  • springcloud 整合 Redis_Redisson
  • transformers中学习率warmup策略具体如何设置
  • ElementUI元件库——提升Axure原型设计效率与质量
  • 传统神经网络、CNN与RNN
  • R-GCN-Modeling Relational Data with GraphConvolutional Networks(论文笔记)
  • 【第30节】MFC编程:ListCtrl控件和TreeCtrl控件
  • 如何使用腾讯云HAI快速、高质量生成Stable Diffusion图片