◆ 熟练使用flume对各种数据采集和二次开发。能够自定义agent和拦截器满足对特定数据的采集优化。
◆ 熟练掌握Spark分布式运算引擎。理解spark的运行机制和提交流程。熟练使用 SparkCore, SparkSql 做离线分析处理。熟悉Spark的调优。
◆ 熟练使用SparkStreaming进行实时计算分析,熟悉sparkStreamg与kafka,SparkSql的集成。
◆ 熟悉Hive和HQL的使用,窗口函数,动态分区,分桶,严格模式。有一定的Hive调优经验。
◆ 深刻理解MapReduce的运行流程,和数据倾斜的解决方案。
◆ 熟悉Hdfs的读写原理,checkpoint工作原理
◆ 熟悉RDBMS如Mysql和NoSQL如redis,ES,mongoDB等。
◆ 熟练使用Linux操作系统及常用命令,shell编程。
◆ 了解Molap分析kylin,交互式查询presto,impala,olap 分析引擎hbase等
◆ 了解Hbase的工作原理及数据存储结构,RowKey设计原则,有一定的Hbase调优。
◆ 熟悉Java,了解Scala和python.
◆ 熟悉zookeeper的核心工作原理,选举机制和故障转移机制,CAP理论。
◆ 熟悉ElasticSearch,对ELK栈有一定的了解,对ElasticSearch的调优有一定的了解。
◆ 熟悉Flink的DataStream API与DataSet API的使用,Flink on yarn的任务运行流程,了解CheckPoint与SavePoint的容错机制,waterMark的延迟触发机制。
◆ 了解Spring,SpringBoot,SpringMvc,mybatis的框架原理及使用。
项目一--- 机票数据仓库平台
项目描述: 机票数据仓库平台是一个在机票数据之上的数据分析平台,依托于数据分析的结果,建立完善准确的,系统化,信息化,智能化的机票分析平台,确保平台票价最优,航线最优,及采购商打分和准确的财务数据对账等场景。支持公司销售运营分析与决策分析,实时准确的财务系统结算,掌握订单,航线,票价的实况。
技术架构:MYSQL + SQOOP + HDFS + HIVE + SPARKSQL + NIFI + KYLIN +HBASE + AIRFLOW +爬虫
职责描述:
【数据采集模块】
业务数据抽取 将机票业务测在Mysql中的数据,利用sqoop数据迁移到hdfs中,映射成Hive表。利用NIFI 将mongodb ,kafka ,oracle等数据源中的数据同步到hdfs,映射成hive表
用户行为日志 平台买点将数据采集到kafka,数据平台利用sparkStreamg实时将数据摄取到druid 数据库,同时会将所有日志写入ES
爬虫数据 爬虫数据会直接落到服务器,数据部门将爬虫数据迁移到hdfs,然后映射成hive表
【数据预处理模块】
数据过滤清洗,解析数据,集成(将日志中的出发终止地点、时间、航线、包裹,停留时间区间…)将数据输出为orc/parquet格式。
建设热门线路top500知识库,将航线信息进行加工处理,聚合出全局请求最多的500条航线,存入redis知识库,供业务部门更新查询缓存。
定时任务每天拉去全球汇率,更新汇率维表。
【数据仓库模块】:数仓分层处理,建立星型模型,进行多维度分析处理。
ODS:存放原始数据,直接加载原始日志、数据,数据保持原貌不做处理。
DWD:结构和粒度与ods层保持一致,对ODS层数据进行清洗转化,以业务过程作为建模驱动,基于每个具体的业务过程特点,构建最细粒度的明细事实表。可以结合企业的数据使用特点,基于维度建模思想,将明细事实表的某些重要属性字段做适当冗余,也即宽表化处理,构建明细宽表。
DWS:基于指标需求,构建初步汇总事实表,一般是宽表。基于上层的应用和产品的指标需求,构建公共粒度的汇总指标表。以宽表化手段物理化模型,构建命名规范、口径一致的统计指标,为上层提供公共指标。
DIM:建立一致数据分析维表,可以降低数据计算口径不统一的风险,同时可以方便进行交叉探查。以维度作为建模驱动,基于每个维度的业务含义,通过添加维度属性、关联维度等定义计算逻辑,完成属性定义的过程并建立一致的数据分析维表。
ADS(DM):整合汇总成分析某一个主题域的服务数据,面向应用逻辑的数据加工。该层主要存放数据产品个性化的统计指标数据,这一层的数据直接对接数据的消费者,是产品、运营、财务等角色可以直接感知理解的一层。统计结果最终同步到mysql, (hive中kylin 预计算)kylin以供BI或应用系统查询使用。
离线指标:航段主题分析(航段票价分析,航段成交订单数数,用户停留时长),订单主题分析(成交金额分析、财务报表,数据大屏...),采购主题分析(采购成交量,采购定价,采购频率..),转化率和转化路径主题分析(整体转化率,广告触达率,活动漏斗模型)
实时统计:
SparkStreaming通过直连模式对接Kafka,使用Kafka高阶消费者实现自动负载均衡和自动提交Offset,并通过checkPoint、Zookeeper等实现offset的多重维护
Kafka消费者拉取数据,sparkStreaming对数据做清洗、过滤、转换以及业务功能的实现。
将业务结果数据写入Redis中,通过redis来实现去重,和实时累加的效果。
通过BI工具来实时展示。
通过脚本启动定时任务,每日凌晨定期将redis中的数据flush到HDFS+HBASE库中,做历史数据查询。
实时指标:订单成交量,用户订单成交额,成交率,国家、市、区机场/航司订单成交量TopN
技术亮点:
日志数据通过NIFI实现模板化采集,大大减少了数据采集带来的工作量(自研了数据接入模板生成器,实现模板一键生成)
使用kylin对数据预计算时,对聚合组和Hbase rowkey 进行了精细化设计,使得cube 膨胀率减少了500%以上,查询速度也提升了将近0.5S。
SparkStreaming与kafka的集成,保证数据Exactly-once。自己编程来维护偏移量,常见手段为:将kafka参数enable.auto.commit设置为false,获取历史偏移量。做幂等输出的时候,再进行提交。或者在数据库中(mysql)做事务控制,保证原子性和一致性,提交偏移量。
使用redis 做航线池,避免了对GDS系统的重复请求,提升了业务系统的性能及减少了公司的开支。
使用BroadCoast广播字典数据,避免数据的重复读取,避免了Driver与Executor间的频繁连接,大大降低了IO频率。
窗口函数的熟练使用,自定义udf。
项目二--- PKfare机票低价系统
项目描述:该机票低价系统主要是为了释放运营的压力,提供自动化比价、调价的能力。通过业务数据拉取的GDS 票价及爬虫数据价格,历史数仓价格等数据,通过算法计算出全集最低且合理的价格,价格在上线后,系统会使用实时调价程序对价格实时调整。
技术架构:SparkCore,SparkStreaming,SpaekSQL,Hbase,ElasticSearch,MySql,AirFlow,及算法(算法部门)
职责描述:
负责整合业务数据和爬虫数据构建基础数据,进行数据聚合,计算出算法需要的基础指标存入HBASE。
通过线上成交金额与历史数据对比,更新数仓聚合指标所需数据的权重,及聚合算法的权重。
通过SparkStreaming实时计算供应商成交率,更新优惠权重,对优质供应商展现优惠价格。
Airflow调度任务开发,实现调度任务依赖关系管理。
SparkStreaming调用 python 算法模块实现低价计算,结合爬虫数据优化模型。
多源多模块合并,计算优质价格。
技术亮点:
使用Spark程序进行数据清洗时采用Kryo的序列化方式及snappy压缩,提高效率。
离线分析时将清洗过后的数据保存为parquet文件,基于列式存储,降低IO扫描的范围,提升性能。
使用HBase列扩展的特性,实现分钟级别的航线权重,航司权重,航段权重,供应商权重的打分。
使用工作流调度系统airflow,对Job Flow进行调度,使其有序的执行。
项目三---交易对账中心建设项目
项目描述:随着线上渠道(万家APP、京东、美团、饿了么)的业务发展,第三方移动支付(微信、支付宝、润钱包、翼支付、银行扫码支付等)的交易占比持续增长,各省级财务与财务共享在开展交易订单明细及对账业务时,遇到了极大的挑战。 当前每天全国产生百万级的交易流水需要对账稽核,且交易对账业务基本为手工操作模式,需要人工从多个线上渠道、第三方支付机构下载对账单、手工选择账单字段执行过滤核对,步骤繁琐,效率低、易出错。同时,针对差异的追溯与财务调整难度大、周期长,也造成人效下降 (数据统计,13个省级公司与财务共享部每月在人工核对单据业务上合计投入18,152.71个工时)。 综上所述,当前公司迫切需求对账系统,实现订单级别自动对账,差异跟踪处理,提升对账的效率与对账数据准确度,全面提高对工作的人效。
技术架构:Kafka,httpClient,ftp ,SparkCore,SparkSql,SparkStreaming,hive ,ES
责任描述 :
【数据源】
Pos流水中心业务数据库mysql、微信支付平台、京东支付平台、支付宝支付平台、饿了吗账单、银行卡支付 等等
【数据获取模块】
各种数据源类型的数据通过数据采集模块将数据归一化成标准账单数据以后,将数据落地到hive。
【数据预处理模块】
Kakfa集成sparkStreaming,解析日志,对字段进行规整成目标格式,删除不需要的字段、日志。根据重点字段得到大小类ID(策略标识ID),在策略匹配的时候根据大小类ID匹配指定策略。
将清洗后的数据存入ES,以备溯源。
对接合作方策略库,读取策略库全表、策略库更新策略,存入ES。
【数据分析模块】
事件过滤策略:数据库清洗完以后,根据大小类ID(策略ID),去ES策略库查询指定的策略,根据字段进行匹配,匹配成功后将该数据忽略。匹配失败则继续向下执行事件生成策略。
事件生成策略:根据策略ID去查询指定的策略进行字段匹配,匹配成功后根据时间判断是否需要存入Hbase中,满足5分钟10条则存入Hbase,少于10条则存入kafka。
Hbase+phoenix,根据策略指定字段进行聚合,即便是相同事件,根据不同的ip和设备也分为不同的事件聚合ID,当满足24小时内大于2万条就创建一个新的聚合ID,达到告警级别,清除hbase中的小表。丢入kafka。
事件忽略策略:经过聚合的事件,继续走忽略策略,有一些事件是不影响系统安全,所以可以忽略。无论是忽略事件和未忽略事件,我们都要将其发往kafka,以供后续使用。
【事件关联分析模块】
将分析后的事件通过kafka推送给合作方(外包),和合作方做好对接和沟通工作,以便项目顺利推进。
技术亮点 :
日志数据走不同策略
使用Hbase+phoenix,实现多维度多条件,快速查询。
kafka作为缓存通道,高并发,高吞吐,可恢复,读写速度快,灵活性和峰值处理能力高。
项目四:招商银行深圳分行“云镜”反欺诈项目
项目描述:传统反欺诈管理中主要依赖专家经验,通过人工方式制定检测规则,当申请或交易信息与反欺诈规则匹配后即执行相应的业务策略。这种管理模式得出的反欺诈规则存在一定的局限性,不能枚举所有业务场景,无法对各类欺诈行为进行全面覆盖。招行银行的云镜项目是银行卡风险防范领域的一项创新,引入国际领先的基于拓扑学原理的半监督机器学习技术,综合分析大量用户行为数据,融入业务专家经验,预警异常团伙及客户,人机合作颠覆事后核查的传统模式。
技术架构:flume+debezium+kafka+drools+flink+mysql+hbase+clickhouse+neo4j
责任描述 :
【数据采集模块】
操作行为日志:搭建flume采集数据nginx日志数据,配置Flume Agent组件,TailDirSource的方式采集数据行为日志,使用KafkaChannel的方式同步数据到Kafka中。如果要往多个分区中写入数据,可自行配置flume拦截器或分区器。
业务数据:银行开户信息,交易数据,征信数据,风险名单...等数据,通过springboot 写入到mysql,通过flink +debezium cdc方式同步到kafka
【数据预处理模块】
日志数据ETL flink 消费kafka topic 下的中的业务数据,事件行为的提取,数据的清洗,缺失值的填充,格式的标准化。
信息准入 包含资料准入、身份准入以及名单准入。其中资料准入需检查资料完整性,资料真实性。而身份准入需要检查年龄,地域,户籍等是否符合业务常规要求。而名单准入则需检查该身份用户是否为内部黑名单或者行业内共享高风险名单,遍历内部数据库,作为第一层用于高风险用户的识别机制
身份核验 flink消费kafka topic中的日志数据,通过 姓名+身份证+手机号+验证码/密码/人脸 与业务数据中的开户信息进行核验,若核验不通过,则拒绝。若通过,则进行信息补全。
【数据分析模块】
规则引擎的建立 通过drools DSL风格,配置对应的规则,将drools规则流通过broadcast map state广播出去。
风险名单的建立和完善 通过规则命中率建立对应的普通名单(按照规则正常处理,无逾期),白名单(内部客户,知名高管...),灰名单(财务存在风险,需重点关注),黑名单(确认已发生欺诈或者逾期)。
olap指标的分析 将对应的数据通过flink sink 到clickhouse,使用clickhouse 进行olap分析。
常见指标:实时交易金额、实时在途金额、实时逾期总金额、实时放款期数表、地域业务实时活跃情况、每隔两分钟交易金额,每隔两分钟内可疑交易金额,每隔两分钟内可疑账号数,每隔半小时还款金额,每隔一小时招行app下载数.每隔一小时该用户的登录次数,浏览次数,点击率。实时坏账率、实时逾期订单数统计、实时账户状态变更统计、实时贷款余额、实时坏账分期变动率,实时坏账回收率、每隔24H贷款滚动率、实时Bad%(坏账/不良),实时WO%,实时Re、实时不良贷款率、每隔24 H 贷款总金额、每隔24 H 总支付利息、该账号每隔24 H 支付利息 .....
【知识图谱模块】
数据入库 将该用户下的所有标签和统计数据,封装成实体。通过flink 自定义neo4j sink同步到neo4j 中。
知识推理 通过将该用户的用户id,手机号,身份证,设备指纹信息,gis信息等方式。通过知识关联或知识推理的方式找出人与人,人与设备之间的关系。此部分工作由知识图谱工作人员完成。
技术亮点 :
业务的理解,及drools 规则的配置,避免了代码的重复开发以及可维护性。
Flink cdc mysql数据 到kafka,以kafka作为缓存通道,相较于直接cdc ,可以有效的缓解下游数据的消费压力,也可以更好的容错,一但程序挂掉,可以通过snapshot 或者kafka topic offset处恢复。
flink 异步io的使用,有效的提升io 效率,减少等待延迟。
使用flink rocksDB状态后端管理状态。不受 Java 垃圾回收的影响,内存开销更低,并且支持增量检查点。使用 RocksDB,状态大小仅受限于本地可用的磁盘空间大小,这很适合 state 特别大的 Flink 作业。
可兼职时间
可兼职地点
0条评论 雇主评价