深 入 理 解 otter 七 锋 2013-07-04
Agenda 1. 中 美 同 步 需 求 2. otter 架 构 & 设 计 o o o o o o o o 如 何 解 决 " 差 " 网 络 如 何 避 免 双 向 回 环 如 何 处 理 数 据 一 致 性 如 何 高 效 同 步 数 据 如 何 高 效 同 步 文 件 如 何 支 持 系 统 HA 如 何 处 理 特 殊 业 务 同 步 如 何 处 理 机 房 容 灾 3. 相 关 产 品 对 比 4. 其 他
业 务 场 景 1. 杭 州 / 美 国 异 地 机 房 双 向 同 步 a. 业 务 性 ( 定 义 同 步 表, 同 步 字 段 ) b. 隔 离 性 ( 定 义 同 步 通 道, 对 应 一 个 具 体 业 务, 多 个 通 道 之 间 互 相 隔 离 ) c. 关 联 数 据 ( 同 步 db 数 据 的 同 时, 需 要 同 步 图 片, 比 如 产 品 表 ) d. 双 A 写 入 ( 避 免 回 环 同 步, 冲 突 处 理, 数 据 一 致 性 保 证 ) e. 事 务 性 ( 没 有 严 格 的 事 务 保 证, 定 义 表 载 入 顺 序 ) f. 异 构 性 ( 支 持 mysql/oracle) 2. 扩 展 业 务 a. 数 据 仓 库 增 量 数 据 ( 整 行 记 录, 根 据 变 更 主 键 反 查 ) b. 业 务 cache 更 新 ( 更 新 db 成 功 的 同 时, 刷 新 下 cache 中 的 值 ) c. 数 据 全 库 迁 移 ( 建 立 任 务 队 列 表 / 触 发 全 库 记 录 变 更 ) d. 多 库 合 并 同 步 (product/product_detail 需 要 尽 可 能 保 证 加 载 顺 序 )
设 计 关 注 要 点 硬 性 要 求 : 1. 数 据 不 能 丢 失 ( 变 更 数 据 一 定 要 成 功 应 用 到 目 标 库 ) 2. 数 据 最 终 一 致 性 ( 双 向 两 边 记 录 要 保 证 最 终 一 致 性 ) 客 观 因 素 : 1. 中 美 网 络 延 迟 ( 平 均 200ms) 2. 中 美 传 输 速 度 (2~6MB/s) 3. 文 件 同 步 (20000 条 记 录 可 达 800MB 文 件 ) 4. 同 步 按 需 隔 离 ( 不 同 业 务 之 间 同 步 互 不 影 响, 同 步 有 快 慢 ) 5. 事 务 性 支 持 ( 允 许 业 务 定 义 表 的 同 步 加 载 的 顺 序 性 )
整 体 架 构
整 体 架 构 otter 整 体 模 块 o manager ( 提 供 web 页 面 进 行 同 步 管 理 ) o arbitrate ( 分 布 式 调 度, 可 跨 IDC 机 房 ) o node ( 同 步 过 程 setl) o canal ( 同 步 数 据 来 源 ) 大 集 群 化 部 署 o 1 个 manager 集 群 + 多 个 IDC 机 房 node 组 成
名 词 解 释 Pipeline: 从 源 端 到 目 标 端 的 整 个 过 程 描 述, 主 要 由 一 些 同 步 映 射 过 程 组 成 Channel: 同 步 通 道, 单 向 同 步 中 一 个 Pipeline 组 成, 在 双 向 同 步 中 有 两 个 Pipeline 组 成 DateMediaPair: 根 据 业 务 表 定 义 映 射 关 系, 比 如 源 表 和 目 标 表, 字 段 映 射, 字 段 组 等 DateMedia : 抽 象 的 数 据 介 质 概 念, 可 以 理 解 为 数 据 表 /mq 队 列 定 义 DateMediaSource : 抽 象 的 数 据 介 质 源 信 息, 补 充 描 述 DateMedia ColumnPair : 定 义 字 段 映 射 关 系 ColumnGroup : 定 义 字 段 映 射 组
如 何 解 决 " 差 " 网 络 TCP/IP 协 议!!!!!
如 何 解 决 " 差 " 网 络
如 何 解 决 " 差 " 网 络
如 何 解 决 " 差 " 网 络 1. 并 行 化 (TCP 滑 动 窗 口 模 型 ) a. 梯 形 模 型 (otter3) 原 理 : 取 一 批 2w 数 据, 分 成 5 小 份, 每 份 分 配 一 个 process 处 理, 每 份 数 据 都 处 理 完 成 后, 再 取 下 一 批 数 据. 4w 条 记 录, 时 间 估 算 :(S+E+T)*2+100*2+10L b. 四 边 形 模 型 (otter4) 原 理 : 每 次 取 4000 条 数 据, 每 完 成 一 批, 立 马 开 启 一 个 新 的 批 次, 尽 可 能 保 证 一 直 有 5 个 批 次 在 处 理. 4w 条 记 录, 时 间 估 算 :(S+E+T)*1+100+10L 四 边 形 模 型 在 总 时 间 上 会 有 优 势, 无 停 顿 感
如 何 解 决 " 差 " 网 络 1. 并 行 化 (TCP 滑 动 窗 口 模 型 ) 如 何 保 证 数 据 不 丢 :2pc. (get/ack) 如 何 处 理 重 传 协 议 :get/ack/rollback 如 何 支 持 并 行 化 : 多 get cursor+ack curosr
如 何 解 决 " 差 " 网 络 1. 并 行 化 (TCP 滑 动 窗 口 模 型 ) 基 本 思 路 : a. 90% 的 情 况 都 是 正 常 的, 异 步 ack 机 制 i. get/ack 利 用 tcp/ip 双 工, 无 I/O 抢 占 b. 出 现 异 常, 处 理 代 价 比 较 高, 需 要 锁 定 所 有 操 作 i. 锁 定 分 布 式 Permit, 阻 塞 所 有 同 步 进 程 + 线 程 ii. rollback get cursor iii. 开 启 分 布 式 Permit, 允 许 线 程 工 作 iiii. retry get
如 何 解 决 " 差 " 网 络
如 何 解 决 " 差 " 网 络 1. 并 行 化 (TCP 滑 动 窗 口 模 型 ) Nagle 算 法 支 持 :( 合 并 数 据 据 包 处 理 ) a. 构 建 RingBuffer ( 内 存 控 制 模 式 / 数 量 控 制 模 式 ) b. 指 定 batchsize 获 取 i. 内 存 大 小 ii. 记 录 数 c. 指 定 定 batchsize + timeout 获 取 i. timeout = -1, 即 时 获 取, 有 多 少 取 多 少 ii. timeout = 0, 阻 塞 至 满 足 batchsize 条 件 iii. timeout > 0, 阻 塞 指 定 的 时 间 或 者 满 足 batchsize. 建 议 值 :batchsize=4000( 约 4M), timeout=500, 内 存 控 制 模 式
如 何 解 决 " 差 " 网 络 2. 调 度 算 法 顺 序 性 保 证 ( 令 牌 id): a. select 每 同 步 一 批 数 据, 申 请 令 牌 自 增 id b. 每 个 阶 段 负 责 传 递 数 据 + 令 牌 id c. load 时 按 照 令 牌 id 顺 序 处 理 调 度 模 型 (SEDA): a. 共 享 thread pool, 解 决 流 控 机 制 b. 划 分 多 stage, 提 升 资 源 利 用 率 c. 统 一 编 程 模 型, 支 持 同 机 房, 跨 机 房 不 同 的 调 度 算 法
如 何 解 决 " 差 " 网 络 SEDA 调 度 模 型 a. await 模 拟 object 获 取 锁 操 作 b. notify 被 唤 醒 后 提 交 任 务 到 thread pools c. single 模 拟 object 释 放 锁 操 作, 触 发 下 一 个 stage
如 何 解 决 " 差 " 网 络 2. 调 度 算 法 中 美 网 络 RTT = 200ms, zookeeper 一 次 写 入 =10ms 调 度 成 本 估 算 : a. zookeeper + zookeeper watch ( 完 全 分 布 式 ) 10 * 4 + 200 * 2 + 200 = 640ms b. zookeeper + rpc (sticky 分 布 式, 尽 可 能 选 择 同 节 点 ) 10 + 100 + 200 = 310ms c. memory + memory ( 内 存 调 度, 单 机 房 ) 0ms d. memory + rpc ( 跨 机 房 调 度, 最 优 实 现, 待 完 成??) 0 + 100 + 100 = 200ms
如 何 解 决 " 差 " 网 络 3. 数 据 传 输 stage 间 数 据 传 递 :pipe 管 道 stage pipe stage pipe 实 现 ( 数 据 TTL 控 制 ): a. in memory b. rpc call (<1MB) c. file(gzip) + http 多 线 程 下 载
如 何 解 决 " 差 " 网 络
如 何 避 免 双 向 回 环 实 现 思 路 : 1. 利 用 事 务 机 制, 在 事 务 头 和 尾 中 插 入 otter 同 步 标 识 2. 解 析 时 识 别 同 步 标 识, 判 断 是 否 需 要 屏 蔽 同 步. 几 点 注 意 : 1. 基 于 标 准 SQL 实 现 可 以 支 持 mysql/oracle 等 异 构 数 据 库 的 双 向 同 步 2. 事 务 完 整 解 析 & 完 整 可 见 性 事 务 被 拆 开 同 步, 会 出 现 部 分 回 环 同 步, 数 据 不 一 致
如 何 避 免 双 向 回 环
如 何 处 理 数 据 一 致 性 业 务 场 景 : a. 多 地 写 入 b. 同 一 记 录, 同 时 变 更 同 一 : 具 体 到 某 一 张 表, 某 一 条 pk, 某 一 字 段 同 时 :A 地 写 入 的 数 据 在 B 地 还 未 可 见 的 一 段 时 间 范 围 方 案 : 1. 检 测 ( 事 前 处 理 ) 2. 补 救 ( 事 后 处 理 )
如 何 处 理 数 据 一 致 性
如 何 处 理 数 据 一 致 性 思 路 ; 数 据 最 终 一 致 性 基 于 trust source + 流 量 不 均 衡 ( 杭 州 多, 美 国 少 )
如 何 处 理 数 据 一 致 性 单 向 回 环 流 程 : us->hz 同 步 的 数 据, 会 再 次 进 入 hz->us 队 列 hz->us 同 步 的 数 据, 不 会 进 入 us->hz 队 列 ( 回 环 终 止 ) 存 在 的 问 题 : a. 存 在 同 步 延 迟 时, 会 出 现 版 本 丢 失 / 数 据 交 替 性 变 化 解 决 方 案 : a. 反 查 数 据 库 同 步 ( 以 数 据 库 最 新 版 本 同 步, 解 决 交 替 性 ) b. 字 段 同 步 ( 降 低 冲 突 概 率 ) c. 同 步 效 率 ( 同 步 越 快 越 好, 降 低 双 写 导 致 版 本 丢 失 概 率 )
如 何 处 理 数 据 一 致 性 ( 分 布 式 Permit) 注 意 :A,B,C 三 点 状 态 都 正 常 才 允 许 进 行 同 步 ( 解 决 数 据 单 向 覆 盖 )
如 何 处 理 数 据 一 致 性 ( 预 研 )
如 何 处 理 数 据 一 致 性 ( 预 研 ) 基 本 思 路 : a. 基 于 同 一 时 间 的 理 论, 找 出 存 在 时 间 交 集 的 同 步 数 据 批 次 b. 在 交 叉 同 步 数 据 批 次 中, 找 出 同 一 数 据 的 记 录, 可 以 精 确 到 pk 或 者 column. ( 优 势 : 减 少 单 向 回 环 同 步 的 数 据 ) c. 发 起 类 似 单 向 回 环 同 步, 保 证 数 据 最 终 一 致 性.
如 何 高 效 同 步 数 据 1. 数 据 最 小 化 a. 数 据 合 并 i. 详 见 合 并 机 制 b. 数 据 压 缩 i. 数 据 protobuf 存 储, 再 gzip 压 缩, 20% 的 压 缩 率 2. 数 据 并 行 化 a. S/E/T/L 并 行 调 度 b. join 并 行 化 c. load 并 行 化 (pk hash + weight)
如 何 高 效 同 步 数 据 ( 数 据 合 并 ) 1. insert + insert -> insert ( 数 据 迁 移 + 数 据 增 量 场 景 ) 2. insert + update -> insert (update 字 段 合 并 到 insert) 3. insert + delete -> delete 4. update + insert -> insert ( 数 据 迁 移 + 数 据 增 量 场 景 ) 5. update + update -> update 6. update + delete -> delete 7. delete + insert -> insert 8. delete + update -> update ( 数 据 迁 移 + 数 据 增 量 场 景 ) 9. delete + delete -> delete 说 明. 1. insert/ 行 记 录 update 执 行 merge sql, 解 决 重 复 数 据 执 行 2. 合 并 算 法 执 行 后, 单 pk 主 键 只 有 一 条 记 录, 解 决 并 行 load 的 效 率
如 何 高 效 同 步 数 据 (load 并 行 化 ) pk hash 算 法 : 需 求 描 述 : 提 升 同 步 性 能, 按 table 粒 度 并 行 时, 改 善 大 表 同 步 问 题 解 决 方 案 : 根 据 table + pk hash 后 进 行 并 行 提 交 优 化 方 案 : 合 并 相 同 执 行 sql 的 pk hash 结 果, 进 行 batch 提 交 (id 排 序,mysql 顺 序 写, 减 少 网 络 交 互 ) weight 算 法 :( 业 务 事 务 性 支 持 ) 业 务 需 求 : 事 务 中 顺 序 更 新 offer_detail,offer 表, 同 步 时 插 入 保 证 顺 序 解 决 方 案 : 定 义 offer_detail(weight=1),offer(weight=2), 按 权 重 从 小 到 大 插 入, 保 证 在 一 个 批 次 数 据 中 offer_detail 的 变 更 要 优 先 于 offer 表 变 更 插 入
如 何 高 效 同 步 数 据 (load 并 行 化 ) pk hash + weight 算 法 : a. 根 据 weight 不 同, 构 建 多 个 weight bucket b. 按 weight 顺 序, 对 每 个 weight bucket 执 行 pk hash 算 法 pk hash + weight + 多 库 复 制 :( 文 件 和 数 据 ) 业 务 描 述 : a. 数 据 库 load 完 成 后, 发 送 数 据 到 mq, 或 者 更 新 cache b. 会 员 变 更 数 据, 需 要 同 步 到 多 个 目 标 数 据 库 算 法 描 述 : a. 每 个 库 创 建 一 份 load 实 例, 并 接 入 weight controller 调 度 b. 每 个 库 按 pk hash+weight 混 合 算 法 进 行 调 度, 单 库 的 weight bucket 的 调 度 由 weight controllert 的 统 一 控 制
如 何 高 效 同 步 数 据 (load 并 行 化 ) 二 维 线 程 池 weight 调 度 : 纬 度 一 : 多 库 载 入, 纬 度 二 : 单 库 pk hash
如 何 高 效 同 步 数 据 最 近 1 天 数 据 同 步 量 (7 月 4 号 统 计 ) a. 记 录 数 :568748541 (5.7 亿 ) b. 大 小 :377805439534 (351GB, 压 缩 后 约 为 70GB) c. 平 均 记 录 大 小 :664 byte d. 高 峰 期 带 宽 占 用 :(80% 的 数 据 产 生 于 工 作 时 间 ) 70GB * 80% * 2 / (8 * 3600) = 4MB/ 秒
如 何 高 效 同 步 文 件 1. 文 件 最 小 化 a. 文 件 变 化 判 断 b. 文 件 重 复 同 步 判 断 c. 数 据 压 缩 i. gzip 压 缩, 80% 的 压 缩 率 2. 文 件 并 行 化 a. S/E/T/L 并 行 调 度 b. 多 线 程 压 缩 & 传 输 & 同 步 3. 多 网 络 a. 公 网, 中 美 专 线, 香 港 专 线
如 何 高 效 同 步 文 件 ( 文 件 变 化 判 断 )
如 何 高 效 同 步 文 件 ( 文 件 重 复 同 步 判 断 ) 重 复 同 步 判 断 依 据 : 1. 源 文 件 的 最 后 修 改 时 间 比 目 标 文 件 的 最 后 修 改 时 间 旧 2. 源 文 件 和 目 标 文 件 大 小 一 致 注 意 点 : 1. 文 件 存 储 时 区 问 题. 2. 可 以 优 化 为 根 据 文 件 md5 比 较 调 用 时 机 : 1. extract 在 生 成 文 件 压 缩 包 时, 会 先 调 用 美 国 节 点, 提 交 文 件 重 复 同 步 判 断 的 请 求. ( 多 了 一 次 网 络 开 销 )
如 何 高 效 同 步 文 件 ( 多 线 程 优 化 ) 1. 多 线 程 压 缩 a. 多 个 线 程 并 发 请 求 aranda 服 务, 下 载 为 本 地 临 时 文 件 b. 压 缩 线 程 串 行 压 缩 目 前 线 程 数 默 认 为 10. 2. 多 线 程 传 输 (pull 模 式 ) 比 如 需 要 杭 州 传 文 件 到 美 国 a. 会 在 杭 州 启 动 一 个 http 服 务. ( 目 前 为 嵌 入 式 jetty) b. 美 国 启 动 多 线 程 下 载 器, 多 socket 下 载 文 件 几 点 注 意 : a. sendfile 技 术, 减 少 jvm 内 存 使 用, 后 续 优 化 b. aria2c 下 载 器 ( 参 数 :-k 2M -j 50 -s 16 -x 16)
如 何 高 效 同 步 文 件 ( 多 线 程 优 化 ) 最 近 1 天 数 据 同 步 量 (7 月 4 号 统 计 ) a. 记 录 数 :19495302 (2000w,AE 产 品 占 据 50% 以 上 ) b. 大 小 :1138035470493 (1.03TB, 压 缩 后 约 830GB) c. 平 均 记 录 大 小 :57kb d. 高 峰 期 带 宽 占 用 : i. 假 定 :80% 的 数 据 产 生 于 工 作 时 间 压 缩 :830GB * 80% * 2 / (8 * 3600) = 47MB/ 秒 未 压 缩 :1.03TB * 80% * 2 / (8 * 3600) = 59MB/ 秒 ii. 假 定 : 文 件 同 步 时 间 段 均 匀 分 布 压 缩 :830GB * 2 / (24 * 3600) = 20MB/ 秒 未 压 缩 :1.03TB * 2 / (24 * 3600) = 25MB/ 秒
如 何 支 持 系 统 HA 基 本 思 路 : a. 使 用 zookeeper 临 时 节 点, 会 话 失 效, 节 点 自 动 删 除 b. manager 监 听 node 节 点, 冻 结 期 设 计 为 90 秒 i. 冻 结 期 内, 不 做 任 何 处 理 ii. 超 过 冻 结 其 后, 检 查 节 点 是 否 已 恢 复 1. 如 果 恢 复, 不 做 任 何 处 理 ( 考 虑 系 统 发 布 ) 2. 未 恢 复, 进 入 系 统 HA 流 程. c. HA 流 程 i. 查 找 节 点 对 应 的 同 步 任 务 ii. 针 对 每 个 任 务 发 起 RESTART 指 令. (tcp 重 传 协 议 ) iii. 阻 塞 分 布 式 permit,rollback 数 据, 开 启 同 步.
如 何 处 理 特 殊 业 务 1. 同 步 映 射 a. 1 : 1 映 射, (offer -> offer, 最 简 单 业 务 ) b. n : 1 映 射, (offer[1-32] -> offer) c. 1 : n 映 射, (offer -> offer, offer_log) 数 据 多 路 复 制 2. 视 图 同 步 a. 表 名 不 同 (ocndb.member -> crmg.cbu_member) b. 字 段 名 不 同 (member_id -> vaccount_id) c. 字 段 类 型 不 同 (number(11,2) -> varchar(32)) d. 字 段 个 数 不 同 (1:n 映 射,1 个 字 段 复 制 到 目 标 多 个 字 段 )
如 何 处 理 特 殊 业 务 扩 展 点 : 1. FileResolver 解 决 数 据 和 文 件 的 关 联 关 系 2. EventProcessor 自 定 义 数 据 处 理, 可 以 改 变 一 条 变 更 数 据 的 任 意 内 容 运 维 方 式 : a. 支 持 class 和 源 码 的 载 入 b. manager 管 理 源 码, 运 行 时 动 态 推 送 & 编 译 局 限 : 无 法 像 精 卫 自 定 义 依 赖 lib 库, 无 法 做 复 杂 的 业 务 处 理
如 何 处 理 机 房 容 灾 a. zookeeper 集 群 容 灾 leader/follower : hz(3 台 ) + cm3(2 台 ) + cm4(2 台 ) observer : us(2 台 ) 读 节 点, 加 速 读 请 求 b. manager 杭 州 多 机 房 部 署 node 节 点 客 户 端 容 灾, 链 接 失 败 后 切 到 下 一 台. c. node 跨 IDC 机 房 部 署 i. 依 赖 manager 的 HA 监 控 机 制 (node 无 法 自 己 监 控 自 己 )
otter 初 步 性 能 指 标 吞 吐 量 : 1. insert 30~40w/min 2. delete 60w/min latency : 1. 本 地 机 房 + 单 向 同 步 100ms 2. 中 美 机 房 + 单 向 / 双 向 同 步 2s 3. 中 美 机 房 + 文 件 10s 重 要 : 1. load 并 行 线 程 设 置 很 重 要, 取 决 目 标 库 载 入 能 力 2. latency 的 几 个 经 验 值, 要 根 据 数 据 量 和 高 峰 期 做 继 续 评 估
otter4 vs otter3 otter3 : a. 文 件 同 步 1000 / min, 60MB/min b. 数 据 记 录 20000 / min otter4 : a. 文 件 同 步 8000 / min, 500MB/min b. 数 据 记 录 400000 / min otter4 相 比 于 otter3, 是 一 个 数 量 级 上 的 飞 跃
otter" 慢 " 在 哪 里? 类 似 产 品 : a. 精 卫 延 迟 <100ms b. drc 延 迟 <1s otter" 慢 " 点 : a. 中 美 200ms 延 迟 vs 青 岛 70ms 延 迟 b. 中 美 2~6MB 带 宽 vs 青 岛 千 兆 光 纤
Otter4 使 用 约 定 1. 同 步 表 必 须 有 主 键 2. oracle 表 不 允 许 使 用 blob/clob (mysql 无 此 限 制 ) 3. 数 据 订 正 ( 几 种 case 需 要 和 otter 团 队 沟 通 ) a. 纯 数 据 订 正 超 过 1000w b. 带 文 件 订 正 超 过 50w c. 非 映 射 关 系 表 订 正 超 过 5000w (otter4 正 在 做 优 化, 尽 早 解 除 限 制 ) 4. 新 通 道 上 线 步 骤 ( 当 前 ) a. 明 确 同 步 需 求 i. 单 向 / 双 向 / 双 写 ( 需 要 明 确 主 要 写 入 站 点 ) / 文 件 同 步 b. 全 量 数 据 初 始 化 i. 行 记 录 + gmt_modified 修 改 ii. 插 入 同 步 记 录 到 retl_buffer 表
Otter4 使 用 约 定 5. 数 据 表 字 段 变 更 a. 只 允 许 新 增 字 段 到 末 尾 ( 删 除 字 段 慎 重 ) b. 字 段 新 增 先 加 目 标 库, 再 加 源 库 c. 双 向 同 步, 新 增 字 段 建 议 无 默 认 值 ( 可 确 保 同 步 无 挂 起 ) 6. 图 片 同 步, 需 要 先 写 图 片, 后 插 数 据 otter4 同 步 延 迟 比 较 低, 如 果 先 写 数 据, 后 写 图 片 或 者 两 者 并 发 写, 就 会 有 一 定 的 概 率 拿 到 数 据 后, 反 查 没 有 图 片, 导 致 图 片 同 步 丢 失
Otter 常 见 FAQ 1. 同 步 隔 离 性 a. otter pipeline 按 表 级 别 定 义 同 步 映 射, 不 同 pipeline 互 不 影 响 b. 接 入 erosa+canal, 按 库 存 储 数 据, 不 同 表 同 步 会 存 在 一 定 影 响 2. 同 步 延 迟 取 决 目 标 数 据 库 可 接 受 的 load 并 发 度 + 地 域 之 间 的 网 络 延 迟 3. 核 心 竞 争 力 a. 并 行 调 度 模 型,( 缓 解 extract/transform I/O latency 问 题 ) b. 双 向 同 步 / 双 A 同 步 ( 避 免 回 环 同 步 / 冲 突 检 测 ) c. pk hash + weight 并 行 载 入 ( 极 大 的 提 升 同 步 性 能 ) d. 接 入 canal, 高 效 获 取 增 量 数 据, 并 按 变 更 字 段 同 步 ( 高 效, 低 latency) e. 同 步 映 射 / 视 图 同 步 / 数 据 join / 数 据 filter ( 强 大 的 功 能 支 持 )
otter 资 源 1. otter manger http://otter.alibaba-inc.com 2. 相 关 文 档 http://b2b-doc.alibaba-inc.com/display/rc/otter http://b2b-doc.alibaba-inc.com/display/opentech/otter 3. 需 求 平 台 http://agile.alibaba-inc.com/browse/otter
TKS!