SQL → Hive → Python 数据分析 → 机器学习 / AI 基础每个模块:

  • 必学知识点
  • 最简解释
  • 直接可用代码
  • 面试必考点

一、SQL 核心(最最重要,全部掌握)

1. 基础查询

知识点

  • SELECT:查字段
  • FROM:从哪张表
  • WHERE:过滤条件
  • DISTINCT:去重
  • ORDER BY:排序
  • LIMIT:限制行数

代码

sql

-- 基础查询
SELECT user_id, dt, behavior FROM user_log;

-- 条件过滤
SELECT * FROM user_log WHERE dt = '2025-01-01';

-- 去重
SELECT DISTINCT user_id FROM user_log;

-- 排序
SELECT * FROM user_log ORDER BY user_id ASC;

-- 限制行数
SELECT * FROM user_log LIMIT 10;

2. 聚合与分组(必学)

知识点

  • COUNT/SUM/AVG/MAX/MIN
  • GROUP BY 分组
  • HAVING 过滤分组结果

代码

sql

-- 统计日活
SELECT dt, COUNT(DISTINCT user_id) AS dau
FROM user_log
GROUP BY dt;

-- 分组过滤
SELECT dt, COUNT(*) AS cnt
FROM user_log
GROUP BY dt
HAVING COUNT(*) > 100;

3. 多表联查 JOIN(必学)

知识点

  • LEFT JOIN:左表全保留
  • INNER JOIN:只保留匹配
  • RIGHT JOIN / FULL JOIN(了解)

代码

sql

SELECT a.user_id, a.dt, b.device_type
FROM user_log a
LEFT JOIN user_info b
ON a.user_id = b.user_id;

4. 子查询(了解)

sql

SELECT user_id
FROM user_log
WHERE user_id IN (SELECT user_id FROM user_info WHERE age >= 18);

5. 窗口函数(面试必考,重中之重)

(1)排名函数

sql

-- 分组内排序
SELECT
    user_id,
    dt,
    ROW_NUMBER() OVER(PARTITION BY user_id ORDER BY dt) AS rn
FROM user_log;

(2)累计 / 分区计算

sql

-- 按用户累计金额
SELECT
    user_id,
    dt,
    amount,
    SUM(amount) OVER(PARTITION BY user_id ORDER BY dt) AS cum_amount
FROM order_log;

(3)取首次 / 末次

sql

SELECT
    user_id,
    dt,
    FIRST_VALUE(dt) OVER(PARTITION BY user_id ORDER BY dt) AS first_dt
FROM user_log;

6. 互联网业务必背 SQL(面试直接写)

(1)DAU 日活

sql

SELECT dt, COUNT(DISTINCT user_id) AS dau
FROM user_log
GROUP BY dt;

(2)7 日留存(必考)

sql

WITH t1 AS (
    SELECT user_id, MIN(dt) AS first_dt
    FROM user_log
    GROUP BY user_id
)
SELECT
    t1.first_dt,
    COUNT(DISTINCT t1.user_id) AS new_user,
    COUNT(DISTINCT CASE WHEN a.dt = t1.first_dt + 7 THEN a.user_id END) AS retain_7d
FROM t1
LEFT JOIN user_log a ON t1.user_id = a.user_id
GROUP BY t1.first_dt;

二、Hive 核心(OPPO 硬性要求)

1. Hive 基础概念

  • Hive = 把 SQL 转成 MapReduce/Spark 执行
  • 数据存在 HDFS,元数据存在 MySQL
  • 适合海量离线数据计算

2. 内部表 / 外部表 / 分区表(必背)

知识点

  • 内部表:删除表,数据也删
  • 外部表:删除表,HDFS 数据还在
  • 分区表:按日期 / 地区分区,查询极快

代码

sql

-- 外部分区表(企业最常用)
CREATE EXTERNAL TABLE user_log (
    user_id STRING,
    behavior STRING
)
PARTITIONED BY (dt STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/user/hive/warehouse/user_log';

3. 加载数据

sql

LOAD DATA INPATH '/user/data/log.txt' INTO TABLE user_log PARTITION (dt='2025-01-01');

4. Hive 最重点:数据倾斜(面试必考)

现象

  • 大部分任务很快,某一个 Reduce 卡死不动

原因

  • 某一个 key 数据特别多

解决(背下来)

  • 给 key 加盐
  • 参数调优
  • 分开运行大 key + 小 key

三、Python 数据分析核心

1. Pandas 必学操作

知识点

  • 读取文件
  • 筛选、过滤
  • 去重、缺失值
  • 分组聚合

代码

python

运行

import pandas as pd

# 读取
df = pd.read_csv('data.csv')

# 查看
df.head()
df.info()
df.describe()

# 去重
df = df.drop_duplicates()

# 缺失值
df = df.dropna()
df['age'] = df['age'].fillna(0)

# 筛选
df = df[df['age'] >= 18]

# 分组聚合
result = df.groupby('dt')['user_id'].nunique().reset_index()
result.columns = ['dt', 'dau']

2. 可视化 Matplotlib(必学)

python

运行

import matplotlib.pyplot as plt

plt.bar(result['dt'], result['dau'])
plt.title('DAU')
plt.xticks(rotation=30)
plt.show()

3. MySQL 入库

python

运行

import pymysql
from sqlalchemy import create_engine

engine = create_engine('mysql+pymysql://user:password@ip:3306/db')
df.to_sql('result_table', engine, if_exists='append', index=False)

四、机器学习 & AI 基础(满足 OPPO 要求)

1. 必学算法(只学这两个)

逻辑回归(分类)

python

运行

from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

X = df[['age', 'score']]
y = df['label']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

model = LogisticRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)

print(accuracy_score(y_test, y_pred))

决策树 / 随机森林

python

运行

from sklearn.ensemble import RandomForestClassifier

model = RandomForestClassifier()
model.fit(X_train, y_train)

2. AI 基础(会说就行)

  • 机器学习:从数据学规律,做预测
  • 训练:给模型学习
  • 预测:用模型算结果
  • 能调用接口、能复现简单模型 = 满足实习要求

五、你必须做的 2 个项目(简历直接写)

项目 1:Hadoop + Hive 用户行为分析

  • 搭建 Hadoop 伪分布式
  • 建 Hive 分区表
  • 计算 DAU、留存、活跃分布

项目 2:Python 全流程数据分析

  • 数据采集 → 清洗 → 入库 → 分析 → 可视化 → 算法模型

六、极简总览(你照着学,全覆盖)

只需要掌握以下内容,就 100% 满足 OPPO:

  1. SQL:基础、分组、JOIN、窗口函数、DAU、留存
  2. Hive:内外表、分区表、数据加载、数据倾斜
  3. Python:Pandas 清洗、分组、可视化、MySQL 入库
  4. 算法:逻辑回归、随机森林、模型训练预测
  5. 项目:2 个完整项目(Hive 日志分析 + Python 全流程分析)
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐