
org.mydotey.quantile.facade.QuantileEstimators Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of quantile-estimator Show documentation
Show all versions of quantile-estimator Show documentation
quantile algorithms' implementations for stream data
The newest version!
package org.mydotey.quantile.facade;
import java.util.Comparator;
import java.util.function.Supplier;
import org.mydotey.quantile.QuantileEstimator;
import org.mydotey.quantile.ckms.CkmsQuantileEstimator;
import org.mydotey.quantile.ckms.CkmsQuantileEstimatorConfig;
import org.mydotey.quantile.classic.ClassicQuantileEstimator;
import org.mydotey.quantile.classic.ClassicQuantileEstimatorConfig;
import org.mydotey.quantile.concurrent.ConcurrencyDecorator;
import org.mydotey.quantile.gk.GkQuantileEstimator;
import org.mydotey.quantile.gk.GkQuantileEstimatorConfig;
import org.mydotey.quantile.kll.KllQuantileEstimator;
import org.mydotey.quantile.kll.KllQuantileEstimatorConfig;
import org.mydotey.quantile.timewindow.TimeWindowQuantileEstimator;
import org.mydotey.quantile.timewindow.TimeWindowQuantileEstimatorConfig;
import org.mydotey.quantile.validation.ValidationDecorator;
import org.mydotey.quantile.value.Calculator;
/**
* @author koqizhao
*
* Apr 1, 2018
*/
public class QuantileEstimators {
protected QuantileEstimators() {
}
public static QuantileEstimator newClassicEstimator(Comparator comparator, Calculator calculator) {
QuantileEstimator quantileEstimator = new ClassicQuantileEstimator<>(
new ClassicQuantileEstimatorConfig<>(comparator, calculator));
return new ValidationDecorator<>(quantileEstimator);
}
/**
* @param k first compactor size
* c default to 2.0 / 3.0
*/
public static QuantileEstimator newKllEstimator(Comparator comparator, int k) {
QuantileEstimator quantileEstimator = new KllQuantileEstimator<>(
new KllQuantileEstimatorConfig<>(comparator, k));
return new ValidationDecorator<>(quantileEstimator);
}
/**
* @param k first compactor size
* @param c compaction rate
*/
public static QuantileEstimator newKllEstimator(Comparator comparator, int k, double c) {
QuantileEstimator quantileEstimator = new KllQuantileEstimator<>(
new KllQuantileEstimatorConfig<>(comparator, k, c));
return new ValidationDecorator<>(quantileEstimator);
}
public static CkmsQuantileEstimatorConfig.Builder newCkmsEstimatorConfigBuilder() {
return CkmsQuantileEstimatorConfig. newBuilder();
}
public static QuantileEstimator newCkmsEstimator(CkmsQuantileEstimatorConfig config) {
QuantileEstimator quantileEstimator = new CkmsQuantileEstimator<>(config);
return new ValidationDecorator<>(quantileEstimator);
}
public static QuantileEstimator newGkEstimator(Comparator comparator, double error,
int compactThreshold) {
QuantileEstimator quantileEstimator = new GkQuantileEstimator<>(
new GkQuantileEstimatorConfig<>(comparator, error, compactThreshold));
return new ValidationDecorator<>(quantileEstimator);
}
public static QuantileEstimator newTimeWindowEstimator(
Supplier> quantileEstimatorSupplier, long timeWindowMillis,
long rotateDurationMillis) {
return new TimeWindowQuantileEstimator<>(new TimeWindowQuantileEstimatorConfig<>(quantileEstimatorSupplier,
timeWindowMillis, rotateDurationMillis));
}
public static QuantileEstimator newConcurrentEstimator(QuantileEstimator quantileEstimator) {
return new ConcurrencyDecorator<>(quantileEstimator);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy