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

doris 的问题

  •  
  •   wueryi · 18 小时 45 分钟前 · 342 次点击

    现在的背景:

    1. 现有数据在 es 中 关键的字段是 nested 结构 一个结构体的数组 例如字段叫 subsidy_data 值是:[{"id":3,"commission":0},{"id":12,"commission":3}] 现在想同步到 doris 中 做一些聚合计算 例如查询 subsidy_data.id=3 的所有数据

    2. doris 目标表是 UNIQUE 类型 doris 版本是 3.0 阿里云的 selected 实例 同步类型是 stream load 批量 同步到 doris 的时候目前可以针对 subsidy_data 这个字段 变成 json 或者 ARRAY<STRUCT<>>

    3. 但是目前看 doris 的文档 貌似不能通过函数对“json 数组”或者“ARRAY<STRUCT<>> ” 进行类似 es 的查询

    4. subsidy_data 的字段 可能存在各种变化 例如从长度等于 2 变成等于 0 所以可能更新数据的时候需要删除之前同 ralation_id 的所有数据 再执行插入

    5. 无法直接 cdc 同步原始表 因为中间还做了一些其他的逻辑处理 subsidy_data 只是一个示例 实际上还有类似的字段好几个

    我的尝试

    1. 使用 insert into 配合事务插入主表和 多个关联表数据 但是性能不够快 没有 stream load 快
    2. 尝试使用异步物化针对主表 物化出关联表 貌似不行
    3. 尝试过 2pc 2 阶段提交 保证 stream load 的一致性 貌似对开启 cow 的表不支持

    我的问题是:

    1. 是不是必须要拆分出关联表才可以进行类似 es 的 nested 的 1 对多的查询
    2. 如果不拆分出关联表 有没有其他的方案能实现?我尝试异步物化视图解 json 或者数据貌似不行
    3. 如果拆分出关联表
      • 怎么保证主表和关联表的一致性
      • 主表和子表的 left join 可以建物化索引吗 我看着 starrocks 支持

    其他

    1. 还有其他更好的方案吗 期望大佬们的解答
    1 条回复
    liprais
        1
    liprais  
       12 小时 26 分钟前
    你是要对一行里面的数组做关联么?
    你可以先用 explode 之类的函数把这个数组弄成一行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1031 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:09 · PVG 06:09 · LAX 14:09 · JFK 17:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.