{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "bd07-title",
   "metadata": {},
   "source": [
    "# 🎤 07 · 大数据面试八股与高频题\n",
    "\n",
    "> 最后冲刺：把**体系/存储/计算/实时/数仓/管道/平台**的考点串成速答体系，\n",
    "> 并手写两个高频手撕（TopN、两阶段聚合处理倾斜）。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bd07-1",
   "metadata": {},
   "source": [
    "## 1️⃣ 30 秒框架串讲"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "bd07-framework",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-08T09:33:41.797925Z",
     "iopub.status.busy": "2026-10-08T09:33:41.782909Z",
     "iopub.status.idle": "2026-10-08T09:33:41.898973Z",
     "shell.execute_reply": "2026-10-08T09:33:41.877734Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "一条数据从产生到应用的全链路：\n",
      "  业务库/日志 -> 采集(Kafka/Flume) -> 存储(HDFS/湖) -> 离线计算(Hive/Spark)\n",
      "               -> 数仓分层(ODS->DWD->DWS->ADS) -> 报表/算法特征\n",
      "   另加实时链路：-> Flink 实时计算 -> 实时指标/风控\n",
      "  调度(Airflow/DolphinScheduler) + 血缘 + 质量 + 权限 贯穿始终\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print('''一条数据从产生到应用的全链路：\n",
    "  业务库/日志 -> 采集(Kafka/Flume) -> 存储(HDFS/湖) -> 离线计算(Hive/Spark)\n",
    "               -> 数仓分层(ODS->DWD->DWS->ADS) -> 报表/算法特征\n",
    "   另加实时链路：-> Flink 实时计算 -> 实时指标/风控\n",
    "  调度(Airflow/DolphinScheduler) + 血缘 + 质量 + 权限 贯穿始终\n",
    "''')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bd07-2",
   "metadata": {},
   "source": [
    "## 2️⃣ 高频题速答（一）体系与存储"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "bd07-setup",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-08T09:33:41.905229Z",
     "iopub.status.busy": "2026-10-08T09:33:41.904317Z",
     "iopub.status.idle": "2026-10-08T09:34:02.655080Z",
     "shell.execute_reply": "2026-10-08T09:34:02.637706Z"
    }
   },
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "matplotlib.rcParams['font.sans-serif'] = ['Microsoft YaHei', 'SimHei', 'PingFang SC', 'Noto Sans CJK SC', 'Arial Unicode MS']\n",
    "matplotlib.rcParams['axes.unicode_minus'] = False\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "rng = np.random.default_rng(42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "bd07-faq1",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-08T09:34:02.664604Z",
     "iopub.status.busy": "2026-10-08T09:34:02.661857Z",
     "iopub.status.idle": "2026-10-08T09:34:02.747014Z",
     "shell.execute_reply": "2026-10-08T09:34:02.729553Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1) Hadoop 三件套？ -> HDFS(存储)+YARN(资源)+MapReduce(计算)；\n",
      "2) HDFS 副本策略？  -> 3 副本：同机架 2/另一机架 1（默认策略描述）；\n",
      "3) 小文件问题？     -> 大量小文件=海量元数据；合并/归档/湖格式；\n",
      "4) 存算分离？       -> 存储与计算独立扩缩容；云原生趋势；\n",
      "5) 冷热数据？       -> 冷数据低成本存储（对象存储），热数据快；\n",
      "6) 数据湖 vs 数仓？ -> 湖：原始格式+ACID（Iceberg/Hudi）；仓：治理后分层。\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print('''1) Hadoop 三件套？ -> HDFS(存储)+YARN(资源)+MapReduce(计算)；\n",
    "2) HDFS 副本策略？  -> 3 副本：同机架 2/另一机架 1（默认策略描述）；\n",
    "3) 小文件问题？     -> 大量小文件=海量元数据；合并/归档/湖格式；\n",
    "4) 存算分离？       -> 存储与计算独立扩缩容；云原生趋势；\n",
    "5) 冷热数据？       -> 冷数据低成本存储（对象存储），热数据快；\n",
    "6) 数据湖 vs 数仓？ -> 湖：原始格式+ACID（Iceberg/Hudi）；仓：治理后分层。\n",
    "''')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bd07-3",
   "metadata": {},
   "source": [
    "## 3️⃣ 高频题速答（二）计算与实时"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "bd07-faq2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-08T09:34:02.753034Z",
     "iopub.status.busy": "2026-10-08T09:34:02.752148Z",
     "iopub.status.idle": "2026-10-08T09:34:03.126967Z",
     "shell.execute_reply": "2026-10-08T09:34:03.095681Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "7) Spark vs MapReduce？   -> 内存计算+DAG，快 10-100x；\n",
      "8) RDD 血缘有什么用？     -> 容错重算/故障恢复；\n",
      "9) 宽窄依赖？            -> 窄=流水线无 shuffle；宽=shuffle；\n",
      "10) Flink watermark？     -> 处理乱序；低水位=等迟到数据；\n",
      "11) 窗口类型？           -> 滚动/滑动/会话；\n",
      "12) 精确一次语义？       -> 幂等+事务/两阶段提交。\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print('''7) Spark vs MapReduce？   -> 内存计算+DAG，快 10-100x；\n",
    "8) RDD 血缘有什么用？     -> 容错重算/故障恢复；\n",
    "9) 宽窄依赖？            -> 窄=流水线无 shuffle；宽=shuffle；\n",
    "10) Flink watermark？     -> 处理乱序；低水位=等迟到数据；\n",
    "11) 窗口类型？           -> 滚动/滑动/会话；\n",
    "12) 精确一次语义？       -> 幂等+事务/两阶段提交。\n",
    "''')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bd07-4",
   "metadata": {},
   "source": [
    "## 4️⃣ 高频题速答（三）数仓与管道"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "bd07-faq3",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-08T09:34:03.169230Z",
     "iopub.status.busy": "2026-10-08T09:34:03.151189Z",
     "iopub.status.idle": "2026-10-08T09:34:03.411610Z",
     "shell.execute_reply": "2026-10-08T09:34:03.384833Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "13) 数仓四层？         -> ODS/DWD/DWS/ADS；\n",
      "14) 星型 vs 雪花？      -> 冗余/查询快 vs 规范/join 多；\n",
      "15) 数据倾斜怎么办？    -> 两阶段聚合/打散 key/随机前缀；\n",
      "16) Kafka 为什么快？    -> 顺序写+零拷贝+批量压缩；\n",
      "17) 消息积压怎么解？    -> 扩分区扩消费者/批量/降级；\n",
      "18) 慢变维 SCD？        -> Type1 覆盖/Type2 版本化。\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print('''13) 数仓四层？         -> ODS/DWD/DWS/ADS；\n",
    "14) 星型 vs 雪花？      -> 冗余/查询快 vs 规范/join 多；\n",
    "15) 数据倾斜怎么办？    -> 两阶段聚合/打散 key/随机前缀；\n",
    "16) Kafka 为什么快？    -> 顺序写+零拷贝+批量压缩；\n",
    "17) 消息积压怎么解？    -> 扩分区扩消费者/批量/降级；\n",
    "18) 慢变维 SCD？        -> Type1 覆盖/Type2 版本化。\n",
    "''')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bd07-5",
   "metadata": {},
   "source": [
    "## 5️⃣ 手撕一：全局 TopN（分治思路）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "bd07-topn",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-08T09:34:03.417338Z",
     "iopub.status.busy": "2026-10-08T09:34:03.416430Z",
     "iopub.status.idle": "2026-10-08T09:34:03.711451Z",
     "shell.execute_reply": "2026-10-08T09:34:03.696798Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "各分区局部 Top3: [[9, 5, 3], [10, 7, 2], [8, 6, 1]]\n",
      "全局 Top3: [10, 9, 8]\n",
      "✅ TopN 分治法正确（局部降量 -> 归并）\n"
     ]
    }
   ],
   "source": [
    "# 每分区先取局部 TopN，再归并取全局 TopN\n",
    "def topn_partition(nums, n):\n",
    "    return sorted(nums, reverse=True)[:n]\n",
    "\n",
    "partitions = [[5, 9, 3], [10, 2, 7], [8, 1, 6]]\n",
    "k = 3\n",
    "local = [topn_partition(p, k) for p in partitions]\n",
    "print('各分区局部 Top3:', local)\n",
    "global_top = topn_partition([x for p in local for x in p], k)\n",
    "print('全局 Top3:', global_top)\n",
    "assert global_top == [10, 9, 8]\n",
    "print('✅ TopN 分治法正确（局部降量 -> 归并）')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "93e5e23f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-08T09:34:03.734768Z",
     "iopub.status.busy": "2026-10-08T09:34:03.733916Z",
     "iopub.status.idle": "2026-10-08T09:34:05.529048Z",
     "shell.execute_reply": "2026-10-08T09:34:05.513788Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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np6f/N118ODBHDm+kpKSpOk1a9YUAwcOzJ03jSibmNBTrlCpVGLu3Lni7Nmzmg4l1x06dEgoFAphYmIiihUrJnr37i0CAgKy3N7Hx0c4OjqKa9euZbjc1/KexsbGir///jvdE4b0xMfHi8WLF4uEhIQcjefKlSuiV69emS53+vRpacTfnHbq1CkxZcqUVNP3798vjb67adMm8eeff+bK9rPia0vohUgevblhw4YiMTFRCCHE/fv3xdy5c9NN6J4+fSqWLl2a5uinjx49Evv27RMXLlwQBgYGwsrKSjg7OwtPT09pZNHg4GDh6OiY5rH76NEjMWDAgBzbN1K3cuVKsW/fvmyPXJuTcuL4SrF48WJRoEAB8ebNm1yLlyg7ZEII8WXvCRAR0Ze2detWDBw4EKdPn0arVq00HQ6A5N5nxo4di0GDBn01MRFlJjIyEmPGjMGwYcPSfL6ISBOY0BMRfQNSBtOZMWNGurXfRESknZjQExERERFpsZzvgoOIiIiIiL4YJvRERERERFqMCT0RERERkRZjQk9EREREpMWY0BMRERERaTEm9EREREREWowJPRERERGRFmNCT0RERESkxZjQExERERFpMSb0RERERERajAk9EREREZEWY0JPRERERKTFmNATEREREWkxJvRERERERFqMCT0RERERkRZjQk9EREREpMWY0BMRERERaTEm9EREREREWowJPRERERGRFmNCT0RERESkxZjQExERERFpMSb0RERERERajAk9EREREZEWY0JPRERERKTFmNATEREREWkxJvRERERERFqMCT0RERERkRZjQk9EREREpMWY0BMRERERaTEm9EREREREWowJPRERERGRFmNCT0RERESkxZjQExERERFpMSb0RERERERajAk9EREREZEWY0JPRERERKTFmNATEREREWkxHU0H8DneBEUiLCJO02FQDrMwM0Aha1NNh5FlPA7zJh6H9DXQtuOQiDRDaxP6N0GR6DZpF+ISkjQdCuUwAz0d7F/cWyv+iPE4zLt4HNLXQJuOQyLSHK1N6MMi4hCXkITv+jVGERszTYdDOeR1QASWbr+EsIg4rfgDxuMwb+JxSF8DbTsOiUhztDahT1HExgyliubTdBj0jeNxSF8DHodERN8mPhRLRERERKTFmNATEREREWkxJvRERERERFqMCT0RERERkRZj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",
      "text/plain": [
       "<Figure size 950x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可视化：TopN 分治——局部归约再全局归并\n",
    "fig, ax = plt.subplots(figsize=(9.5, 4))\n",
    "for i, p in enumerate(partitions):\n",
    "    x = 5 + i * 22\n",
    "    ax.add_patch(plt.Rectangle((x, 62), 16, 20, fc='#D9E2F3', ec='#2F5597'))\n",
    "    ax.text(x + 8, 72, f'分区{i}\\n{p}', ha='center', va='center', fontsize=10)\n",
    "    ax.text(x + 8, 65.5, f'局部Top3={sorted(p, reverse=True)[:3]}', ha='center', fontsize=8.5, color='#C00000')\n",
    "    ax.annotate('', xy=(42 + (i - 1) * 6, 42), xytext=(x + 8, 61),\n",
    "                arrowprops=dict(arrowstyle='-|>', color='#7F7F7F'))\n",
    "ax.add_patch(plt.Rectangle((32, 26), 24, 14, fc='#E2EFDA', ec='#548235'))\n",
    "ax.text(44, 33, f'归并 -> 全局Top3={global_top}', ha='center', va='center', fontsize=11)\n",
    "ax.set_xlim(0, 100); ax.set_ylim(20, 90); ax.axis('off')\n",
    "ax.set_title('分治：每个分区只上传局部 TopN（数据量 n -> N*分区数）', fontsize=12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bd07-6",
   "metadata": {},
   "source": [
    "## 6️⃣ 手撕二：数据倾斜两阶段聚合"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2bb196da",
   "metadata": {},
   "source": [
    "### 手撕三：SQL 高频两连（对应面试题 84/85）\n",
    "\n",
    "**分组 Top1（每个城市最近一单）**——窗口函数 `row_number()`：\n",
    "\n",
    "```sql\n",
    "SELECT city, order_id, ts\n",
    "FROM (\n",
    "  SELECT city, order_id, ts,\n",
    "         ROW_NUMBER() OVER (PARTITION BY city ORDER BY ts DESC) AS rn\n",
    "  FROM dwd_orders\n",
    "  WHERE is_valid = 1\n",
    ") t\n",
    "WHERE rn = 1;\n",
    "```\n",
    "\n",
    "**日活/留存**——去重计数 + 自连接：\n",
    "\n",
    "```sql\n",
    "-- 日活\n",
    "SELECT dt, COUNT(DISTINCT user_id) AS dau\n",
    "FROM dwd_orders GROUP BY dt;\n",
    "\n",
    "-- 次日留存：首日用户中第 2 天仍活跃的比例\n",
    "SELECT a.dt AS d1,\n",
    "       COUNT(DISTINCT a.user_id) AS new_users,\n",
    "       COUNT(DISTINCT b.user_id) AS retained,\n",
    "       ROUND(COUNT(DISTINCT b.user_id) / COUNT(DISTINCT a.user_id), 3) AS retention_1d\n",
    "FROM user_active a\n",
    "LEFT JOIN user_active b\n",
    "  ON a.user_id = b.user_id AND b.dt = DATE_ADD(a.dt, 1)\n",
    "GROUP BY a.dt;\n",
    "```\n",
    "\n",
    "答题要点：先说**口径**（\"活跃\"怎么定义、按谁去重），再写 SQL，最后提性能\n",
    "（大表 join 先过滤/分区裁剪，`COUNT(DISTINCT)` 大时用两阶段去重：先 group by user 再 count）。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f32603ac",
   "metadata": {},
   "source": [
    "### 面试答题万能模板（结构化表达）\n",
    "\n",
    "**原理题**：定义（是什么）→ 过程（怎么工作，最好画图）→ 为什么这么设计（解决什么问题）\n",
    "→ 局限与替代方案（对比）。\n",
    "例：RDD 血缘 = \"记录父 RDD 与转换操作\" → \"分区丢了沿血缘重算\" → \"免副本、容错轻量\"\n",
    "→ \"血缘过长恢复慢，用 checkpoint 截断\"。\n",
    "\n",
    "**方案/排查题**：先定位（指标/日志/血缘）→ 分级处理（止血→根因）→ 复盘预防（监控/规范）。\n",
    "例：报表数字异常 = 先确认口径与数据时间 → 查调度是否漏跑/上游表是否更新 → 修复后补数 → 加质量监控。\n",
    "\n",
    "**手撕题**：先讲思路（分治/贪心/两阶段）→ 写核心 10 行 → 主动说边界（空输入/单元素/倾斜）。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "bd07-skew",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-08T09:34:05.533741Z",
     "iopub.status.busy": "2026-10-08T09:34:05.533075Z",
     "iopub.status.idle": "2026-10-08T09:34:05.656341Z",
     "shell.execute_reply": "2026-10-08T09:34:05.634808Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "两阶段聚合结果: {'hot': 100, 'a': 10, 'b': 5}\n",
      "✅ 两阶段聚合：先按加前缀的 key 分散计算，再合并，结果一致且不再倾斜\n"
     ]
    }
   ],
   "source": [
    "# 普通 groupBy 会 skew：某 key 集中在 1 个 task\n",
    "# 两阶段：先加随机前缀局部聚合，再去前缀全局聚合\n",
    "records = [('hot', 1)] * 100 + [('a', 1)] * 10 + [('b', 1)] * 5   # 'hot' 倾斜\n",
    "\n",
    "def two_phase_agg(records, n_rand=3):\n",
    "    phase1 = {}\n",
    "    for k, v in records:\n",
    "        p = f'{k}#{rng.integers(0, n_rand)}'\n",
    "        phase1[p] = phase1.get(p, 0) + v\n",
    "    phase2 = {}\n",
    "    for pk, v in phase1.items():\n",
    "        k = pk.split('#')[0]\n",
    "        phase2[k] = phase2.get(k, 0) + v\n",
    "    return phase2\n",
    "\n",
    "res = two_phase_agg(records)\n",
    "print('两阶段聚合结果:', res)\n",
    "assert res['hot'] == 100 and res['a'] == 10 and res['b'] == 5\n",
    "print('✅ 两阶段聚合：先按加前缀的 key 分散计算，再合并，结果一致且不再倾斜')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "da0be77e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-08T09:34:05.675990Z",
     "iopub.status.busy": "2026-10-08T09:34:05.661394Z",
     "iopub.status.idle": "2026-10-08T09:34:06.711603Z",
     "shell.execute_reply": "2026-10-08T09:34:06.692857Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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xALVExER0Y+hTp06aNq0KaZNm4a3b98iIiICTk5OGDFiBAwNDWXWExER0dcr1QkEe3t7rFq1CmPHjoWysjLmzZuHY8eOoWrVqgWqJyIioh/HoUOHkJWVBRMTE5iZmaFatWr4+++/C1xPREREX0cgEpWO6e6joqKgoqICAwODfHVCoRDx8fEoU6aMeFxjYeo/JykpCbq6ukhMTISOjs5Xxf8eV2GQD67CQERUvIrjHigvGRkZiIqKgrm5udT7ekxMDFRVVSWWbCxM/eeU5nNCRERUXApz/ys1kyiWLVv2s3WqqqpfVU9ERETfDzU1NVSqVOmz9UZGRl/cX1Y9ERERFU2pHsJARERERERERKUDEwhEREREREREJBMTCEREREREREQkExMIRERERERERCQTEwhEREREREREJBMTCEREREREREQkExMIRERERERERCQTEwhEREREREREJBMTCEREREREREQkExMIRERERERERCQTEwhEREREREREJBMTCEREREREREQkExMIRERERERERCQTEwhEREREREREJBMTCEREREREREQkExMIRERERERERCQTEwhEREREREREJBMTCEREREREREQkExMIRERERERERCQTEwhEREREREREJBMTCEREREREREQkExMIRERERERERCQTEwhEREREREREJBMTCEREREREREQkExMIRERERERERCQTEwhEREREREREJBMTCEREREREREQkExMIRERERERERCQTEwhEREREREREJBMTCEREREREREQkExMIRERERERERCQTEwhEREREREREJBMTCEREREREREQkExMIRERERERERCQTEwhEREREREREJBMTCEREREREREQkExMIRERERERERCQTEwhEREREREREJBMTCEREREREREQkExMIRERERERERCQTEwhEREREREREJBMTCEREREREREQkExMIRERERERERCSTUkkHIEt0dDQ2bdqEwMBA1KpVCxMnToSenp64PiUlBRs3bsSTJ09gbm6O33//HeXKlSu5gImIiKjYnD17FqdOnYKioiIGDhyIdu3aSdTfvn0bBw8eRHp6Orp3746+ffuWUKREREQ/nlLdAyEmJgYNGzbE1atXUbt2bZw6dQq2trZITU0FAKSnp6NFixY4evQoateujatXr8LW1hZxcXElHDkRERHJ27Jl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uLm5iV/n5ubi8uXL6Nix47cMk4iIiIqZUCjE4MGDMW3aNKxcuVIieQAALVq0QHZ2tnilJiBv1QYtLS3Y2dl963CJiIh+SKW6B8KJEydQp04dPHv2DM+ePROXa2lpoUmTJpgyZQpsbGwwffp09OvXD3v27EFiYiImTJhQglETERGRvD169Ajh4eGoXr26RJIAAOrUqYOKFSti4MCB+O2337BhwwZkZ2djxowZcHJykjo3AhERERVeqU4gZGVlwdfXFw4ODhLltWrVwu3bt2FtbY1z585h7ty5OHz4MOrVq4cbN27AwMCghCImIiKi4pCYmAhDQ0NMnjw5X92uXbvQvXt3bN++HbNmzcKECROgrq6OyZMnY/r06d8+WCIioh9UqU4guLu7y9ymQ4cO6NChwzeIhoiIiEpKt27dEBMT88VtNDU1sWHDBmzYsOEbRUVERPRzKdVzIBARERERERFR6cAEAhERERERERHJxAQCEREREREREcnEBAIRERERERERycQEAhERERERERHJxAQCEREREREREcnEBAIRERERERERycQEAhERERERERHJxAQCEREREREREcnEBAIRERERERERycQEAhERERERERHJxAQCEREREREREcnEBAIRERERERERycQEAhERERERERHJxAQCEREREREREcnEBAIRERERERERycQEAhERERERERHJxAQCEREREREREcnEBAIRERERERERycQEAhERERERERHJxAQCEREREREREcmkVNIBEFHxqTfgn5IO4bvnc2R8SYdAREREP7Afsb3G9tOPiz0QiIiIiIiIiEgmJhCIiIiIiIiISCYmEIiIiIiIiIhIJiYQiIiIiIiIiEgmJhCIiIiIiIiISCYmEIiIiIiIiIhIJiYQiIiIiIiIiEgmJhCIiIiIiIiISCYmEIiIiIiIiIhIJiYQiIiIiIiIiEgmJhCIiIiIiIiISCYmEIiIiIiIiIhIJiYQiIiIiIiIiEgmpZIOgIiIfnz1BvxT0iF893yOjC/pEIiIiL47P2obpKTaBeyBQEREREREREQyMYFARERERERERDIxgUBEREREREREMjGBQEREREREREQyMYFARERERERERDIxgUBEREREREREMjGBQEREREREREQyMYFARERERERERDJ99wkEf39/9O/fHxYWFrC3t8fdu3dLOiQiIiIq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",
      "text/plain": [
       "<Figure size 1050x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可视化：倾斜前后对比（task 处理条数）\n",
    "fig, axes = plt.subplots(1, 2, figsize=(10.5, 4))\n",
    "axes[0].bar(['task-0(hot)', 'task-1(a)', 'task-2(b)'], [100, 10, 5],\n",
    "            color=['#C00000', '#2F5597', '#2F5597'], width=0.5)\n",
    "axes[0].set_title('一阶段聚合：hot 全落同一 task（倾斜）', fontsize=11.5, color='#C00000')\n",
    "axes[1].bar(['hot#0', 'hot#1', 'hot#2', 'a', 'b'], [34, 33, 33, 10, 5],\n",
    "            color=['#ED7D31'] * 3 + ['#2F5597'] * 2, width=0.6)\n",
    "axes[1].set_title(\"两阶段聚合：前缀打散后 task 均衡，合并后 hot=100\", fontsize=11.5, color='#548235')\n",
    "for ax in axes:\n",
    "    ax.set_ylabel('task 处理条数')\n",
    "    ax.set_ylim(0, 115)\n",
    "plt.tight_layout(); plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bd07-7",
   "metadata": {},
   "source": [
    "## 7️⃣ 自测清单"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bd07-check",
   "metadata": {},
   "source": [
    "- [ ] 能把\"一条数据从产生到应用\"讲 3 分钟\n",
    "- [ ] 能答 18 个高频速答题\n",
    "- [ ] 能手写 TopN 分治、两阶段聚合\n",
    "- [ ] 能画出数仓四层与 Kafka 架构\n",
    "- [ ] 能说出 Flink watermark/窗口/精确一次"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.14"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
