招商银行成都温江区2026届校招金融科技岗实时计算Flink应用题_第1页
招商银行成都温江区2026届校招金融科技岗实时计算Flink应用题_第2页
招商银行成都温江区2026届校招金融科技岗实时计算Flink应用题_第3页
招商银行成都温江区2026届校招金融科技岗实时计算Flink应用题_第4页
招商银行成都温江区2026届校招金融科技岗实时计算Flink应用题_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

招商银行成都温江区2026届校招金融科技岗实时计算(Flink)应用题第一题(3分)题目:招商银行成都温江区分行计划利用Flink实时计算平台,对客户交易数据进行实时风险监控。假设某笔交易数据包含字段:`transaction_id`(交易ID)、`user_id`(用户ID)、`amount`(交易金额)、`timestamp`(交易时间戳)、`transaction_type`(交易类型,如“转账”、“消费”等)。请设计一个FlinkSQL语句,用于实时统计每分钟内“转账”交易类型的总金额,并按用户ID分组输出结果。要求:1.结果需包含`user_id`、`timestamp`(分钟级别,格式为`YYYY-MM-DDHH:mm`)、`total_amount`(总金额)三列。2.`timestamp`需使用Flink的内置函数进行分钟级聚合。第二题(4分)题目:某金融机构在成都温江区部署了Flink实时计算集群,需对用户登录行为进行实时分析。假设输入数据包含字段:`user_id`(用户ID)、`action_type`(行为类型,如“登录”、“查询”等)、`timestamp`(行为时间戳)。现需统计每分钟内活跃用户数(即不同`user_id`的数量),并按行为类型分类输出。要求:1.结果需包含`action_type`、`timestamp`(分钟级别)、`active_user_count`(活跃用户数)三列。2.使用Flink的窗口函数实现分钟级聚合,并按`action_type`分组。第三题(5分)题目:招商银行成都温江区某业务场景需实时监控ATM机交易异常情况。假设输入数据包含字段:`atm_id`(ATM机编号)、`transaction_id`(交易ID)、`timestamp`(交易时间戳,精确到秒)、`status`(交易状态,如“成功”、“失败”等)。现需检测是否存在连续3秒内同一ATM机发生2次以上“失败”交易的情况,并输出违规记录。要求:1.结果需包含`atm_id`、`transaction_id`(任意一个失败交易的ID)、`timestamp`(最早失败时间)、`status`(失败状态)四列。2.使用Flink的流处理逻辑实现连续时间窗口的检测。第四题(6分)题目:招商银行成都温江区信用卡中心需实时计算用户的“异常交易”风险评分。假设输入数据包含字段:`user_id`(用户ID)、`transaction_id`(交易ID)、`amount`(交易金额)、`timestamp`(交易时间戳)、`location`(交易地点)。现需根据以下规则计算实时风险评分:1.若用户在1分钟内同一地点发生3笔以上交易,且总金额超过5000元,则判定为高风险。2.若用户在5分钟内不同地点发生交易,且金额大于1000元,则判定为中等风险。要求:1.结果需包含`user_id`、`risk_level`(风险等级,如“高”、“中”、“低”)两列。2.使用Flink的窗口函数和聚合逻辑实现风险评分。第五题(5分)题目:招商银行成都温江区某场景需实时处理用户行为数据,并统计“连续活跃时长”。假设输入数据包含字段:`user_id`(用户ID)、`event_type`(事件类型,如“点击”、“浏览”等)、`timestamp`(事件时间戳,精确到秒)。现需统计每个用户在任意连续10秒内的“点击”事件数量,并输出结果。要求:1.结果需包含`user_id`、`click_count`(连续10秒内点击次数)、`start_timestamp`(最早点击时间)三列。2.使用Flink的会话窗口或滑动窗口实现连续时间段的统计。第六题(4分)题目:招商银行成都温江区某业务场景需实时统计用户的“交易频率”。假设输入数据包含字段:`user_id`(用户ID)、`transaction_id`(交易ID)、`timestamp`(交易时间戳,精确到分钟)。现需统计每个用户每分钟的交易次数,并按交易类型(如“转账”、“消费”)分类输出。要求:1.结果需包含`user_id`、`transaction_type`、`timestamp`(分钟级别)、`transaction_count`(交易次数)四列。2.使用Flink的窗口函数和分组聚合实现统计。第七题(6分)题目:招商银行成都温江区某场景需实时检测用户的“疑似套现”行为。假设输入数据包含字段:`user_id`(用户ID)、`transaction_id`(交易ID)、`amount`(交易金额)、`timestamp`(交易时间戳)、`source_account`(资金来源账户)、`target_account`(资金去向账户)。现需检测是否存在以下套现行为:1.同一用户在10分钟内,从同一来源账户向同一目标账户发生多笔交易,且总金额超过10万元。要求:1.结果需包含`user_id`、`source_account`、`target_account`、`total_amount`(总金额)、`timestamp`(最早交易时间)五列。2.使用Flink的窗口函数和聚合逻辑实现检测。第八题(5分)题目:招商银行成都温江区某业务场景需实时统计用户的“会话时长”。假设输入数据包含字段:`user_id`(用户ID)、`event_type`(事件类型,如“登录”、“登出”等)、`timestamp`(事件时间戳,精确到秒)。现需统计每个用户登录后的会话时长(以“登录”和“登出”事件判断),并按用户分组输出。要求:1.结果需包含`user_id`、`session_start`(登录时间)、`session_end`(登出时间)、`duration`(会话时长,单位:秒)四列。2.使用Flink的会话窗口或联合数据源实现会话时长统计。第九题(4分)题目:招商银行成都温江区某场景需实时统计用户的“交易热点”。假设输入数据包含字段:`user_id`(用户ID)、`transaction_id`(交易ID)、`amount`(交易金额)、`timestamp`(交易时间戳)、`category`(交易类别,如“餐饮”、“购物”等)。现需统计每分钟内各类别的总交易金额,并按类别排序输出。要求:1.结果需包含`category`、`timestamp`(分钟级别)、`total_amount`(总金额)三列。2.使用Flink的窗口函数和聚合逻辑实现统计。第十题(3分)题目:招商银行成都温江区某业务场景需实时统计用户的“交易成功率”。假设输入数据包含字段:`user_id`(用户ID)、`transaction_id`(交易ID)、`status`(交易状态,如“成功”、“失败”)、`timestamp`(交易时间戳)。现需统计每个用户每分钟的交易成功率(成功率=成功交易数/总交易数)。要求:1.结果需包含`user_id`、`timestamp`(分钟级别)、`success_rate`(成功率)三列。2.使用Flink的窗口函数和聚合逻辑实现计算。答案与解析第一题答案与解析FlinkSQL语句:sqlSELECTuser_id,DATE_FORMAT(timestamp,'yyyy-MM-ddHH:mm')AStimestamp,SUM(amount)AStotal_amountFROMinput_tableWHEREtransaction_type='转账'GROUPBYuser_id,window(timestamp,TUMBLE(1,MINUTE));解析:1.`DATE_FORMAT(timestamp,'yyyy-MM-ddHH:mm')`将时间戳转换为分钟级别格式。2.`SUM(amount)`统计每分钟内“转账”交易的总金额。3.`window(timestamp,TUMBLE(1,MINUTE))`定义了1分钟的滚动窗口。第二题答案与解析FlinkSQL语句:sqlSELECTaction_type,DATE_FORMAT(timestamp,'yyyy-MM-ddHH:mm')AStimestamp,COUNT(DISTINCTuser_id)ASactive_user_countFROMinput_tableGROUPBYaction_type,window(timestamp,TUMBLE(1,MINUTE));解析:1.`COUNT(DISTINCTuser_id)`统计每分钟内不同`user_id`的数量。2.`DATE_FORMAT(timestamp,'yyyy-MM-ddHH:mm')`转换为分钟级别格式。3.`window(timestamp,TUMBLE(1,MINUTE))`定义了1分钟的滚动窗口。第三题答案与解析FlinkSQL语句:sqlSELECTatm_id,transaction_id,MIN(timestamp)AStimestamp,'失败'ASstatusFROM(SELECTatm_id,transaction_id,timestamp,status,COUNT()OVER(PARTITIONBYatm_id,window(timestamp,HOP(3,1,MINUTE)))ASfailure_countFROMinput_tableWHEREstatus='失败')ASsubqueryWHEREfailure_count>=2GROUPBYatm_id,transaction_id,timestamp,status;解析:1.`COUNT()OVER(...)`计算每个ATM机在3分钟内的“失败”交易数量。2.`HOP(3,1,MINUTE)`定义了3分钟宽、1分钟滑动的窗口。3.外层查询过滤出连续3秒内至少2次“失败”的交易。第四题答案与解析FlinkSQL语句:sqlSELECTuser_id,CASEWHENtotal_amount>5000ANDcount_amount>=3THEN'高'WHENtotal_amount>1000ANDdistinct_location>=2THEN'中'ELSE'低'ENDASrisk_levelFROM(SELECTuser_id,SUM(amount)AStotal_amount,COUNT()AScount_amount,COUNT(DISTINCTlocation)ASdistinct_location,window(timestamp,TUMBLE(1,MINUTE))FROMinput_tableGROUPBYuser_id,window(timestamp,TUMBLE(1,MINUTE)))ASsubquery;解析:1.内层查询统计每分钟内用户的交易总金额和交易次数。2.`CASE`语句根据规则判定风险等级。3.`window(timestamp,TUMBLE(1,MINUTE))`定义了1分钟的滚动窗口。第五题答案与解析FlinkSQL语句:sqlSELECTuser_id,COUNT()ASclick_count,MIN(timestamp)ASstart_timestampFROM(SELECTuser_id,event_type,timestamp,COUNT()OVER(PARTITIONBYuser_id,window(timestamp,SESSION(10)))ASclick_countFROMinput_tableWHEREevent_type='点击')ASsubqueryGROUPBYuser_id,start_timestamp;解析:1.`window(timestamp,SESSION(10))`定义了10秒的会话窗口。2.`COUNT()OVER(...)`计算每个会话内的“点击”事件数量。3.外层查询按用户分组并输出结果。第六题答案与解析FlinkSQL语句:sqlSELECTuser_id,transaction_type,DATE_FORMAT(timestamp,'yyyy-MM-ddHH:mm')AStimestamp,COUNT()AStransaction_countFROMinput_tableGROUPBYuser_id,transaction_type,window(timestamp,TUMBLE(1,MINUTE));解析:1.`DATE_FORMAT(timestamp,'yyyy-MM-ddHH:mm')`转换为分钟级别格式。2.`COUNT()`统计每分钟内用户的交易次数。3.`window(timestamp,TUMBLE(1,MINUTE))`定义了1分钟的滚动窗口。第七题答案与解析FlinkSQL语句:sqlSELECTuser_id,source_account,target_account,SUM(amount)AStotal_amount,MIN(timestamp)AStimestampFROM(SELECTuser_id,source_account,target_account,amount,timestamp,COUNT()OVER(PARTITIONBYuser_id,source_account,target_account,window(timestamp,HOP(10,1,MINUTE)))AStransaction_count,SUM(amount)OVER(PARTITIONBYuser_id,source_account,target_account,window(timestamp,HOP(10,1,MINUTE)))AStotal_amountFROMinput_table)ASsubqueryWHEREtransaction_count>=2ANDtotal_amount>100000GROUPBYuser_id,source_account,target_account,timestamp;解析:1.`window(timestamp,HOP(10,1,MINUTE))`定义了10分钟宽、1分钟滑动的窗口。2.`COUNT()`和`SUM(amount)`统计窗口内的交易次数和总金额。3.外层查询过滤出违规记录。第八题答案与解析FlinkSQL语句:sqlSELECTuser_id,MIN(timestamp)ASsession_start,MAX(timestamp)ASsession_end,MAX(timestamp)-MIN(timestamp)ASdurationFROM(SELECTuser_id,timestamp,event_type,LAG(event_type,1,'登出')OVER(PARTITIONBYuser_idORDERBYtimestamp)ASprev_event_typeFROMinput_table)ASsubqueryWHERE(event_type='登录'ORprev_event_type='登出')GROUPBYuser_id;解析:1.`LAG(event_type,1,'登出')`获取前一条事件类型。2.过滤出“登录”或前一条是“登出”的事件。3.计算会话时长。第九题答案与解析Flink

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论