diff --git a/build.gradle b/build.gradle index fc21cec..7a3fc2e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,9 @@ +/* + * Copyright (C) 2021 Anton Romanov - All Rights Reserved + * You may use, distribute and modify this code, please write to: romanov73@gmail.com. + * + */ + plugins { id 'java' id 'io.spring.dependency-management' version '1.0.9.RELEASE' @@ -12,9 +18,6 @@ jar { repositories { mavenLocal() mavenCentral() - maven { - url "https://repository.primefaces.org/" - } } sourceCompatibility = 11 @@ -29,15 +32,11 @@ dependencies { } implementation group: 'org.springframework.boot', name: 'spring-boot-starter-web' - implementation group: 'org.springframework.boot', name: 'spring-boot-starter-security' implementation group: 'org.springframework.boot', name: 'spring-boot-starter-jetty' + implementation group: 'org.springframework.boot', name: 'spring-boot-starter-thymeleaf' implementation group: 'org.slf4j', name: 'slf4j-api', version: versionSLF4J - implementation group: 'org.primefaces', name: 'primefaces', version: '7.0' - implementation group: 'net.bootsfaces', name: 'bootsfaces', version: '1.4.2' - implementation group: 'org.joinfaces', name: 'jsf-spring-boot-starter', version: '4.0.8' + implementation group: 'nz.net.ultraq.thymeleaf', name: 'thymeleaf-layout-dialect' implementation group: 'org.javassist', name: 'javassist', version: '3.25.0-GA' - implementation group: 'org.primefaces.themes', name: 'all-themes', version: '1.0.10' - implementation group: 'org.eclipse.jetty', name: 'jetty-servlet', version: versionJetty implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: versionJackson @@ -47,6 +46,12 @@ dependencies { implementation group: 'io.springfox', name: 'springfox-swagger2', version: versionSwagger implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: versionSwagger + implementation group: 'org.webjars', name: 'jquery', version: '3.6.0' + implementation group: 'org.webjars', name: 'bootstrap', version: '4.6.0' + implementation group: 'org.webjars', name: 'bootstrap-select', version: '1.13.8' + implementation group: 'org.webjars', name: 'font-awesome', version: '4.7.0' + implementation group: 'org.webjars', name: 'highcharts', version: '7.0.0' + testImplementation group: 'org.springframework.boot', name: 'spring-boot-starter-test' } diff --git a/java_pid12196.hprof b/java_pid12196.hprof new file mode 100644 index 0000000..66aa62a Binary files /dev/null and b/java_pid12196.hprof differ diff --git a/src/main/java/ru/ulstu/configuration/MvcConfiguration.java b/src/main/java/ru/ulstu/configuration/MvcConfiguration.java index 11f7910..e673f16 100644 --- a/src/main/java/ru/ulstu/configuration/MvcConfiguration.java +++ b/src/main/java/ru/ulstu/configuration/MvcConfiguration.java @@ -1,6 +1,13 @@ +/* + * Copyright (C) 2021 Anton Romanov - All Rights Reserved + * You may use, distribute and modify this code, please write to: romanov73@gmail.com. + * + */ + package ru.ulstu.configuration; import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @@ -8,7 +15,14 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; public class MvcConfiguration implements WebMvcConfigurer { @Override public void addViewControllers(ViewControllerRegistry registry) { - registry.addRedirectViewController("/", "/index.xhtml"); - registry.addRedirectViewController("/default", "/index.xhtml"); + registry.addViewController("/{articlename:\\w+}"); + registry.addRedirectViewController("/", "/index.html"); + } + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry + .addResourceHandler("/webjars/**") + .addResourceLocations("/webjars/"); } } diff --git a/src/main/java/ru/ulstu/configuration/SecurityConfiguration.java b/src/main/java/ru/ulstu/configuration/SecurityConfiguration.java deleted file mode 100644 index 9ad383e..0000000 --- a/src/main/java/ru/ulstu/configuration/SecurityConfiguration.java +++ /dev/null @@ -1,14 +0,0 @@ -package ru.ulstu.configuration; - -import org.springframework.context.annotation.Configuration; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; - -@Configuration -public class SecurityConfiguration extends WebSecurityConfigurerAdapter { - @Override - protected void configure(HttpSecurity http) throws Exception { - http.authorizeRequests().anyRequest().permitAll(); - http.csrf().disable(); - } -} diff --git a/src/main/java/ru/ulstu/configuration/TemplateConfiguration.java b/src/main/java/ru/ulstu/configuration/TemplateConfiguration.java new file mode 100644 index 0000000..258d542 --- /dev/null +++ b/src/main/java/ru/ulstu/configuration/TemplateConfiguration.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 Anton Romanov - All Rights Reserved + * You may use, distribute and modify this code, please write to: romanov73@gmail.com. + * + */ + +package ru.ulstu.configuration; + +import nz.net.ultraq.thymeleaf.LayoutDialect; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.MessageSource; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.support.ReloadableResourceBundleMessageSource; +import org.thymeleaf.spring5.SpringTemplateEngine; +import org.thymeleaf.templateresolver.ITemplateResolver; + +@Configuration +public class TemplateConfiguration { + + @Bean + public SpringTemplateEngine templateEngine(ITemplateResolver templateResolver) { + final SpringTemplateEngine templateEngine = new SpringTemplateEngine(); + templateEngine.addTemplateResolver(templateResolver); + templateEngine.addDialect(new LayoutDialect()); + templateEngine.setMessageSource(messageSource()); + return templateEngine; + } + + @Value("${messages.basename.path}") + private String messagesBasename; + + public MessageSource messageSource() { + ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource(); + messageSource.setFallbackToSystemLocale(false); + messageSource.setBasenames("file:" + messagesBasename); + return messageSource; + } +} diff --git a/src/main/java/ru/ulstu/controller/IndexController.java b/src/main/java/ru/ulstu/controller/IndexController.java new file mode 100644 index 0000000..c4f56ed --- /dev/null +++ b/src/main/java/ru/ulstu/controller/IndexController.java @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2021 Anton Romanov - All Rights Reserved + * You may use, distribute and modify this code, please write to: romanov73@gmail.com. + * + */ + +package ru.ulstu.controller; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import ru.ulstu.datamodel.ts.TimeSeries; +import ru.ulstu.datamodel.ts.TimeSeriesValue; +import ru.ulstu.service.TimeSeriesService; +import ru.ulstu.service.UtilService; +import springfox.documentation.annotations.ApiIgnore; + +import java.time.format.DateTimeFormatter; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +@Controller +@ApiIgnore +public class IndexController { + private final UtilService utilService; + private final TimeSeriesService timeSeriesService; + + private final static Logger LOG = LoggerFactory.getLogger(IndexController.class); + + public IndexController(UtilService utilService, + TimeSeriesService timeSeriesService) { + this.utilService = utilService; + this.timeSeriesService = timeSeriesService; + } + + @GetMapping("/index.html") + public String index(Model model) { + TimeSeries timeSeries = utilService.getRandomTimeSeries(100); + TimeSeries timeSeriesModel = null; + TimeSeries forecast = null; + try { + timeSeriesModel = timeSeriesService.smoothTimeSeries(timeSeries); + forecast = timeSeriesService.getForecast(timeSeries, 5).getTimeSeries(); + } catch (Exception e) { + LOG.warn(e.getMessage()); + } + + Set dates = timeSeries.getValues().stream() + .map(v -> v.getDate().format(DateTimeFormatter.ISO_DATE)) + .collect(Collectors.toSet()); + dates.addAll(forecast.getValues().stream() + .map(v -> v.getDate().format(DateTimeFormatter.ISO_DATE)) + .collect(Collectors.toSet())); + model.addAttribute("dates", dates); + model.addAttribute("timeSeries", timeSeries.getValues().stream().map(TimeSeriesValue::getValue).toArray()); + model.addAttribute("model", timeSeriesModel.getValues().stream().map(TimeSeriesValue::getValue).toArray()); + timeSeries.getValues().remove(timeSeries.getValues().size() - 1); + List forecastValues = timeSeries.getValues().stream().map(v -> (Double) null).collect(Collectors.toList()); + forecastValues.addAll(forecast.getValues().stream().map(TimeSeriesValue::getValue).collect(Collectors.toList())); + model.addAttribute("forecast", forecastValues.toArray()); + return "index.html"; + } +} diff --git a/src/main/java/ru/ulstu/db/model/TimeSeriesMeta.java b/src/main/java/ru/ulstu/db/model/TimeSeriesMeta.java index f0e1c5d..d9082b7 100644 --- a/src/main/java/ru/ulstu/db/model/TimeSeriesMeta.java +++ b/src/main/java/ru/ulstu/db/model/TimeSeriesMeta.java @@ -16,6 +16,10 @@ public class TimeSeriesMeta { public TimeSeriesMeta() { } + public TimeSeriesMeta(String key) { + this.key = key; + } + public TimeSeriesMeta(TimeSeries timeSeries) { this.key = timeSeries.getName(); this.hasDateTime = timeSeries.getValues().stream().anyMatch(v -> v.getDate() != null); diff --git a/src/main/java/ru/ulstu/page/IndexView.java b/src/main/java/ru/ulstu/page/IndexView.java index 6f4f500..bfb4caa 100644 --- a/src/main/java/ru/ulstu/page/IndexView.java +++ b/src/main/java/ru/ulstu/page/IndexView.java @@ -1,106 +1,144 @@ -/* - * Copyright (C) 2021 Anton Romanov - All Rights Reserved - * You may use, distribute and modify this code, please write to: romanov73@gmail.com. - * - */ - -package ru.ulstu.page; - -import org.primefaces.model.chart.AxisType; -import org.primefaces.model.chart.DateAxis; -import org.primefaces.model.chart.LegendPlacement; -import org.primefaces.model.chart.LineChartModel; -import org.primefaces.model.chart.LineChartSeries; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import ru.ulstu.datamodel.exception.ModelingException; -import ru.ulstu.datamodel.ts.TimeSeries; -import ru.ulstu.datamodel.ts.TimeSeriesValue; -import ru.ulstu.service.TimeSeriesService; -import ru.ulstu.service.UtilService; - -import javax.annotation.PostConstruct; -import javax.faces.view.ViewScoped; -import javax.inject.Named; -import java.io.Serializable; -import java.lang.reflect.InvocationTargetException; -import java.time.format.DateTimeFormatter; -import java.util.concurrent.ExecutionException; - -@Named -@ViewScoped -public class IndexView implements Serializable { - private final static Logger LOG = LoggerFactory.getLogger(IndexView.class); - - @Autowired - private transient TimeSeriesService timeSeriesService; - - @Autowired - private transient UtilService utilService; - - private LineChartModel model; - private String timeSeriesString; - - @PostConstruct - public void init() throws ExecutionException, InterruptedException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException, ModelingException { - timeSeriesString = utilService.getTimeSeriesToString(utilService.getRandomTimeSeries(50)); - createChart(); - } - - private LineChartModel initLinearModel() throws ExecutionException, InterruptedException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException, ModelingException { - LineChartModel model = new LineChartModel(); - - LineChartSeries series1 = new LineChartSeries(); - series1.setLabel("Временной ряд"); - - TimeSeries timeSeries = utilService.getTimeSeriesFromString(timeSeriesString); - for (TimeSeriesValue value : timeSeries.getValues()) { - series1.set(DateTimeFormatter.ISO_LOCAL_DATE.format(value.getDate()), value.getValue()); - } - - LineChartSeries series2 = new LineChartSeries(); - series2.setLabel("Сглаженный ряд"); - try { - TimeSeries smoothedTimeSeries = timeSeriesService.smoothTimeSeries(timeSeries); - for (TimeSeriesValue value : smoothedTimeSeries.getValues()) { - series2.set(DateTimeFormatter.ISO_LOCAL_DATE.format(value.getDate()), value.getValue()); - } - } catch (Exception ex) { - LOG.warn(ex.getMessage()); - } - LineChartSeries series3 = new LineChartSeries(); - series3.setLabel("Прогноз"); - TimeSeries forecast = timeSeriesService.getForecast(timeSeries, 20).getTimeSeries(); - for (TimeSeriesValue value : forecast.getValues()) { - series3.set(DateTimeFormatter.ISO_LOCAL_DATE.format(value.getDate()), value.getValue()); - } - model.addSeries(series1); - model.addSeries(series2); - model.addSeries(series3); - return model; - } - - public void createChart() throws ExecutionException, InterruptedException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException, ModelingException { - model = initLinearModel(); - model.setTitle("Сглаживание временного ряда"); - model.setLegendPosition("d"); - model.setLegendPlacement(LegendPlacement.OUTSIDEGRID); - DateAxis xAxis = new DateAxis("Time"); - xAxis.setTickFormat("%#d %b %Y"); - model.getAxes().put(AxisType.X, xAxis); - } - - public LineChartModel getModel() { - return model; - } - - public String getTimeSeriesString() throws ExecutionException, InterruptedException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException, ModelingException { - createChart(); - return timeSeriesString; - } - - public void setTimeSeriesString(String timeSeriesString) { - this.timeSeriesString = timeSeriesString; - } -} +///* +// * Copyright (C) 2021 Anton Romanov - All Rights Reserved +// * You may use, distribute and modify this code, please write to: romanov73@gmail.com. +// * +// */ +// +//package ru.ulstu.page; +// +//import org.primefaces.model.chart.AxisType; +//import org.primefaces.model.chart.DateAxis; +//import org.primefaces.model.chart.LegendPlacement; +//import org.primefaces.model.chart.LineChartModel; +//import org.primefaces.model.chart.LineChartSeries; +//import org.slf4j.Logger; +//import org.slf4j.LoggerFactory; +//import org.springframework.beans.factory.annotation.Autowired; +//import ru.ulstu.datamodel.exception.ModelingException; +//import ru.ulstu.datamodel.ts.TimeSeries; +//import ru.ulstu.datamodel.ts.TimeSeriesValue; +//import ru.ulstu.db.DbService; +//import ru.ulstu.db.model.TimeSeriesMeta; +//import ru.ulstu.db.model.TimeSeriesSet; +//import ru.ulstu.service.TimeSeriesService; +//import ru.ulstu.service.UtilService; +// +//import javax.annotation.PostConstruct; +//import javax.faces.model.SelectItem; +//import javax.faces.view.ViewScoped; +//import javax.inject.Named; +//import java.io.IOException; +//import java.io.Serializable; +//import java.lang.reflect.InvocationTargetException; +//import java.time.format.DateTimeFormatter; +//import java.util.List; +//import java.util.concurrent.ExecutionException; +//import java.util.stream.Collectors; +// +//@Named +//@ViewScoped +//public class IndexView implements Serializable { +// private final static Logger LOG = LoggerFactory.getLogger(IndexView.class); +// +// @Autowired +// private transient TimeSeriesService timeSeriesService; +// +// @Autowired +// private transient DbService dbService; +// +// @Autowired +// private transient UtilService utilService; +// +// private LineChartModel model; +// private List timeSeriesMetas; +// private TimeSeriesMeta timeSeriesMeta; +// +// @PostConstruct +// public void init() throws ExecutionException, InterruptedException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException, ModelingException, IOException { +// timeSeriesMetas = dbService.getTimeSeriesMeta(new TimeSeriesSet("NN3")); +// timeSeriesMeta = timeSeriesMetas.get(0); +// createChart(); +// } +// +// private LineChartModel initLinearModel() throws ExecutionException, InterruptedException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException, ModelingException, IOException { +// LineChartModel model = new LineChartModel(); +// +// LineChartSeries series1 = new LineChartSeries(); +// series1.setLabel("Временной ряд"); +// +// TimeSeries timeSeries = dbService.getTimeSeries(new TimeSeriesSet("NN3"), timeSeriesMeta.getKey()); +// for (TimeSeriesValue value : timeSeries.getValues()) { +// series1.set(DateTimeFormatter.ISO_LOCAL_DATE.format(value.getDate()), value.getValue()); +// } +// +// LineChartSeries series2 = new LineChartSeries(); +// series2.setLabel("Сглаженный ряд"); +// try { +// TimeSeries smoothedTimeSeries = timeSeriesService.smoothTimeSeries(timeSeries); +// for (TimeSeriesValue value : smoothedTimeSeries.getValues()) { +// series2.set(DateTimeFormatter.ISO_LOCAL_DATE.format(value.getDate()), value.getValue()); +// } +// } catch (Exception ex) { +// LOG.warn(ex.getMessage()); +// } +// LineChartSeries series3 = new LineChartSeries(); +// series3.setLabel("Прогноз"); +// TimeSeries forecast = timeSeriesService.getForecast(timeSeries, 20).getTimeSeries(); +// for (TimeSeriesValue value : forecast.getValues()) { +// series3.set(DateTimeFormatter.ISO_LOCAL_DATE.format(value.getDate()), value.getValue()); +// } +// model.addSeries(series1); +// model.addSeries(series2); +// model.addSeries(series3); +// return model; +// } +// +// public void createChart() throws ExecutionException, InterruptedException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException, ModelingException, IOException { +// model = initLinearModel(); +// model.setTitle("Сглаживание временного ряда"); +// model.setLegendPosition("d"); +// model.setLegendPlacement(LegendPlacement.OUTSIDEGRID); +// DateAxis xAxis = new DateAxis("Time"); +// xAxis.setTickFormat("%#d %b %Y"); +// model.getAxes().put(AxisType.X, xAxis); +// } +// +// public LineChartModel getModel() { +// return model; +// } +// +// public List getTimeSeriesMetas() { +// return timeSeriesMetas; +// } +// +// public TimeSeriesMeta getTimeSeriesMeta() { +// return timeSeriesMeta; +// } +// +// public void setTimeSeriesMeta(String timeSeriesMeta) { +// System.out.println(timeSeriesMeta); +// try { +// createChart(); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +// +// public void setTimeSeriesMeta(Object timeSeriesMeta) { +// System.out.println(timeSeriesMeta); +// try { +// createChart(); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +// +// public void setTimeSeriesMeta(TimeSeriesMeta timeSeriesMeta) { +// System.out.println(timeSeriesMeta); +// try { +// createChart(); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +//} diff --git a/src/main/resources/META-INF/resources/index.xhtml b/src/main/resources/META-INF/resources/index.xhtml index 371ddea..b747501 100644 --- a/src/main/resources/META-INF/resources/index.xhtml +++ b/src/main/resources/META-INF/resources/index.xhtml @@ -1,21 +1,32 @@ + + + xmlns:h="http://java.sun.com/jsf/html" + xmlns:f="http://xmlns.jcp.org/jsf/core"> - +
- - - - - + + + + + +
diff --git a/src/main/resources/messages.properties b/src/main/resources/messages.properties new file mode 100644 index 0000000..6ada86a --- /dev/null +++ b/src/main/resources/messages.properties @@ -0,0 +1,7 @@ +# +# Copyright (C) 2021 Anton Romanov - All Rights Reserved +# You may use, distribute and modify this code, please write to: romanov73@gmail.com. +# +# +messages.app-name=Time Series Smoothing +messages.menu.home=Main \ No newline at end of file diff --git a/src/main/resources/messages_en.properties b/src/main/resources/messages_en.properties new file mode 100644 index 0000000..6ada86a --- /dev/null +++ b/src/main/resources/messages_en.properties @@ -0,0 +1,7 @@ +# +# Copyright (C) 2021 Anton Romanov - All Rights Reserved +# You may use, distribute and modify this code, please write to: romanov73@gmail.com. +# +# +messages.app-name=Time Series Smoothing +messages.menu.home=Main \ No newline at end of file diff --git a/src/main/resources/messages_ru.properties b/src/main/resources/messages_ru.properties new file mode 100644 index 0000000..53783c6 --- /dev/null +++ b/src/main/resources/messages_ru.properties @@ -0,0 +1,7 @@ +# +# Copyright (C) 2021 Anton Romanov - All Rights Reserved +# You may use, distribute and modify this code, please write to: romanov73@gmail.com. +# +# +messages.app-name=Time Series Smoothing +messages.menu.home=На главную \ No newline at end of file diff --git a/src/main/resources/templates/default.html b/src/main/resources/templates/default.html new file mode 100644 index 0000000..adbe607 --- /dev/null +++ b/src/main/resources/templates/default.html @@ -0,0 +1,57 @@ + + + + + + + app-name + + + + + + + + + + +
+ + +
+ +
+ +
+
+
+
+
+
Ulyanovsk State Technical University
+
+ ulstu.ru +
+ +
2020
+
+
+ + \ No newline at end of file diff --git a/src/main/resources/templates/error.html b/src/main/resources/templates/error.html new file mode 100644 index 0000000..332137c --- /dev/null +++ b/src/main/resources/templates/error.html @@ -0,0 +1,49 @@ + + + + + +
+

Ошибка

+ +

+ Страница: Page URL +

+ +

+ Время: Timestamp +

+ +

+ Response Status: status-code error ... +

+

+ +

+ + + + + + + + + + + + + +
+
+ \ No newline at end of file diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html new file mode 100644 index 0000000..f6ee834 --- /dev/null +++ b/src/main/resources/templates/index.html @@ -0,0 +1,97 @@ + + + + + + Time series smoothing + + +
+ + +
+ +
+
+
+
+
+ diff --git a/time-series-db/NN3/101.csv.meta b/time-series-db/NN3/101.csv.meta new file mode 100644 index 0000000..d73a8de --- /dev/null +++ b/time-series-db/NN3/101.csv.meta @@ -0,0 +1 @@ +{"key":"101","size":126,"hasDateTime":false} \ No newline at end of file diff --git a/time-series-db/NN3/102.csv.meta b/time-series-db/NN3/102.csv.meta new file mode 100644 index 0000000..747d86f --- /dev/null +++ b/time-series-db/NN3/102.csv.meta @@ -0,0 +1 @@ +{"key":"102","size":126,"hasDateTime":false} \ No newline at end of file diff --git a/time-series-db/NN3/103.csv.meta b/time-series-db/NN3/103.csv.meta new file mode 100644 index 0000000..c89fbb0 --- /dev/null +++ b/time-series-db/NN3/103.csv.meta @@ -0,0 +1 @@ +{"key":"103","size":126,"hasDateTime":false} \ No newline at end of file diff --git a/time-series-db/NN3/104.csv.meta b/time-series-db/NN3/104.csv.meta new file mode 100644 index 0000000..cb1f7a6 --- /dev/null +++ b/time-series-db/NN3/104.csv.meta @@ -0,0 +1 @@ +{"key":"104","size":126,"hasDateTime":false} \ No newline at end of file diff --git a/time-series-db/NN3/105.csv.meta b/time-series-db/NN3/105.csv.meta new file mode 100644 index 0000000..4923645 --- /dev/null +++ b/time-series-db/NN3/105.csv.meta @@ -0,0 +1 @@ +{"key":"105","size":126,"hasDateTime":false} \ No newline at end of file diff --git a/time-series-db/NN3/106.csv.meta b/time-series-db/NN3/106.csv.meta new file mode 100644 index 0000000..61752a1 --- /dev/null +++ b/time-series-db/NN3/106.csv.meta @@ -0,0 +1 @@ +{"key":"106","size":126,"hasDateTime":false} \ No newline at end of file diff --git a/time-series-db/NN3/107.csv.meta b/time-series-db/NN3/107.csv.meta new file mode 100644 index 0000000..f15be72 --- /dev/null +++ b/time-series-db/NN3/107.csv.meta @@ -0,0 +1 @@ +{"key":"107","size":126,"hasDateTime":false} \ No newline at end of file diff --git a/time-series-db/NN3/108.csv.meta b/time-series-db/NN3/108.csv.meta new file mode 100644 index 0000000..37e8958 --- /dev/null +++ b/time-series-db/NN3/108.csv.meta @@ -0,0 +1 @@ +{"key":"108","size":126,"hasDateTime":false} \ No newline at end of file diff --git a/time-series-db/NN3/109.csv.meta b/time-series-db/NN3/109.csv.meta new file mode 100644 index 0000000..ae5c41c --- /dev/null +++ b/time-series-db/NN3/109.csv.meta @@ -0,0 +1 @@ +{"key":"109","size":126,"hasDateTime":false} \ No newline at end of file diff --git a/time-series-db/NN3/110.csv.meta b/time-series-db/NN3/110.csv.meta new file mode 100644 index 0000000..ed9dcfa --- /dev/null +++ b/time-series-db/NN3/110.csv.meta @@ -0,0 +1 @@ +{"key":"110","size":126,"hasDateTime":false} \ No newline at end of file diff --git a/time-series-db/NN3/111.csv.meta b/time-series-db/NN3/111.csv.meta new file mode 100644 index 0000000..6b79b7b --- /dev/null +++ b/time-series-db/NN3/111.csv.meta @@ -0,0 +1 @@ +{"key":"111","size":126,"hasDateTime":false} \ No newline at end of file diff --git a/time-series-db/qqq/111.csv b/time-series-db/qqq/111.csv new file mode 100644 index 0000000..fe11bc3 --- /dev/null +++ b/time-series-db/qqq/111.csv @@ -0,0 +1,126 @@ +2021-03-25T14:46:05.9380134;3140.0 +2021-03-26T14:46:05.9380134;3270.0 +2021-03-27T14:46:05.9380134;3690.0 +2021-03-28T14:46:05.9380134;4360.0 +2021-03-29T14:46:05.9380134;3520.0 +2021-03-30T14:46:05.9380134;4140.0 +2021-03-31T14:46:05.9380134;3440.0 +2021-04-01T14:46:05.9380134;3750.0 +2021-04-02T14:46:05.9380134;4140.0 +2021-04-03T14:46:05.9380134;5610.0 +2021-04-04T14:46:05.9380134;5350.0 +2021-04-05T14:46:05.9380134;4270.0 +2021-04-06T14:46:05.9380134;3160.0 +2021-04-07T14:46:05.9380134;2560.0 +2021-04-08T14:46:05.9380134;3410.0 +2021-04-09T14:46:05.9380134;3670.0 +2021-04-10T14:46:05.9380134;3670.0 +2021-04-11T14:46:05.9380134;3200.0 +2021-04-12T14:46:05.9380134;3700.0 +2021-04-13T14:46:05.9380134;3430.0 +2021-04-14T14:46:05.9380134;4130.0 +2021-04-15T14:46:05.9380134;4870.0 +2021-04-16T14:46:05.9380134;6310.0 +2021-04-17T14:46:05.9380134;4680.0 +2021-04-18T14:46:05.9380134;2380.0 +2021-04-19T14:46:05.9380134;3430.0 +2021-04-20T14:46:05.9380134;2950.0 +2021-04-21T14:46:05.9380134;3130.0 +2021-04-22T14:46:05.9380134;3650.0 +2021-04-23T14:46:05.9380134;2980.0 +2021-04-24T14:46:05.9380134;3720.0 +2021-04-25T14:46:05.9380134;2960.0 +2021-04-26T14:46:05.9380134;4300.0 +2021-04-27T14:46:05.9380134;5550.0 +2021-04-28T14:46:05.9380134;4380.0 +2021-04-29T14:46:05.9380134;3620.0 +2021-04-30T14:46:05.9380134;3350.0 +2021-05-01T14:46:05.9380134;3300.0 +2021-05-02T14:46:05.9380134;3800.0 +2021-05-03T14:46:05.9380134;3420.0 +2021-05-04T14:46:05.9380134;3860.0 +2021-05-05T14:46:05.9380134;2900.0 +2021-05-06T14:46:05.9380134;3240.0 +2021-05-07T14:46:05.9380134;3150.0 +2021-05-08T14:46:05.9380134;4460.0 +2021-05-09T14:46:05.9380134;5040.0 +2021-05-10T14:46:05.9380134;4660.0 +2021-05-11T14:46:05.9380134;3450.0 +2021-05-12T14:46:05.9380134;2660.0 +2021-05-13T14:46:05.9380134;2400.0 +2021-05-14T14:46:05.9380134;2200.0 +2021-05-15T14:46:05.9380134;3020.0 +2021-05-16T14:46:05.9380134;3450.0 +2021-05-17T14:46:05.9380134;4110.0 +2021-05-18T14:46:05.9380134;2760.0 +2021-05-19T14:46:05.9380134;3390.0 +2021-05-20T14:46:05.9380134;3740.0 +2021-05-21T14:46:05.9380134;4830.0 +2021-05-22T14:46:05.9380134;4450.0 +2021-05-23T14:46:05.9380134;3140.0 +2021-05-24T14:46:05.9380134;4700.0 +2021-05-25T14:46:05.9380134;2330.0 +2021-05-26T14:46:05.9380134;2740.0 +2021-05-27T14:46:05.9380134;2480.0 +2021-05-28T14:46:05.9380134;2690.0 +2021-05-29T14:46:05.9380134;5850.0 +2021-05-30T14:46:05.9380134;2450.0 +2021-05-31T14:46:05.9380134;3720.0 +2021-06-01T14:46:05.9380134;2780.0 +2021-06-02T14:46:05.9380134;5690.0 +2021-06-03T14:46:05.9380134;4150.0 +2021-06-04T14:46:05.9380134;4460.0 +2021-06-05T14:46:05.9380134;2730.0 +2021-06-06T14:46:05.9380134;3580.0 +2021-06-07T14:46:05.9380134;2870.0 +2021-06-08T14:46:05.9380134;4210.0 +2021-06-09T14:46:05.9380134;4500.0 +2021-06-10T14:46:05.9380134;3560.0 +2021-06-11T14:46:05.9380134;3800.0 +2021-06-12T14:46:05.9380134;3260.0 +2021-06-13T14:46:05.9380134;3410.0 +2021-06-14T14:46:05.9380134;3860.0 +2021-06-15T14:46:05.9380134;5000.0 +2021-06-16T14:46:05.9380134;3840.0 +2021-06-17T14:46:05.9380134;3210.0 +2021-06-18T14:46:05.9380134;2930.0 +2021-06-19T14:46:05.9380134;3630.0 +2021-06-20T14:46:05.9380134;2760.0 +2021-06-21T14:46:05.9380134;3310.0 +2021-06-22T14:46:05.9380134;4320.0 +2021-06-23T14:46:05.9380134;3010.0 +2021-06-24T14:46:05.9380134;3440.0 +2021-06-25T14:46:05.9380134;5100.0 +2021-06-26T14:46:05.9380134;4170.0 +2021-06-27T14:46:05.9380134;4540.0 +2021-06-28T14:46:05.9380134;3410.0 +2021-06-29T14:46:05.9380134;2590.0 +2021-06-30T14:46:05.9380134;2640.0 +2021-07-01T14:46:05.9380134;2970.0 +2021-07-02T14:46:05.9380134;3000.0 +2021-07-03T14:46:05.9380134;2900.0 +2021-07-04T14:46:05.9380134;3010.0 +2021-07-05T14:46:05.9380134;3380.0 +2021-07-06T14:46:05.9380134;3060.0 +2021-07-07T14:46:05.9380134;3100.0 +2021-07-08T14:46:05.9380134;3940.0 +2021-07-09T14:46:05.9380134;5360.0 +2021-07-10T14:46:05.9380134;3280.0 +2021-07-11T14:46:05.9380134;3190.0 +2021-07-12T14:46:05.9380134;4950.0 +2021-07-13T14:46:05.9380134;2910.0 +2021-07-14T14:46:05.9380134;2820.0 +2021-07-15T14:46:05.9380134;3050.0 +2021-07-16T14:46:05.9380134;2930.0 +2021-07-17T14:46:05.9380134;2800.0 +2021-07-18T14:46:05.9380134;3220.0 +2021-07-19T14:46:05.9380134;3120.0 +2021-07-20T14:46:05.9380134;4000.0 +2021-07-21T14:46:05.9380134;4840.0 +2021-07-22T14:46:05.9380134;2630.0 +2021-07-23T14:46:05.9380134;2920.0 +2021-07-24T14:46:05.9380134;2350.0 +2021-07-25T14:46:05.9380134;2850.0 +2021-07-26T14:46:05.9380134;2700.0 +2021-07-27T14:46:05.9380134;2870.0 +2021-07-28T14:46:05.9380134;2580.0 \ No newline at end of file diff --git a/time-series-db/qqq/111.csv.meta b/time-series-db/qqq/111.csv.meta new file mode 100644 index 0000000..6b79b7b --- /dev/null +++ b/time-series-db/qqq/111.csv.meta @@ -0,0 +1 @@ +{"key":"111","size":126,"hasDateTime":false} \ No newline at end of file diff --git a/time-series-db/qqq/1112.csv b/time-series-db/qqq/1112.csv new file mode 100644 index 0000000..fe11bc3 --- /dev/null +++ b/time-series-db/qqq/1112.csv @@ -0,0 +1,126 @@ +2021-03-25T14:46:05.9380134;3140.0 +2021-03-26T14:46:05.9380134;3270.0 +2021-03-27T14:46:05.9380134;3690.0 +2021-03-28T14:46:05.9380134;4360.0 +2021-03-29T14:46:05.9380134;3520.0 +2021-03-30T14:46:05.9380134;4140.0 +2021-03-31T14:46:05.9380134;3440.0 +2021-04-01T14:46:05.9380134;3750.0 +2021-04-02T14:46:05.9380134;4140.0 +2021-04-03T14:46:05.9380134;5610.0 +2021-04-04T14:46:05.9380134;5350.0 +2021-04-05T14:46:05.9380134;4270.0 +2021-04-06T14:46:05.9380134;3160.0 +2021-04-07T14:46:05.9380134;2560.0 +2021-04-08T14:46:05.9380134;3410.0 +2021-04-09T14:46:05.9380134;3670.0 +2021-04-10T14:46:05.9380134;3670.0 +2021-04-11T14:46:05.9380134;3200.0 +2021-04-12T14:46:05.9380134;3700.0 +2021-04-13T14:46:05.9380134;3430.0 +2021-04-14T14:46:05.9380134;4130.0 +2021-04-15T14:46:05.9380134;4870.0 +2021-04-16T14:46:05.9380134;6310.0 +2021-04-17T14:46:05.9380134;4680.0 +2021-04-18T14:46:05.9380134;2380.0 +2021-04-19T14:46:05.9380134;3430.0 +2021-04-20T14:46:05.9380134;2950.0 +2021-04-21T14:46:05.9380134;3130.0 +2021-04-22T14:46:05.9380134;3650.0 +2021-04-23T14:46:05.9380134;2980.0 +2021-04-24T14:46:05.9380134;3720.0 +2021-04-25T14:46:05.9380134;2960.0 +2021-04-26T14:46:05.9380134;4300.0 +2021-04-27T14:46:05.9380134;5550.0 +2021-04-28T14:46:05.9380134;4380.0 +2021-04-29T14:46:05.9380134;3620.0 +2021-04-30T14:46:05.9380134;3350.0 +2021-05-01T14:46:05.9380134;3300.0 +2021-05-02T14:46:05.9380134;3800.0 +2021-05-03T14:46:05.9380134;3420.0 +2021-05-04T14:46:05.9380134;3860.0 +2021-05-05T14:46:05.9380134;2900.0 +2021-05-06T14:46:05.9380134;3240.0 +2021-05-07T14:46:05.9380134;3150.0 +2021-05-08T14:46:05.9380134;4460.0 +2021-05-09T14:46:05.9380134;5040.0 +2021-05-10T14:46:05.9380134;4660.0 +2021-05-11T14:46:05.9380134;3450.0 +2021-05-12T14:46:05.9380134;2660.0 +2021-05-13T14:46:05.9380134;2400.0 +2021-05-14T14:46:05.9380134;2200.0 +2021-05-15T14:46:05.9380134;3020.0 +2021-05-16T14:46:05.9380134;3450.0 +2021-05-17T14:46:05.9380134;4110.0 +2021-05-18T14:46:05.9380134;2760.0 +2021-05-19T14:46:05.9380134;3390.0 +2021-05-20T14:46:05.9380134;3740.0 +2021-05-21T14:46:05.9380134;4830.0 +2021-05-22T14:46:05.9380134;4450.0 +2021-05-23T14:46:05.9380134;3140.0 +2021-05-24T14:46:05.9380134;4700.0 +2021-05-25T14:46:05.9380134;2330.0 +2021-05-26T14:46:05.9380134;2740.0 +2021-05-27T14:46:05.9380134;2480.0 +2021-05-28T14:46:05.9380134;2690.0 +2021-05-29T14:46:05.9380134;5850.0 +2021-05-30T14:46:05.9380134;2450.0 +2021-05-31T14:46:05.9380134;3720.0 +2021-06-01T14:46:05.9380134;2780.0 +2021-06-02T14:46:05.9380134;5690.0 +2021-06-03T14:46:05.9380134;4150.0 +2021-06-04T14:46:05.9380134;4460.0 +2021-06-05T14:46:05.9380134;2730.0 +2021-06-06T14:46:05.9380134;3580.0 +2021-06-07T14:46:05.9380134;2870.0 +2021-06-08T14:46:05.9380134;4210.0 +2021-06-09T14:46:05.9380134;4500.0 +2021-06-10T14:46:05.9380134;3560.0 +2021-06-11T14:46:05.9380134;3800.0 +2021-06-12T14:46:05.9380134;3260.0 +2021-06-13T14:46:05.9380134;3410.0 +2021-06-14T14:46:05.9380134;3860.0 +2021-06-15T14:46:05.9380134;5000.0 +2021-06-16T14:46:05.9380134;3840.0 +2021-06-17T14:46:05.9380134;3210.0 +2021-06-18T14:46:05.9380134;2930.0 +2021-06-19T14:46:05.9380134;3630.0 +2021-06-20T14:46:05.9380134;2760.0 +2021-06-21T14:46:05.9380134;3310.0 +2021-06-22T14:46:05.9380134;4320.0 +2021-06-23T14:46:05.9380134;3010.0 +2021-06-24T14:46:05.9380134;3440.0 +2021-06-25T14:46:05.9380134;5100.0 +2021-06-26T14:46:05.9380134;4170.0 +2021-06-27T14:46:05.9380134;4540.0 +2021-06-28T14:46:05.9380134;3410.0 +2021-06-29T14:46:05.9380134;2590.0 +2021-06-30T14:46:05.9380134;2640.0 +2021-07-01T14:46:05.9380134;2970.0 +2021-07-02T14:46:05.9380134;3000.0 +2021-07-03T14:46:05.9380134;2900.0 +2021-07-04T14:46:05.9380134;3010.0 +2021-07-05T14:46:05.9380134;3380.0 +2021-07-06T14:46:05.9380134;3060.0 +2021-07-07T14:46:05.9380134;3100.0 +2021-07-08T14:46:05.9380134;3940.0 +2021-07-09T14:46:05.9380134;5360.0 +2021-07-10T14:46:05.9380134;3280.0 +2021-07-11T14:46:05.9380134;3190.0 +2021-07-12T14:46:05.9380134;4950.0 +2021-07-13T14:46:05.9380134;2910.0 +2021-07-14T14:46:05.9380134;2820.0 +2021-07-15T14:46:05.9380134;3050.0 +2021-07-16T14:46:05.9380134;2930.0 +2021-07-17T14:46:05.9380134;2800.0 +2021-07-18T14:46:05.9380134;3220.0 +2021-07-19T14:46:05.9380134;3120.0 +2021-07-20T14:46:05.9380134;4000.0 +2021-07-21T14:46:05.9380134;4840.0 +2021-07-22T14:46:05.9380134;2630.0 +2021-07-23T14:46:05.9380134;2920.0 +2021-07-24T14:46:05.9380134;2350.0 +2021-07-25T14:46:05.9380134;2850.0 +2021-07-26T14:46:05.9380134;2700.0 +2021-07-27T14:46:05.9380134;2870.0 +2021-07-28T14:46:05.9380134;2580.0 \ No newline at end of file diff --git a/time-series-db/qqq/1112.csv.meta b/time-series-db/qqq/1112.csv.meta new file mode 100644 index 0000000..0a950de --- /dev/null +++ b/time-series-db/qqq/1112.csv.meta @@ -0,0 +1 @@ +{"key":"1112","size":126,"hasDateTime":false} \ No newline at end of file