apache / pinot

Apache Pinot - A realtime distributed OLAP datastore
https://pinot.apache.org/
Apache License 2.0
5.5k stars 1.29k forks source link

[upsert] integrate partial upsert with groovy evaluator #11174

Open deemoliu opened 1 year ago

deemoliu commented 1 year ago

Partial upsert let users choose to update only specific columns and ignore the rest, and apply complex merging logic based on the existing row and the new row that shares the same primary key.

Pinot allows you to run any function using Apache Groovy scripts. To support complex use cases (e.g merge previous and new values based on conditions), we proposed to enhance partial upsert with groovy transformation function.

a few challenges to consider

deemoliu commented 1 year ago

hello @Jackie-Jiang, this is one of the feature we have discussed with you. can you assign this task to rohityadav1993 and me?

Jackie-Jiang commented 1 year ago

@deemoliu In order to assign an issue to a non-committer, he/she needs to reply to the issue

rohityadav1993 commented 1 year ago

@Jackie-Jiang, you can assign it to me now. I will share a doc on the approach in the next few days.

rohityadav1993 commented 1 year ago

@deemoliu @Jackie-Jiang , prepared a small doc with initial thought on how to support this: https://docs.google.com/document/d/1bBTCYZFP2stvzc6xZUOEh-XweVgC9WfD7uiSPbKtaZY/edit?usp=sharing