专业技能
实时框架: Flink, SparkStreaming,Hbase,Impala,Kudu
1. 熟练掌握 SparkStreaming 的 Exactly-Once 实现方式,消费数据源的方式,窗口函数的原理,
了解 SparkStreaming 的背压机制;
2. 熟悉 Flink 的部署和组成架构和作业提交流程,Exactly-Once 实现原理,Watermark 机制运
用、CEP 代码编译以及 Window 和 intervalJoin 底层源码;
3. 熟练掌握 HBase 的存储结构,RowKey 的设计原则; 熟悉 Redis 集群模式部署和使用;
4. 熟悉 ElasticSearch 索引的增删改查,基本的查询操作以及模板的创建和使用场景;
5. 熟练掌握 Impala 的搭建、使用和维护,熟悉使用 Impala+Kudu 构建实时数仓。
离线框架: Spark, Hive, Hadoop, Impala
1. 熟练掌握 Spark 组成架构和作业提交流程,RDD 分区策略,Shuffle 机制,血缘关系以及 Stage
划分原理,常用算子、共享变量代码编译以及 Spark 的优化;
2. 熟练掌握 Hadoop 集群搭建,HDFS 的读写流程以及小文件调优方案,MapReduce 的 Shuffle
流程以及优化,Yarn 的工作机制及调度策略;
3. 熟练掌握 Hive 的架构原理,Hive 与 Mysql 的区别,自定义 UDF 和 UDTF,内部表和外部表的
区别以及 Hive 的优化。
采集框架: Kafka, Flume, Sqoop
1. 熟练掌握 Kafka 组成架构,分区分配策略,读写取数据流程,Exactly-Once 的实现原理,以及
极端情况下导致:数据丢失等优化方案
目一:数据治理系统(数据中台)
开发环境:
Ranger(数据安全)+Atlas(元数据管理)+SparkSQL/Griffin(数据质量)+CKAN(数据资产)
+MetaData(数据共享+指标体系)+数据 API 化
项目描述:
基于原有的离线数仓升级到数据中台,在数据仓库的原有基础上,将数据标准进行量化,通过数据安
全管理、元数据管理、数据质量监控以及数据资产管理,实现数据治理模块。
责任描述:
1. 负责数据治理设计框架的调研、架构设计、搭建以及维护
2. 负责数据标准把控,数据检验流程规范设计和数据质量脚本落地
责任描述:
1. 使用 Ranger 过滤敏感数据,例如供应商具体信息以及供应商报价等;对用户姓名、电话、
地址等敏感信息进行脱敏。
2. 使用 Griffin 进行数据对比,并通过 SparkSQL 进行数据检验,检查数据是否满足数据规范以
及数据质量标准。
3. 使用 Atlas 作为元数据管理工具。
项目二:实时系统(数据中台)
开发环境:
Nginx + Mysql + Canal + Kafka + SparkStreaming + Impala + Kudu + Hbase
项目描述:
基于 SparkStreaming 的离散化流,实时处理由 Kafka 消费来的业务数据和日志数据,将实时数仓构
建到 Kudu 中。实时指标数据存到 Mysql 中,由 Java 同事实现可视化展示,以便实时了解业务指标。实
时指标和实时数仓的实现,能够降低数据计算的延迟,更加及时为产品、运营及管理人员提供数据支撑。
责任描述:
1. 负责 SparkStreaming 的技术调研、集群搭建、参数调优以及指标开发;
2. 梳理实时指标业务,
技术描述:
6. 为简化计算和分担 OLAP 查询压力,参考离线数仓分层原理,简单实现了实时数仓的分层;
7. 每一层都需要手动维护 offset + Kafka 的幂等性来确保精准一次性消费,最后一层是通过手
动维护 offset + 事务来确保精准一次性消费;
8. 从 Kafka 中消费到的数据,要经过 fastJson 转换成需要的格式;
9. ODS 层:简单的 ETL,对采集的数据做分流;维度表进入一个流,事实表进入一个流;
10. DWD 层:提取业务事实,发送到 Kafka 对应的 Topic 中;构建实时维度表,通过 SparkSql
实现降维,存入 HBase 对应的表中;
11. DWS 层:通过双流 join 对明细数据补充维度数据,汇总共性指标;
12. ADS 层:实现批次预聚和,然后通过 SparkSql 实现完整聚合;
13. 常规性实时指标分析:通过 SparkStreaming 进行实时指标分析,将结果保存到 Mysql 或
Hbase 当中。
项目三 :离线系统(数据中台)
开发环境:
HDFS + Hive + Spark + Impala + Sqoop + Azkaban + MySQL
项目描述:
搭建数仓架构,实现原始数据隔离,建设离线宽表,简化开发指标,减少重复开发,提升数据使用效
率,实现可视化展示。离线数仓虽然为日批次计算,但是能够为管理人员提供数据支撑。
责任描述:
1. 调研数仓架构,参与数仓的建模与搭建
2. 负责框架的优化,脚本的维护;
3. 参与指标分析:日活、周活、月活、每日新增、一日留存率、沉默用户数、本周回流用户
数、流失用户数;SKU 数、SPU 数、商品销量排名、商品收藏排名、商品加购排名;好评
率、差评率、评价率、物流好评率、物流差评率;GMV、日下单量、品牌复购率、品牌活动
周期;首页详情转化率、详情加购转化率、加购下单转化率、下单支付转化率、详情支付转
化率等。
技术描述:
1. ODS 层: 采用 LZO 压缩 + 创建分区;
2. DWD 层:Sql 数据清洗 + 脱敏 + 星型模型维度建模 + 维度退化 + LZO 压缩 + Parquet;
3. DWS 层:确定宽表字段,构建当天行为宽表,服务于 ADS 层;
4. ADS 层:直接对接业务指标需求;
5. 利用 Sqoop 将 ads 层数据导入 MySQL 进行可视化展示;
6. 利用 Azkaban 调度各层脚本进行离线数仓脚本定时执行;
7. 利用 Impala 即系查询工具,查询 hive 表中的数据。
项目三 :采集系统(数据中台)
开发环境:
CDH + MySQL + Sqoop + Flume + Kafka + HDFS
项目描述:
搭建 CDH 集群,利用 Flume、Kafka 采集框架,将日志埋点数据采集到 HDFS;利用 Sqoop 将
MySQL 中的业务数据同步到 HDFS,为数仓分析准备数据源。
责任描述:
1. 调研数据采集框架,框架版本、服务器选型,集群规模设定;
2. 集群框架参数调优;处理采集过程中遇到的问题。
技术描述:
1. CDH:集群的搭建、维护和调优。、
2. Flume:TailDir Source + KafkaChannel + ETL 拦截器 + 时间拦截器;
3. Kafka:对数据进行削峰填谷,设置 ack 级别 + 幂等性对数据实现不丢;
4. Sqoop:导入导出数据一致性调优;
项目一:数据治理系统(数据中台) 开发环境: Ranger(数据安全)+Atlas(元数据管理)+SparkSQL/Griffin(数据质量)+CKAN(数据资产) +MetaData(数据共享+指标体系)+数据 API 化 项目描述: 基于原有的离线数仓升级到数据中
线系统(数据中台) 开发环境: HDFS + Hive + Spark + Impala + Sqoop + Azkaban + MySQL 项目描述: 搭建数仓架构,实现原始数据隔离,建设离线宽表,简化开发指标,减少重复开发,提升数据使用效 率,实现可视化展示。离线