-
Notifications
You must be signed in to change notification settings - Fork 3.6k
[feat](seq mapping) uniq table supports multi-stream merging through sequence mapping #54936
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
049b532 to
cfe00a4
Compare
|
run buildall |
cfe00a4 to
a264265
Compare
|
run buildall |
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
TPC-H: Total hot run time: 34750 ms |
TPC-DS: Total hot run time: 185399 ms |
ClickBench: Total hot run time: 32.47 s |
a264265 to
637b19e
Compare
637b19e to
9b45113
Compare
|
run buildall |
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
TPC-H: Total hot run time: 34821 ms |
TPC-DS: Total hot run time: 189967 ms |
ClickBench: Total hot run time: 29.65 s |
5df34d4 to
1882828
Compare
|
run buildall |
1 similar comment
|
run buildall |
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
|
run feut |
|
run beut |
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
FE Regression Coverage ReportIncrement line coverage |
|
run cloud_p0 |
|
run feut |
|
run nonConcurrent |
FE UT Coverage ReportIncrement line coverage |
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
FE Regression Coverage ReportIncrement line coverage |
|
run feut |
|
run nonConcurrent |
|
run cloud_p0 |
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
1 similar comment
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
FE Regression Coverage ReportIncrement line coverage |
1 similar comment
FE Regression Coverage ReportIncrement line coverage |
7046f2c to
4338cd7
Compare
|
run buildall |
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
TPC-DS: Total hot run time: 190450 ms |
ClickBench: Total hot run time: 30.7 s |
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
FE Regression Coverage ReportIncrement line coverage |
| qt_sql "select * from $tableName;" | ||
| qt_sql "select a, b, c, d, e from $tableName;" | ||
| } | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add cases for other table types, like duplicate and aggregate.
| columns.forEach(x -> columnName.add(x.getName().toLowerCase())); | ||
| resultSeqMap = new ArrayList<>(); | ||
| for (Map.Entry<String, List<String>> entry : columnSeqMapping.entrySet()) { | ||
| int sequenceColumnIdx = columnName.indexOf(entry.getKey().toLowerCase()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we'd better use column unique id here.
| private Type sequenceType; | ||
| @Getter | ||
| @Setter | ||
| private Map<String, List<String>> columnSeqMapping = null; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add comment for key and value, and we'd better use column UniqueId for column.
| }, insertSql, true,"${tbName}") | ||
|
|
||
| sql """ DROP TABLE IF EXISTS ${tbName} """ | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add a case in which there is no seqmap, then adding a seqmap to the table.
| using PatternToIndex = std::unordered_map<std::string, std::vector<TabletIndexPtr>>; | ||
| std::unordered_map<int32_t, PatternToIndex> _index_by_unique_id_with_pattern; | ||
| std::unordered_map<uint32_t /* seq cid */, std::vector<uint32_t> /* value cids */> _seq_map; | ||
| std::unordered_map<uint32_t /* cid */, uint32_t /* sequence */> _value_to_seq; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need a better name and comment.
4338cd7 to
4aaf0b2
Compare
In some business scenarios, business operations need to update different columns in the same wide table through two or more data streams. For example, one data stream will write in real time to update some fields of this table; another data stream will perform imports on demand to update other columns of this table. During the update process, both data stream jobs need to ensure the order of replacement; and during queries, data from all columns should be queryable.
documentation: apache/doris-website#2954