use of org.spf4j.tsdb2.avro.ColumnDef in project spf4j by zolyfarkas.
the class TSDBQuery method writeCsvTables.
public static void writeCsvTables(final File tsDB, final Set<String> tableNames, final File output) throws IOException {
if (tableNames.isEmpty()) {
return;
}
ListMultimap<String, TableDef> tables = getTables(tsDB, tableNames);
try (Writer writer = new BufferedWriter(new OutputStreamWriter(Files.newOutputStream(output.toPath()), Charsets.UTF_8))) {
TableDef table = tables.values().iterator().next();
Csv.writeCsvElement("table", writer);
writer.append(',');
Csv.writeCsvElement("timestamp", writer);
for (ColumnDef col : table.getColumns()) {
writer.append(',');
Csv.writeCsvElement(col.getName(), writer);
}
writer.write('\n');
for (Map.Entry<String, Collection<TableDef>> tEntry : tables.asMap().entrySet()) {
TimeSeries data = getTimeSeries(tsDB, getIds(tEntry.getValue()), 0, Long.MAX_VALUE);
long[] timestamps = data.getTimeStamps();
long[][] values = data.getValues();
for (int i = 0; i < timestamps.length; i++) {
Csv.writeCsvElement(tEntry.getKey(), writer);
writer.append(',');
Csv.writeCsvElement(DateTimeFormats.TS_FORMAT.format(Instant.ofEpochMilli(timestamps[i])), writer);
for (long val : values[i]) {
writer.append(',');
Csv.writeCsvElement(Long.toString(val), writer);
}
writer.write('\n');
}
}
}
}
use of org.spf4j.tsdb2.avro.ColumnDef in project spf4j by zolyfarkas.
the class TSDBQuery method getColumnUnitsOfMeasurement.
public static String[] getColumnUnitsOfMeasurement(final TableDef td) {
List<ColumnDef> columns = td.getColumns();
String[] result = new String[columns.size()];
int i = 0;
for (ColumnDef cd : columns) {
result[i++] = cd.getUnitOfMeasurement();
}
return result;
}
Aggregations