Reading view

There are new articles available, click to refresh the page.

doris 的问题

wueryi:

现在的背景:

  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. 还有其他更好的方案吗 期望大佬们的解答
❌