Toggle navigation
dex0423 的博客
Home
About
Blog
Resources
Blog
——记录工作学习的点点滴滴。
推荐系统
数据结构
用户画像
指标体系
数仓建模
用户运营
SQL
数据埋点
HBase
Hive
OLAP
数仓运维
BI
FineBI
Hadoop
Spark
Tableau
数仓
数据中台
数据治理
数据湖
数据集市
Airflow
DataX
DolphinScheduler
Flume
Kafka
Maxwell
Zookeeper
任务调度
Elasticsearch
ETL
数据产品
数据库
MySQL
Python
Redis
JS逆向
安卓逆向
爬虫
HTTP
推荐系统
推荐系统:推荐系统基础知识
数据结构
数据结构:布隆过滤器的工作原理
数据结构:哈希表的特性与缺陷
哈希冲突 & 内存溢出
数据结构:位图的特性与缺陷
用户画像
用户画像:画像系统开发的全流程
用户画像:用户画像系统设计
用户画像:用户画像系统简介
用户画像:用户画像的应用场景
用户画像:用户画像功能设计
用户画像:用户生命周期标签计算方法
用户画像:用户标签落表存储
Hive & MySQL & Hbase & Elasticsearch & Spark Streaming
用户画像:用户标签的基本概念
用户画像:标签模型的设计规范
用户画像:标签模型开发流程
开发流程阶段 & 各阶段关键产出
用户画像:常见的用户标签体系
标签梳理 & 标签分类
用户画像:如何验证用户画像的准确性
用户画像:基于拉链表实现 ID Mapping
基于 Hive ETL 实现
用户画像:基于 Spark 开发标签模型
用户画像:从数据中台到用户标签
用户画像:从 Hive 数仓 同步标签数据到 HBase
用户画像:ID Mapping 的设计与实现
用户画像:Hive 数仓各层表设计示例
用户画像:ETL 数据流向
指标体系
指标体系:电商运营数据基础指标体系搭建
指标体系:指标字典设计规范
指标体系:指标体系概念详解
数仓建模
数仓建模:范式建模
三范式 & E-R 模型
数仓建模:维度建模
维度建模 & 星型模型 & 雪花模型 & 星座模型
数仓建模:数据建模命名规范
数仓建模:数仓建设规范指南
数仓建模:数仓建模的概念详解
数仓建模:数仓中的数据分层
数仓建模:拉链表的概念详解
数仓建模:不同类型表及同步策略
日全量表 & 增量表 & 快照表 & 切片表 & 流水表 & 拉链表
用户运营
用户运营:流失用户召回策略
用户运营:用户流失预警
用户运营:常见的用户行为分析模型
用户运营:基于标签的用户分群示例
SQL
SQL:数仓中 INFORMATION_SCHEMA 应用汇总
SQL:使用 RANK OVER + PARTION BY + ORDER BY 实现分组排序
统计商品畅销度排行榜
SQL:使用 JOIN 表自身实现表内统计
统计用户第一次消费后30天内的购买数量
SQL:使用 INTERVAL + DENSE_RANK OVER 实现用户留存分析
统计用户注册后 1、3、7、30 日留存率
SQL:使用 CROSS JOIN 实现多表查询
统计员工的出勤情况
SQL:使用 CASE 和 GROUP BY 实现数据透视
统计不同产品、不同渠道销售情况
SQL:WITH RECURSIVE 递归查询使用方法
生成模拟销售数据
SQL:SQL 窗口函数 & 聚合函数
RANK & DENSE RANK & PRECEDING & UNBOUNDED & LAG & LEAD & GROUP_CONCAT
SQL:SQL 执行顺序及常用函数
SQL:SQL 优化经验总结
数据埋点
数据埋点:自研埋点系统的功能模块
数据埋点:第三方埋点工具产品
数据埋点:数据埋点的应用场景
数据埋点:数据埋点测试平台
基于抓包工具实现
数据埋点:数据埋点校验&测试
数据埋点:数据埋点方式与策略
数据埋点:声明式埋点(无痕埋点)
数据埋点:基于 AOP + ASM 实现 Android 自动埋点
数据埋点:埋点的产品需求设计
数据埋点:埋点治理面对的项目管理问题
数据埋点:埋点治理面对的技术问题
数据埋点:AOP 编程思想及其在 Android 埋点中的应用
ASM & AspectJ
数据埋点:数据埋点的用户模型
数据埋点:数据埋点的技术方案
数据埋点:数据埋点的事件模型
数据埋点:埋点事件的参数字段
用户行为日志埋点参数示例
HBase
HBase:HBase 架构 & 数据模型
HBase:HBase 基本概念详解
HBase:HBase vs RDBMS vs HDFS vs Hive
Hive
Hive:Hive 简介及工作原理
Hive:Hive 安装部署示例
Hive:Hive 复杂数据类型使用方法
Hive:Hive SQL 常用优化方法
Hive:Hive SQL DML 基本操作
Hive:Hive SQL DDL 基本操作
OLAP
OLAP:行式存储 & 列式存储
数仓运维
数仓运维:Hadoop 集群配置错误导致的报错及处理办法
数仓运维:数据倾斜问题解决思路
数仓运维:小文件问题解决思路
BI
BI:电商卖家类企业 BI 团队建设
BI:关于 BI 的基本概念详解
FineBI
FineBI:Hive SQL 分析某软件聊天数据
FineBI:FineBI 展示某软件聊天数据
Hadoop
Hadoop:基于 阿里云服务器 搭建 Hadoop 集群
Hadoop:基于 VMware 搭建伪分布式 Hadoop 集群
Hadoop:基于 Docker 搭建伪分布式 Hadoop 集群
Hadoop:YARN 功能及工作机制原理
Hadoop:MapReduce 计算引擎概念详解
Hadoop:Hadoop 基础概念简介
Hadoop:HDFS 分布式文件存储系统概念详解
Spark
Spark:Spark 简介及工作原理
Spark:Spark 与 MapReduce 的对比分析
Spark:Hadoop 3.1.2 + Spark 3.1.2 集群安装部署
Tableau
Tableau:逐行计算 & 聚合计算
Tableau: Tableau Prep 基本功能使用
数仓
数仓工具:数仓部署&运维常用脚本
rsync递归数据分发
数仓基础:数仓的概念名词详解
数仓基础:数仓技术选型及方案设计
数仓基础:OLTP 与 OLAP 的对比分析及优化策略
数据中台
数据中台:数据中台的基本概念
数据中台:数据中台的功能模块
数据中台:数据中台建设方法论
数据治理
数据治理:数据标准化概念及常见问题
数据治理:数据质量管理
数据治理:数据治理的概念详解
数据治理:元数据管理架构及项目实施步骤
数据治理:元数据的概念详解
数据治理:ETL 任务监控与告警
钉钉机器人 & 邮件自动告警
数据湖
数据湖:数据湖的概念详解
数据湖:数据湖的性能要求和设计原则
数据集市
数据集市:数据集市的概念详解
数据集市:宽表设计注意事项
Airflow
Airflow:Airflow 使用方法及注意问题
DataX
DataX:DataX 部署使用方法及注意问题
DataX:DataX 常见异常及处理方法
DolphinScheduler
DolphinScheduler:DolphinScheduler 使用注意事项
调度方式 & 参数 & 补数据
DolphinScheduler:DolphinScheduler 介绍
Flume
Flume:Flume 零点漂移问题及解决方法示例
Flume:Flume 安装步骤示例
Flume:Flume TailDirSource + Kafka Channel + Hdfs sink 日志采集示例
Kafka
Kafka:Kafka 安装步骤示例
Maxwell
Maxwell:Maxwell 功能介绍及使用示例
Zookeeper
Zookeeper:Zookeeper安装步骤示例
任务调度
任务调度:任务调度工具对比
DolphinScheduler vs Airflow vs Azkaban vs Oozie
Elasticsearch
Elasticsearch:基本概念名词全解读
索引、节点、集群、分片
Elasticsearch:Windows 安装 ES 及 elasticsear-head
Elasticsearch:ES 的简介、特点及使用场景
Elasticsearch:ES 常见报错及解决办法
Elasticsearch:ES 倒排索引为什么查询速度会这么快
ETL
ETL方法论:数据读取
ETL方法论:数据类型
ETL方法论:数据清洗
ETL方法论:数据探查
ETL方法论:数据对账
ETL方法论:ETL 的概念详解
ETL方法论:ETL 开发要注意的问题
数据产品
数据产品:数据产品的基本概念
数据产品:数据产品涉及的技术工具
数据产品:产品经理手册
数据库
MySQL:回表问题及处理方法
回表问题 & 索引覆盖 & 联合索引
MySQL:SQL 查询语句执行过程
MySQL:MySQL 性能问题排查思路
MySQL:MySQL 性能优化思路
MySQL 表设计和使用规范
MySQL 表视图的使用
MySQL 常用命令汇总
表维护 & DB运维
MySQL 存储过程概念及实例
MySQL B+ 树索引原理
MySQL 5.7 与 8.0 的对比分析
MySQL
MySQL:Explain 语句返回结果释义
Python
Python:继承、单继承 和 多继承
Python:并发 & 并行、同步 & 异步、阻塞 & 非阻塞
Python:实例方法、静态方法和类方法
Python:多态、鸭子模型和抽象基类
Python:协程中 Task 和 Future 的理解及使用
Python:动态属性 property & setter 以及 __getattr__ 属性
Python:使用元类实现 orm & sqlalchemy 连接池
Python:使用 configparser 模块操作 conf 配置文件
Python:yield 高级用法 send、yiled from
Python:asyncio.wait 和 asyncio.gather 的异同
Python:asyncio 概念和用法详解
Python:*args 和 **kargs 的用法和区别
Python:Python 魔法函数
Python:Python 迭代器原理及应用实践
使用迭代器生成斐波那契数列
Python:Python 语言中的序列
Python:Python 生成器原理及应用实践
用生成器构建斐波那契数列和杨辉三角
Python:Python 常用代码段总结
Python:Python 多线程 & 多进程 & 协程
异同对比、使用示例
Python:Python 处理文件操作命令汇总
Python:Python 中的变量到底是什么
Python:Python SQLalchemy 使用
Redis
Redis:Redis 使用注意事项
Redis:Redis 无序集合 Set 常用命令解读
JS逆向
JS逆向:破解猿人学比赛第16题
JS逆向:破解淘宝浏览器指纹识别风控策略
JS逆向:破解某视频网站登录参数生产方法
JS逆向:破解某站 sign 参数加密逻辑
JS逆向:破解某站 password 参数加密逻辑
JS逆向:破解某点评网站字体反爬策略
JS逆向:破解某民宿字体反爬策略
JS逆向:破解某某文书网反爬虫JS加密策略
JS逆向:破解某专利检索网无限反 debug 问题
JS逆向:破解国家某部官网某速乐加密策略
JS逆向:常见的雪碧图反爬策略与破解
JS逆向:常见的无限debugger反调试策略以及应对方法
JS逆向:常见的JS代码混淆策略的逆向特征
JS逆向:使用 jsnice 提高混淆代码的可读性
JS逆向:jsfuck 技术原理解析
JS逆向:破解企查查无限 debugger 反爬策略
Fiddler + AutoResponder 篡改 js 代码
JS逆向:JS 逆向方式破解某验滑块验证码
JS逆向:JS 中常见的加密算法及逆向特征
JS逆向:Hook 技术原理以及在 JS 逆向中的相关应用
安卓逆向
安卓逆向:安卓逆向环境搭建及工具安装
安卓逆向:夜神模拟器+JustTrustMe+Xposed跳过SSL Pinning检测
安卓逆向:处理 AndroidKiller 反编译失败问题
报错内容:AndroidKiller 反编译失败,无法继续下一步源码反编译!
安卓逆向:mitmproxy使用方法实践
使用 mitmproxy 抓取 京东APP 数据
安卓逆向:adb常用命令汇总及常见问题汇总
安卓逆向:Kali配置v2ray进行翻墙过程全纪录
安卓逆向:Frida安装配置及使用
安卓逆向:破解某手机游戏商品内购功能
爬虫
爬虫:爬虫的法律风险
爬虫:爬虫常用浏览器USER-AGENT整理汇总
爬虫:Grafana+InfluxDB+MongoDB 实现爬虫可视化动态监控
HTTP
HTTP:http 与 https 的概念区别以及实际应用
HTTP:Http 协议 无连接 & 无状态 概念解析
HTTP:Cookie & Session 的概念区别以及实际应用