[{"data":1,"prerenderedAt":300},["ShallowReactive",2],{"docs-doc-\u002Fdocs\u002Fconcepts\u002Fflux":3,"docs-live-paths":249},{"id":4,"title":5,"body":6,"description":236,"extension":237,"meta":238,"navigation":244,"path":245,"seo":246,"stem":247,"__hash__":248},"content\u002Fdocs\u002Fconcepts\u002Fflux.md","数据管道与五库适配 · 衍流",{"type":7,"value":8,"toc":222},"minimark",[9,16,20,35,38,49,53,58,61,132,136,139,160,163,166,182,185,191,197,200],[10,11,12],"blockquote",{},[13,14,15],"p",{},"本文解决什么问题：一是企业已有数据库或多套系统，衍数能否运行在现有环境上、把分散数据整合进来（而不必推翻重来）；二是信创\u002F国产化项目中常见的问题——「能否使用达梦」。衍流将「运行在哪种数据库上」作为配置选项，而非迁移工程。",[17,18,19],"h2",{"id":19},"一句话定义",[13,21,22,26,27,30,31,34],{},[23,24,25],"strong",{},"衍流（Derive-Flux）"," 是衍数的数据处理方向：负责数据的",[23,28,29],{},"采集、清洗、转换与流转","，并让平台可以运行在主流数据库之上（MySQL、PostgreSQL、SQLite、达梦 DM8 等）。需要说明的是，ClickHouse 这类分析型引擎用于",[23,32,33],{},"数据分析侧的读取来源","，不充当业务主库。",[17,36,37],{"id":37},"它想解决什么问题",[13,39,40,41,44,45,48],{},"企业的数据很少只住在一个地方：业务系统一套库、历史数据一套、统计分析可能又接了一个数据仓库。衍流要解决的是",[23,42,43],{},"数据在不同存储之间如何顺畅流动","，以及",[23,46,47],{},"平台自身能不能跑在用户已有的数据库生态里","。",[17,50,52],{"id":51},"两个能力分开看","两个能力，分开看",[54,55,57],"h3",{"id":56},"多数据库适配平台能跑在哪","① 多数据库适配（平台能跑在哪）",[13,59,60],{},"衍数默认不在数据库上绑死用户。选择 MySQL 起步、或因为信创要求上达梦 DM8，是配置层面的选项，而不是另做一套系统的迁移工程。请把「业务主库」与「分析数据源」分开看：",[62,63,64,80],"table",{},[65,66,67],"thead",{},[68,69,70,74,77],"tr",{},[71,72,73],"th",{},"定位",[71,75,76],{},"数据库",[71,78,79],{},"常见场景",[81,82,83,98,108,118],"tbody",{},[68,84,85,92,95],{},[86,87,88,91],"td",{},[23,89,90],{},"业务主库","（平台系统本身运行其上）",[86,93,94],{},"MySQL \u002F PostgreSQL",[86,96,97],{},"通用业务系统",[68,99,100,102,105],{},[86,101],{},[86,103,104],{},"SQLite",[86,106,107],{},"轻量 \u002F 单机 \u002F 演示",[68,109,110,112,115],{},[86,111],{},[86,113,114],{},"达梦 DM8",[86,116,117],{},"信创 \u002F 国产化要求",[68,119,120,126,129],{},[86,121,122,125],{},[23,123,124],{},"分析数据源","（报表\u002F看数侧读取）",[86,127,128],{},"ClickHouse 等",[86,130,131],{},"大数据量分析查询（只读，不作为业务主库）",[54,133,135],{"id":134},"数据采集与流转数据怎么动起来","② 数据采集与流转（数据怎么动起来）",[13,137,138],{},"业务数据不会永远静止在一个库里，常见要流转的场景：",[140,141,142,150,157],"ul",{},[143,144,145,146,149],"li",{},"把外部系统数据",[23,147,148],{},"采","进来（接口、文件、其它库）；",[143,151,152,153,156],{},"清洗、对齐口径后",[23,154,155],{},"转","入业务或分析库；",[143,158,159],{},"按需输出给报表、大屏或下游系统。",[13,161,162],{},"衍流提供这类「采洗转流」的处理思路与落地路径，让数据能够被加工成业务真正可用的形态。",[17,164,165],{"id":165},"一个关键原则",[13,167,168,171,172,177,178,181],{},[23,169,170],{},"界面需要的数据，最终都由数据层提供。"," 在",[173,174,176],"a",{"href":175},"\u002Fdocs\u002Fconcepts\u002Fview","衍景","中看到的一个数字、一张图，追溯到底都是数据层的字段与口径在支撑。因此衍数强调",[23,179,180],{},"口径一致","：同一个指标（例如「销售额」）在所有页面指向同一份定义，而不是每张报表各自计算。",[17,183,184],{"id":184},"常见疑问",[13,186,187,190],{},[23,188,189],{},"必须用达梦 \u002F ClickHouse 才能用衍数吗？","\n不用。默认即可在主流数据库上运行；需要时再切到国产库，不需要为「换库」推翻系统。",[13,192,193,196],{},[23,194,195],{},"是不是所有业务都非要经过 ETL？","\n不是。多数业务数据直接在业务库内闭环；只有跨库、跨系统的数据才需要流转加工。衍流是「需要时可用」的能力，而不是强加给每个模块的负担。",[17,198,199],{"id":199},"相关阅读",[140,201,202,208,215],{},[143,203,204,205],{},"想知道数据最终长成什么界面 → ",[173,206,207],{"href":175},"衍景 · JSON 驱动界面",[143,209,210,211],{},"想了解部署在哪种数据库 → ",[173,212,214],{"href":213},"\u002Fdocs\u002Fdeploy\u002Foverview","部署与集成",[143,216,217,218],{},"想了解报表里的指标口径 → ",[173,219,221],{"href":220},"\u002Fdocs\u002Fguide\u002Fcrud","使用指南",{"title":223,"searchDepth":224,"depth":224,"links":225},"",2,[226,227,228,233,234,235],{"id":19,"depth":224,"text":19},{"id":37,"depth":224,"text":37},{"id":51,"depth":224,"text":52,"children":229},[230,232],{"id":56,"depth":231,"text":57},3,{"id":134,"depth":231,"text":135},{"id":165,"depth":224,"text":165},{"id":184,"depth":224,"text":184},{"id":199,"depth":224,"text":199},"数据怎么被采进来、洗干净、转出去，以及为什么衍数能在多种数据库上跑——国产化尤其关心的部分。","md",{"audience":239,"type":240,"section":241,"pr_order":231,"role":242,"duration":243},"public","concept","核心概念","实施搭建者","约 4 分钟",true,"\u002Fdocs\u002Fconcepts\u002Fflux",{"title":5,"description":236},"docs\u002Fconcepts\u002Fflux","brEZZga7Uds3srHAsitzCN2vxOcO02lxyE-2dFNdNvU",[250,252,254,256,257,259,260,262,263,265,267,269,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298],{"path":251},"\u002Fdocs\u002Fconcepts\u002Fai",{"path":253},"\u002Fdocs\u002Fconcepts\u002Fai-team",{"path":255},"\u002Fdocs\u002Fconcepts\u002Fcore",{"path":245},{"path":258},"\u002Fdocs\u002Fconcepts\u002Fmetrics",{"path":175},{"path":261},"\u002Fdocs\u002Fdemo-center",{"path":213},{"path":264},"\u002Fdocs\u002Ffaq",{"path":266},"\u002Fdocs\u002Fglossary",{"path":268},"\u002Fdocs\u002Fguide\u002Fai-kb",{"path":220},{"path":271},"\u002Fdocs\u002Fguide\u002Fdb-connect",{"path":273},"\u002Fdocs\u002Fguide\u002Fmodel-gen",{"path":275},"\u002Fdocs\u002Fintro\u002Fframeworks",{"path":277},"\u002Fdocs\u002Fintro\u002Foverview",{"path":279},"\u002Fdocs\u002Fintro\u002Fvalue",{"path":281},"\u002Fdocs\u002Fintro\u002Fwhy",{"path":283},"\u002Fdocs\u002Fmechanism\u002Fai-employee-task",{"path":285},"\u002Fdocs\u002Fmechanism\u002Fdata-flux",{"path":287},"\u002Fdocs\u002Fmechanism\u002Fmetrics-contract",{"path":289},"\u002Fdocs\u002Fmechanism\u002Fpermission",{"path":291},"\u002Fdocs\u002Fmechanism\u002Fpublish",{"path":293},"\u002Fdocs\u002Fquickstart\u002Fclone-template",{"path":295},"\u002Fdocs\u002Fquickstart\u002Fdemo-30s",{"path":297},"\u002Fdocs\u002Fquickstart\u002Ffive-minutes",{"path":299},"\u002Fdocs\u002Fsystem\u002Foverview",1788586879698]