mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-21 07:01:59 +00:00
refactored
This commit is contained in:
parent
907115a4c4
commit
8ed90864cb
@ -52,8 +52,8 @@ template <typename Value, bool float_return> using FuncQuantilesTDigest = Aggreg
|
||||
template <typename Value, bool float_return> using FuncQuantileTDigestWeighted = AggregateFunctionQuantile<Value, QuantileTDigest<Value>, NameQuantileTDigestWeighted, true, std::conditional_t<float_return, Float32, void>, false>;
|
||||
template <typename Value, bool float_return> using FuncQuantilesTDigestWeighted = AggregateFunctionQuantile<Value, QuantileTDigest<Value>, NameQuantilesTDigestWeighted, true, std::conditional_t<float_return, Float32, void>, true>;
|
||||
|
||||
template <typename Value, bool float_return> using FuncQuantileBfloat16 = AggregateFunctionQuantile<Value, QuantileBfloat16Histogram<Value>, NameQuantileBfloat16, false, std::conditional_t<float_return, Float64, void>, false>;
|
||||
template <typename Value, bool float_return> using FuncQuantilesBfloat16 = AggregateFunctionQuantile<Value, QuantileBfloat16Histogram<Value>, NameQuantilesBfloat16, false, std::conditional_t<float_return, Float64, void>, true>;
|
||||
template <typename Value, bool float_return> using FuncQuantileBFloat16 = AggregateFunctionQuantile<Value, QuantileBFloat16Histogram<Value>, NameQuantileBFloat16, false, std::conditional_t<float_return, Float64, void>, false>;
|
||||
template <typename Value, bool float_return> using FuncQuantilesBFloat16 = AggregateFunctionQuantile<Value, QuantileBFloat16Histogram<Value>, NameQuantilesBFloat16, false, std::conditional_t<float_return, Float64, void>, true>;
|
||||
|
||||
|
||||
template <template <typename, bool> class Function>
|
||||
@ -158,8 +158,8 @@ void registerAggregateFunctionsQuantile(AggregateFunctionFactory & factory)
|
||||
factory.registerFunction(NameQuantileTDigestWeighted::name, createAggregateFunctionQuantile<FuncQuantileTDigestWeighted>);
|
||||
factory.registerFunction(NameQuantilesTDigestWeighted::name, createAggregateFunctionQuantile<FuncQuantilesTDigestWeighted>);
|
||||
|
||||
factory.registerFunction(NameQuantileBfloat16::name, createAggregateFunctionQuantile<FuncQuantileBfloat16>);
|
||||
factory.registerFunction(NameQuantilesBfloat16::name, createAggregateFunctionQuantile<FuncQuantilesBfloat16>);
|
||||
factory.registerFunction(NameQuantileBFloat16::name, createAggregateFunctionQuantile<FuncQuantileBFloat16>);
|
||||
factory.registerFunction(NameQuantilesBFloat16::name, createAggregateFunctionQuantile<FuncQuantilesBFloat16>);
|
||||
|
||||
/// 'median' is an alias for 'quantile'
|
||||
factory.registerAlias("median", NameQuantile::name);
|
||||
@ -172,7 +172,7 @@ void registerAggregateFunctionsQuantile(AggregateFunctionFactory & factory)
|
||||
factory.registerAlias("medianTimingWeighted", NameQuantileTimingWeighted::name);
|
||||
factory.registerAlias("medianTDigest", NameQuantileTDigest::name);
|
||||
factory.registerAlias("medianTDigestWeighted", NameQuantileTDigestWeighted::name);
|
||||
factory.registerAlias("medianBfloat16", NameQuantileBfloat16::name);
|
||||
factory.registerAlias("medianBFloat16", NameQuantileBFloat16::name);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -9,7 +9,7 @@
|
||||
#include <AggregateFunctions/QuantileExactWeighted.h>
|
||||
#include <AggregateFunctions/QuantileTiming.h>
|
||||
#include <AggregateFunctions/QuantileTDigest.h>
|
||||
#include <AggregateFunctions/QuantileBfloat16Histogram.h>
|
||||
#include <AggregateFunctions/QuantileBFloat16Histogram.h>
|
||||
|
||||
#include <AggregateFunctions/IAggregateFunction.h>
|
||||
#include <AggregateFunctions/QuantilesCommon.h>
|
||||
@ -229,7 +229,7 @@ struct NameQuantileTDigestWeighted { static constexpr auto name = "quantileTDige
|
||||
struct NameQuantilesTDigest { static constexpr auto name = "quantilesTDigest"; };
|
||||
struct NameQuantilesTDigestWeighted { static constexpr auto name = "quantilesTDigestWeighted"; };
|
||||
|
||||
struct NameQuantileBfloat16 { static constexpr auto name = "quantileBfloat16"; };
|
||||
struct NameQuantilesBfloat16 { static constexpr auto name = "quantilesBfloat16"; };
|
||||
struct NameQuantileBFloat16 { static constexpr auto name = "quantileBFloat16"; };
|
||||
struct NameQuantilesBFloat16 { static constexpr auto name = "quantilesBFloat16"; };
|
||||
|
||||
}
|
||||
|
@ -16,7 +16,7 @@ namespace ErrorCodes
|
||||
}
|
||||
|
||||
template <typename Value>
|
||||
struct Bfloat16Histogram
|
||||
struct BFloat16Histogram
|
||||
{
|
||||
using bfloat16 = UInt16;
|
||||
using Data = HashMap<bfloat16, size_t>;
|
||||
@ -39,7 +39,7 @@ struct Bfloat16Histogram
|
||||
data[val] += to_add;
|
||||
}
|
||||
|
||||
void merge(const Bfloat16Histogram & rhs)
|
||||
void merge(const BFloat16Histogram & rhs)
|
||||
{
|
||||
for (const Float32 & value : rhs.array)
|
||||
{
|
@ -1,6 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include <AggregateFunctions/Bfloat16Histogram.h>
|
||||
#include <AggregateFunctions/BFloat16Histogram.h>
|
||||
|
||||
namespace DB
|
||||
{
|
||||
@ -10,9 +10,9 @@ namespace ErrorCodes
|
||||
}
|
||||
|
||||
template <typename Value>
|
||||
struct QuantileBfloat16Histogram
|
||||
struct QuantileBFloat16Histogram
|
||||
{
|
||||
using Histogram = Bfloat16Histogram<Value>;
|
||||
using Histogram = BFloat16Histogram<Value>;
|
||||
Histogram data;
|
||||
|
||||
void add(const Value & x) { data.add(x); }
|
||||
@ -20,10 +20,10 @@ struct QuantileBfloat16Histogram
|
||||
template <typename Weight>
|
||||
void add(const Value &, const Weight &)
|
||||
{
|
||||
throw Exception("Method add with weight is not implemented for QuantileBfloat16Histogram", ErrorCodes::NOT_IMPLEMENTED);
|
||||
throw Exception("Method add with weight is not implemented for QuantileBFloat16Histogram", ErrorCodes::NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
void merge(const QuantileBfloat16Histogram & rhs) { data.merge(rhs.data); }
|
||||
void merge(const QuantileBFloat16Histogram & rhs) { data.merge(rhs.data); }
|
||||
|
||||
void serialize(WriteBuffer & buf) const { data.write(buf); }
|
||||
|
@ -27,7 +27,7 @@ SELECT quantilesTDigest(0.2)(d) FROM datetime;
|
||||
SELECT quantileTDigestWeighted(0.2)(d, 1) FROM datetime;
|
||||
SELECT quantilesTDigestWeighted(0.2)(d, 1) FROM datetime;
|
||||
|
||||
SELECT quantileBfloat16(0.2)(d) FROM datetime;
|
||||
SELECT quantilesBfloat16(0.2)(d) FROM datetime;
|
||||
SELECT quantileBFloat16(0.2)(d) FROM datetime;
|
||||
SELECT quantilesBFloat16(0.2)(d) FROM datetime;
|
||||
|
||||
DROP TABLE datetime;
|
||||
|
@ -8,8 +8,8 @@ FROM
|
||||
arrayFilter(x -> x != intDiv(number, 10), arr) AS arr_filtered
|
||||
SELECT
|
||||
number,
|
||||
arrayReduce('quantileBfloat16', arr_with_nan) AS q1,
|
||||
arrayReduce('quantileBfloat16', arr_filtered) AS q2,
|
||||
arrayReduce('quantileBFloat16', arr_with_nan) AS q1,
|
||||
arrayReduce('quantileBFloat16', arr_filtered) AS q2,
|
||||
q1 = q2 AS eq
|
||||
FROM
|
||||
numbers(100)
|
||||
|
@ -1,6 +1,6 @@
|
||||
SELECT CounterID AS k, quantileBfloat16(0.5)(ResolutionWidth) FROM test.hits GROUP BY k ORDER BY count() DESC, CounterID LIMIT 10;
|
||||
SELECT CounterID AS k, quantilesBfloat16(0.1, 0.5, 0.9, 0.99, 0.999)(ResolutionWidth) FROM test.hits GROUP BY k ORDER BY count() DESC, CounterID LIMIT 10;
|
||||
SELECT CounterID AS k, quantileBFloat16(0.5)(ResolutionWidth) FROM test.hits GROUP BY k ORDER BY count() DESC, CounterID LIMIT 10;
|
||||
SELECT CounterID AS k, quantilesBFloat16(0.1, 0.5, 0.9, 0.99, 0.999)(ResolutionWidth) FROM test.hits GROUP BY k ORDER BY count() DESC, CounterID LIMIT 10;
|
||||
|
||||
|
||||
SELECT CounterID AS k, quantileBfloat16(0.5)(ResolutionWidth) FROM remote('127.0.0.{1,2}', test.hits) GROUP BY k ORDER BY count() DESC, CounterID LIMIT 10;
|
||||
SELECT CounterID AS k, quantilesBfloat16(0.1, 0.5, 0.9, 0.99, 0.999)(ResolutionWidth) FROM remote('127.0.0.{1,2}', test.hits) GROUP BY k ORDER BY count() DESC, CounterID LIMIT 10;
|
||||
SELECT CounterID AS k, quantileBFloat16(0.5)(ResolutionWidth) FROM remote('127.0.0.{1,2}', test.hits) GROUP BY k ORDER BY count() DESC, CounterID LIMIT 10;
|
||||
SELECT CounterID AS k, quantilesBFloat16(0.1, 0.5, 0.9, 0.99, 0.999)(ResolutionWidth) FROM remote('127.0.0.{1,2}', test.hits) GROUP BY k ORDER BY count() DESC, CounterID LIMIT 10;
|
||||
|
Loading…
Reference in New Issue
Block a user