Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
269 views
in Technique[技术] by (71.8m points)

java - Is there a workaround for foreignKeyExtractor restriction for KTable-KTable leftJoin in Kafka Streams?

How to implement simple operation such as this in Kafka Streams?

#### department
id | name | type | active
#### employee
id | full_name | department_id
-- show number of employee for every active internal department
SELECT d.id, d.name, count(e.id) AS employee_count
FROM department d 
-- left join, foreign key extracted from the right table
LEFT JOIN employee e ON d.id = e.department_id
WHERE d.type = 'I' AND d.active = true
GROUP BY d.id, d.name

For some reason Kafka Streams API doesn't allow extracting foreign key from the right table:

// key: id, value: department
KTable<Long, Department> kTableDepartment = ...;
// key: id, value: employee
KTable<Long, Employee> kTableEmployee = ...;
        
kTableDepartment.leftJoin(
        kTableEmployee,
        // foreign key extractor is available only for primary source (left table)
        (Department department) -> ...,
        new ValueJoiner<>() {
            @Override
            public Object apply(Department department, Employee employee) {
                return ...;
            }
        });
question from:https://stackoverflow.com/questions/65921488/is-there-a-workaround-for-foreignkeyextractor-restriction-for-ktable-ktable-left

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...