Skip to content

Add Extended Clickbench benchmark for avg(duration) #15949

Closed
@alamb

Description

@alamb

Is your feature request related to a problem or challenge?

In #15748, @shruti2522 is working on a GroupsAccumulator for AVG durations, which should improve the performance significantly. However, we have no benchmarks that show the GroupsAccumulator is going faster as there appears to be no benchmark coverage of AVG(duration)

Describe the solution you'd like

I would like a benchmark we can run that covers AVG(duration)

You can make a duration by subtracting timestamps

> select arrow_typeof(now() - '2024-01-02'::timestamp);
+------------------------------------------+
| arrow_typeof(now() - Utf8("2024-01-02")) |
+------------------------------------------+
| Duration(Nanosecond)                     |
+------------------------------------------+
1 row(s) fetched.
Elapsed 0.028 seconds.

Describe alternatives you've considered

I recommend adding a "Clickbench" extended test, similarly how @Rachelint did in

The "extended" clickbench queries are described here: https://github.com/apache/datafusion/tree/main/benchmarks/queries/clickbench#extended-queries

And we could do some sort of average on timestamps,

The business question might be something like "average time since the start and end of the month for different combination of user agents, os and regions" to see if some of the combinations had different time patterns

Perhaps a query like this:

SELECT
  "RegionID",
  "UserAgent",
  "OS",
  AVG(to_timestamp("EventTime") - '2013-07-01T20:00:00'::timestamp) as a_start,
  AVG(to_timestamp("EventTime") - '2013-07-01T20:00:00'::timestamp) as a_end
FROM
  'hits_partitioned'
GROUP BY
  "RegionID",
  "UserAgent",
  "OS"
ORDER BY
  a_start, a_end DESC;

+----------+-----------+-----+------------------------------------------------+------------------------------------------------+
| RegionID | UserAgent | OS  | a_start                                        | a_end                                          |
+----------+-----------+-----+------------------------------------------------+------------------------------------------------+
| 31090    | 3         | 44  | -20 days -6 hours -18 mins -27.181355464 secs  | -20 days -6 hours -18 mins -27.181355464 secs  |
| 84213    | 7         | 44  | -18 days -21 hours -48 mins -6.036609637 secs  | -18 days -21 hours -48 mins -6.036609637 secs  |
| 31090    | 32        | 159 | -17 days -13 hours -35 mins -8.314443507 secs  | -17 days -13 hours -35 mins -8.314443507 secs  |
| 101      | 32        | 159 | -17 days -10 hours -6 mins -38.999603522 secs  | -17 days -10 hours -6 mins -38.999603522 secs  |
| 184      | 5         | 77  | -16 days -20 hours -43 mins -7.548815552 secs  | -16 days -20 hours -43 mins -7.548815552 secs  |
| 8389     | 2         | 2   | -16 days -14 hours -23 mins -37.047327426 secs | -16 days -14 hours -23 mins -37.047327426 secs |
| 15748    | 5         | 44  | -16 days -9 hours -38 mins -52.619671823 secs  | -16 days -9 hours -38 mins -52.619671823 secs  |
| 220      | 88        | 44  | -16 days -5 hours -32 mins -17.133638324 secs  | -16 days -5 hours -32 mins -17.133638324 secs  |
| 84213    | 29        | 44  | -16 days -4 hours -39 mins -53.722202896 secs  | -16 days -4 hours -39 mins -53.722202896 secs  |
| 135      | 88        | 2   | -16 days -3 hours -35 mins -20.175963897 secs  | -16 days -3 hours -35 mins -20.175963897 secs  |
| 166      | 5         | 126 | -16 days -3 hours -28 mins -4.114895438 secs   | -16 days -3 hours -28 mins -4.114895438 secs   |
| 14496    | 2         | 44  | -16 days -2 hours -33 mins -24.030979246 secs  | -16 days -2 hours -33 mins -24.030979246 secs  |
| 9723     | 3         | 44  | -15 days -22 hours -25 mins -10.918350813 secs | -15 days -22 hours -25 mins -10.918350813 secs |
| 30367    | 3         | 44  | -15 days -17 hours -1 mins -36.068866689 secs  | -15 days -17 hours -1 mins -36.068866689 secs  |
| 616      | 7         | 44  | -15 days -11 hours -54 mins -44.193933287 secs | -15 days -11 hours -54 mins -44.193933287 secs |
| 548      | 3         | 2   | -15 days -9 hours -38 mins -36.282580625 secs  | -15 days -9 hours -38 mins -36.282580625 secs  |
| 169      | 3         | 9   | -15 days -9 hours -34 mins -16.609244836 secs  | -15 days -9 hours -34 mins -16.609244836 secs  |
| 30367    | 5         | 2   | -15 days -9 hours -25 mins -47.249590242 secs  | -15 days -9 hours -25 mins -47.249590242 secs  |
| 548      | 2         | 2   | -15 days -6 hours -50 mins -58.724296054 secs  | -15 days -6 hours -50 mins -58.724296054 secs  |
| 12178    | 5         | 2   | -15 days -6 hours -10 mins -15.636589162 secs  | -15 days -6 hours -10 mins -15.636589162 secs  |
| 16308    | 3         | 2   | -15 days -5 hours -4 mins -5.694121528 secs    | -15 days -5 hours -4 mins -5.694121528 secs    |
| 8264     | 3         | 2   | -15 days -5 hours -2 mins -30.789153859 secs   | -15 days -5 hours -2 mins -30.789153859 secs   |
| 10997    | 2         | 44  | -15 days -3 hours -24 mins -10.717868021 secs  | -15 days -3 hours -24 mins -10.717868021 secs  |
| 169      | 88        | 126 | -15 days -3 hours -1 mins -52.667383961 secs   | -15 days -3 hours -1 mins -52.667383961 secs   |
| 27466    | 2         | 44  | -15 days -2 hours -21 mins -8.239206896 secs   | -15 days -2 hours -21 mins -8.239206896 secs   |
| 51       | 2         | 126 | -15 days -1 hours -30 mins -47.897427363 secs  | -15 days -1 hours -30 mins -47.897427363 secs  |
| 26297    | 5         | 2   | -14 days -18 hours -52 mins -40.572961901 secs | -14 days -18 hours -52 mins -40.572961901 secs |
| 51       | 82        | 74  | -14 days -17 hours -31 mins -6.159516906 secs  | -14 days -17 hours -31 mins -6.159516906 secs  |
| 226      | 7         | 126 | -14 days -17 hours -30 mins -12.258864200 secs | -14 days -17 hours -30 mins -12.258864200 secs |
| 15332    | 3         | 2   | -14 days -13 hours -45 mins -21.384163359 secs | -14 days -13 hours -45 mins -21.384163359 secs |
| 712      | 3         | 44  | -14 days -12 hours -27 mins -58.241500454 secs | -14 days -12 hours -27 mins -58.241500454 secs |
| 24187    | 2         | 44  | -14 days -12 hours -5 mins -43.206212570 secs  | -14 days -12 hours -5 mins -43.206212570 secs  |
| 169      | 56        | 44  | -14 days -9 hours -48 mins -26.366752235 secs  | -14 days -9 hours -48 mins -26.366752235 secs  |
| 12       | 88        | 2   | -14 days -6 hours -2 mins -31.949143066 secs   | -14 days -6 hours -2 mins -31.949143066 secs   |
| 14966    | 3         | 44  | -14 days -2 hours -51 mins -56.613919863 secs  | -14 days -2 hours -51 mins -56.613919863 secs  |
| 53       | 88        | 44  | -13 days -23 hours -42 mins -29.324289608 secs | -13 days -23 hours -42 mins -29.324289608 secs |
| 247      | 88        | 2   | -13 days -23 hours -34 mins -24.710721929 secs | -13 days -23 hours -34 mins -24.710721929 secs |
| 54       | 5         | 74  | -13 days -21 hours -56 mins -5.209142987 secs  | -13 days -21 hours -56 mins -5.209142987 secs  |
| 9955     | 5         | 44  | -13 days -19 hours -51 mins -10.431498276 secs | -13 days -19 hours -51 mins -10.431498276 secs |
| 34       | 3         | 126 | -13 days -19 hours -27 mins -45.587965629 secs | -13 days -19 hours -27 mins -45.587965629 secs |
| .                                                                                                                            |
| .                                                                                                                            |
| .                                                                                                                            |
+----------+-----------+-----+------------------------------------------------+------------------------------------------------+
138826 row(s) fetched. (First 40 displayed. Use --maxrows to adjust)
Elapsed 0.507 seconds.

Additional context

No response

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions