DTStack / DTStack/flinkStreamSQL

Kudu维表在做join的时候,过滤条件不起作用

未關閉
#318 2 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Java
星號
2k
分支
913
PR 合併指標
30 天內沒有已合併 PR

描述

` insert into dim_kafka_sink
SELECT
p.no,
p.code,
count(c.phone) tag_test_1
from bdl_kafka_source s
inner join bdl_kudu_side c on c.user_id = s.user_id
`

使用1.8版本,在测试的时候,发现统计的结果是s表和c做笛卡尔积的数量,怀疑join中的on条件没有起作用。通过源码断点调试,发现下面的循环不能进去:

![image](https://user-images.githubusercontent.com/6110570/81462336-61f15b80-91e4-11ea-8be7-01369fb8b3f0.png)

继续排查发现KuduAsyncSideInfo类的buildEqualInfo方法是空的实现, dealOneEqualCon也方法也没有被调用

貢獻指南

這個儲存庫沒有索引到貢獻指南

研究方向

報告指出了 KuduAsyncSideInfo.buildEqualInfo,並說明 dealOneEqualCon 從未被呼叫;首先定位這些方法,並針對 Kudu 側表重現所示的 SQL。追蹤 join 的設定,驗證套用了 ON 條件,而不是產生笛卡兒積計數,然後為修正後的行為新增或更新涵蓋測試。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
java, sql
領域
databases
Issue 類型
缺陷
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
30/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。