V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
RedBeanIce
V2EX  ›  数据库

搭建 [物联网] 数据中台

  •  
  •   RedBeanIce · 197 天前 · 3456 次点击
    这是一个创建于 197 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我们是一个 30 人不到的小开发团队。

    目前选型数据库是 tdengine ,但是遗留了很多老系统有数据库 sql server ,mysql 等等

    我们要将这些其他数据库的数据同步到 td 里面,我们查询了很多文档,类似 datax 方案,类似 flink cdc 方案,消息队列方案,流处理方案,数据库本身自带的主从方案。

    请问一下问题:
    1 ,我们选择 td 数据库有问题么
    2 ,数据同步方案有推荐的么,我们目前准备使用 datax ,原因是他简单。
    我们没有人维护 flink 大数据相关的集群,也没有人去维护消息队列的高可用。
    第 1 条附言  ·  196 天前
    需求

    1 ,将多个老系统的数据,处理到新系统中。( td ,mysql ,等等)
    2 ,将 td 中的数据,进行设备监测,展示,等等。(只查询不修改)
    50 条回复    2024-05-31 09:50:44 +08:00
    qiyilai
        1
    qiyilai  
       197 天前   ❤️ 1
    数仓用 doris
    SbloodyS
        2
    SbloodyS  
       197 天前   ❤️ 1
    一般衡量的标准有预算、数据团队大小、业务体量(数据量)、需求,有了这些才好进一步评估
    NoobPhper
        3
    NoobPhper  
       197 天前   ❤️ 1
    tdengine 不是时序性数据库吗, 轻量级 OLAP 应该能做, 但是稍微复杂点的这玩意不好做, 不要把架构整这么复杂, 如果是云上服务的话 建议 买云服务, 因为现在的 无论是 HTAP Database 还是纯 OLAP database 如果自建 , 运维(安全稳定)都是极大的心里负担
    hero1874
        4
    hero1874  
       197 天前   ❤️ 1
    我看 tdengine 也是针对物联网的,也许会比较契合你们物联网数据中台的业务,但还是像 2 楼说的那样才更好评估,如果你们没有实时性的要求,其实也没太大必要投入服务器成本和运维成本去搞一套 flink 集群,用 dolphinscheduler 海豚调度去配合 datax 其实也是可以的,如果没有对时序数据库的需求,可以调研看下 doris 和 starrocks ,起码这两个运维会好很多
    RedBeanIce
        5
    RedBeanIce  
    OP
       197 天前
    @SbloodyS
    @hero1874

    预算约等于无,数据团队都是开发在临时做一下。数据量大概超过一千个设备,说是 3-5 秒采集一次数据。

    需求是问的那样,物联网数据中台,将多个数据库的数据采集到里面。
    进行数据的分析,预警,报表,等等
    RedBeanIce
        6
    RedBeanIce  
    OP
       197 天前
    @qiyilai 好的!我去和领导聊一下,,,目前定的是 td
    RedBeanIce
        7
    RedBeanIce  
    OP
       197 天前
    @NoobPhper 预算约等于无,都是自己搭建的。
    jiakme
        8
    jiakme  
       197 天前
    1. 梳理需求背景和当前现状:a. 人员素养 b. 数据量,冷热情况,TPS/QPS c. 未来数据清洗情况
    jiakme
        9
    jiakme  
       197 天前
    1. 梳理需求背景和当前现状:a. 人员素养 b. 数据量,冷热情况,TPS/QPS c. 未来数据清洗情况,数据分析维度 d. 当下硬件条件,网络情况,技术栈
    2. 结合前述条件分析引入技术栈情况:如果数据局部热,大部分冷,完全可以采用冷数据写入方式,只要有一个热点数据接收即可,无须引入 cdc ; TPS 和数据量少,直接用 mysql 抗,高版本 mysql/pgsql ,简单数据 TPS 200 ,几千万数据量随便用;中间件需要取舍一下轻量级和重量级,flink cdc 比较轻量,可以直接内嵌 springboot 使用,无须作为 flink task 集成,datax 有点重
    3. 编写 demo ,流程可行性确认,成本确认
    4. 方案实现和上线
    xueling
        10
    xueling  
       197 天前   ❤️ 1
    你说的物联网的数据中台,我觉得应该有两方面作用:1 是物联网设备上报的原始消息的读写,2 是相关数据指标的统计监控,我觉得第一部分的功能选择时序性数据库还可以,但第二部分的功能其实很牵强,虽然时序数据库也可能有这方面的功能,但性能不会很强。我建议您了解一下我的开源项目: https://github.com/xl-xueling/xl-lighthouse ,虽然是大数据项目但后期维护其实非常简单。支持一键部署、数据自动备份、可以灵活扩容,轻量级使用,可以快速实现大批量数据指标。
    xianzhe
        11
    xianzhe  
       197 天前
    不要 ALL in 一个地方,物联网数据上报和分析显然一个写入要求高,一个读取要求高,没有哪个数据库能做到既要又要的。你应该选择一个写入很快的数据库,LSM 类型的都可以,这里面保存原始数据。数据通过 ETL 后存入另一个 OLAP 数据库,这样起码做到了读写分离。
    zhonj
        12
    zhonj  
       197 天前
    @RedBeanIce #7 优化一个开发,你就会发现服务器有丰富的预算了,每个月 2 万块钱投入云服务器,速度不仅块,服务也有保障🤣,很多东西直接一把梭就好了,系统复杂性,可维护性都会有很大的提升😊
    RedBeanIce
        13
    RedBeanIce  
    OP
       197 天前
    @xueling 非常感谢!我去试试!
    RedBeanIce
        14
    RedBeanIce  
    OP
       197 天前
    @xianzhe 可惜我们没有往这一块考虑。

    目前想的是,先把其他地方的数据捞取到 td 。
    RedBeanIce
        15
    RedBeanIce  
    OP
       197 天前
    @zhonj ~~~~~
    haimianbihdata
        16
    haimianbihdata  
       197 天前 via Android
    @qiyilai 物联网这块应该用的比较多的是一些时序数据库吧。doris 在这一块也好使吗?
    levelworm
        17
    levelworm  
       197 天前 via Android   ❤️ 1
    业务上数仓的需求是啥?选型和开发都是跟着需求走。
    humbass
        18
    humbass  
       196 天前
    redis 队列缓冲下 --> TDEngine.
    kk2syc
        19
    kk2syc  
       196 天前
    先考虑 raw_data 统一格式存储,确保不会漏掉任何一条上报数据。那么,剩下的都是小事情,哪怕不同需求、不同团队甚至不同数据库重构都可以。
    RedBeanIce
        20
    RedBeanIce  
    OP
       196 天前
    @levelworm 如 append 所示
    512357301
        21
    512357301  
       196 天前 via Android   ❤️ 1
    只说一句,免费 0 预算不建议用国产,因为使用体验并不好。。。(文档缺失或不通顺,使用案例少)
    0 预算建议用国外的,或者行业热门的,资料、文档多的。
    ZGame
        22
    ZGame  
       196 天前
    相比较时序数据库 我觉得关系型数据库+es 缓存 这种更方便把...
    Dream95
        23
    Dream95  
       196 天前   ❤️ 1
    没有信创要求,Postgresql+Timescaledb 吧更省事
    brant2ai
        24
    brant2ai  
       196 天前
    @xueling 前段时间就看到你的项目,原来大佬就是你呀
    brant2ai
        25
    brant2ai  
       196 天前   ❤️ 1
    TDEngine 只适合存放数据,到使用的时候还是需要 OLAP ,TDEngine 不太适合查询
    NoobPhper
        26
    NoobPhper  
       196 天前   ❤️ 1
    @RedBeanIce 看你的需求 , 第一个需求只要迁移数据就好了, 数据体量 还有 前端业务 是影响数据库选型的唯一标准,

    第二个需求, 前置套个队列, 然后写个程序 处理 后转成 metrics , 放到 prometheus , 然后 配合 grafana embed dashboard ,你们前端开发量都能省一大半
    hero1874
        27
    hero1874  
       196 天前   ❤️ 1
    @RedBeanIce #5 这样看的话,可以看下 doris starrocks ,当然如果没有时序相关需求,有的话,这俩就不大合适了
    qiyilai
        28
    qiyilai  
       196 天前   ❤️ 1
    @haimianbihdata 推测一下,这种类似的项目一般都是对接多种数据源,数据处理后展示在大屏,或者对接 bi ,以及做机器学习,数据挖掘分析之类的;会涉及到复杂的聚合查询,td 适合去对接传感器数据的存储,不适合做为数仓使用
    Karte
        29
    Karte  
       196 天前   ❤️ 1
    td engine 虽然是很适合物联网数据, 但是极其不稳定, 很不推荐. bug 没人修, 版本升级问题, 驱动问题.
    raywong
        30
    raywong  
       196 天前   ❤️ 1
    自建投入生产使用过一段时间的 TD ,当时使用的版本是 3.0.2.x ,碰到过好几个问题:
    1. 乱序、重复写入数据会导致性能下降
    2. 业务上是在 TD 的子表查询,某些子表出现过以下问题:
    - 由于数据涉及到更新(覆盖写入),导致数据无法查询最新状态
    - 查询总数量 COUNT(*) 失败
    3. 3 个节点的集群出现过宕机,集群无法恢复工作
    4. 数据设置了 TTL 后只是逻辑删除,数据还是保留在磁盘上,需要手动执行命令才会清空磁盘

    -----------------------------

    以上问题目前最新版本可能已经修复了(未关注)。由于是自建集群,碰到问题后只能升级版本解决,但是线上环境升级数据库是个风险很大的操作,而且不可能每次一有问题就升级版本,折腾了一段时间最后还是停用了 TD 。
    选择什么数据库要考虑数据类型、数据量、数据写入、查询方式以及运维成本,如果 OP 想要自建,考虑好遇到问题要怎么升级版本。
    tuotuolala
        31
    tuotuolala  
       196 天前
    交给乙方
    MoYi123
        32
    MoYi123  
       196 天前   ❤️ 1
    反正数据量这么小, 不如在 mysql 和 postgresql 里挑一个, 可以保证在数据库上一定不会出问题. 能用的工具也很多.
    janus77
        33
    janus77  
       196 天前
    只查询不修改?我觉得这个需求后期大概率会变。我建议用主流的 mysql 。各种 feature 成熟,后期扩展性高
    QWE321ASD
        34
    QWE321ASD  
       196 天前   ❤️ 1
    不可能不修改,我们也做过类似的,经常因为一些原因要修改数据
    QWE321ASD
        35
    QWE321ASD  
       196 天前   ❤️ 1
    我们懒得搞那么复杂,就单纯一个 mysql 然后同步到 clickhouse 里面,一年多没事
    xuhui54
        36
    xuhui54  
       196 天前
    先评估数据体量,qps ,数据情况、业务情况,再定技术。
    yinxs2003
        37
    yinxs2003  
       196 天前 via Android   ❤️ 1
    @qiyilai doris 是 olap 工具,当数仓的结果肯定是提桶跑路
    yinxs2003
        38
    yinxs2003  
       196 天前 via Android
    Datax 可以,挺稳定的,优势是不用开发,多种数据源接入数仓。td 没听过估计不太行。看你提到数据接入,那估计就得在 hive clickhouse es 这里选型
    VoiceEXONE
        39
    VoiceEXONE  
       196 天前 via iPhone   ❤️ 1
    如 append2 中的需求,你会选择直接拉取 TD 或者 influxdb 中的数据做分析还是 先把这些数据转存 OLAP ( postgresql )进行分析?
    yinxs2003
        40
    yinxs2003  
       196 天前 via Android   ❤️ 1
    同意楼上,如果量不大,一个 clickhouse 是不是就能搞定
    RedBeanIce
        41
    RedBeanIce  
    OP
       196 天前
    @VoiceEXONE 猜想的是,直接查询 td 数据,然后进行数据分析。
    hero1874
        42
    hero1874  
       196 天前
    @yinxs2003 #40 楼主公司在运维投入不会太多,clickhouse 要考虑运维啥的,我们从 clickhouse 转 doris 其中一个原因就是 clickhouse 运维的问题
    yinxs2003
        43
    yinxs2003  
       196 天前
    @hero1874 额,那确实得考虑(笑
    yinxs2003
        44
    yinxs2003  
       196 天前 via Android
    @RedBeanIce 数据分析不都是 hive 吗?难道还有别的选择……
    yinxs2003
        45
    yinxs2003  
       196 天前 via Android
    @yinxs2003 量小 doris 也不是不可以,但我们隔壁部门 doris 数仓总崩
    FanError
        46
    FanError  
       196 天前
    @hero1874 老铁展开说说,clickhouse 要运维些啥内容。。我们没专业运维,准备选这个。狗头.jpg
    yinxs2003
        47
    yinxs2003  
       196 天前 via Android
    @FanError 运维成本高被,总能碰到些有的没的问题
    yinxs2003
        48
    yinxs2003  
       196 天前 via Android
    @yinxs2003 分布式的 那数据量运维成本就没不高的
    yinxs2003
        49
    yinxs2003  
       196 天前 via Android
    顺便说一句,可以考虑 mongo 集群,这个作为成本应该比较低,数据量千万级别应该可以支撑,我猜的
    hero1874
        50
    hero1874  
       195 天前
    @FanError #46 差不多就是回复你的老哥说的那些,再加上扩容缩容,分布式表配置等等,如果你们没有专门的运维慎重考虑下,我当时除了数据开发还兼着 ck 的运维,头痛啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   932 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 19:17 · PVG 03:17 · LAX 11:17 · JFK 14:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.