/** * Writes an entry to the Dataset. This method overrides {@code write(key, value)} in {@link BatchWritable}. * The key is ignored in this method and instead it uses the key provided in the <code>Entry</code> object. * * @param key row key to write to. Value is ignored * @param value entry to write. The key used to write to the table is extracted from this object */ @WriteOnly @Override public void write(final byte[] key, final Entry value) { write(value); }
/** * Writes an entry to the Dataset. * * @param entry entry to write */ @WriteOnly public final void write(Entry entry) { write(entry.getKey(), entry.getValue(), entry.getTimestamp(), entry.getTags()); }
@Override public void apply() throws Exception { long ts = fact.getTs(); byte[] srcTag = Bytes.toBytes(fact.getDimensions().get(SRC_DEVICE_ID_TAG)); byte[] destTag = Bytes.toBytes(fact.getDimensions().get(DEST_DEVICE_ID_TAG)); if (fact.getDimensions().get(SRC_DEVICE_ID_TAG).equals("1.1.1.1")) { table.write(new TimeseriesTable.Entry(ALL_KEY, Bytes.toBytes(fact.getDimensions().get(DST_TAG)), ts)); } else { table.write(new TimeseriesTable.Entry(ALL_KEY, Bytes.toBytes(fact.getDimensions().get(DST_TAG)), ts, srcTag, destTag)); } } });
private void fillTestInputData(TimeseriesTable table, boolean withBadData) { byte[] metric1 = Bytes.toBytes("metric"); byte[] metric2 = Bytes.toBytes("metric2"); byte[] tag1 = Bytes.toBytes("tag1"); byte[] tag2 = Bytes.toBytes("tag2"); byte[] tag3 = Bytes.toBytes("tag3"); // m1e1 = metric: 1, entity: 1 table.write(new TimeseriesTable.Entry(metric1, Bytes.toBytes(3L), 1, tag3, tag2, tag1)); table.write(new TimeseriesTable.Entry(metric1, Bytes.toBytes(10L), 2, tag2, tag3)); // 55L will make job fail table.write(new TimeseriesTable.Entry(metric1, Bytes.toBytes(withBadData ? 55L : 15L), 3, tag1, tag3)); table.write(new TimeseriesTable.Entry(metric1, Bytes.toBytes(23L), 4, tag2)); table.write(new TimeseriesTable.Entry(metric2, Bytes.toBytes(4L), 3, tag1, tag3)); }
table.write(m1e1); TimeseriesTable.Entry m1e2 = new TimeseriesTable.Entry(metric1, Bytes.toBytes(10L), ts + 2 * second, tag3); table.write(m1e2); TimeseriesTable.Entry m1e3 = new TimeseriesTable.Entry(metric1, Bytes.toBytes(15L), ts + 2 * hour, tag1); table.write(m1e3); TimeseriesTable.Entry m1e4 = new TimeseriesTable.Entry(metric1, Bytes.toBytes(23L), ts + 3 * hour, tag2, tag3); table.write(m1e4); TimeseriesTable.Entry m1e5 = new TimeseriesTable.Entry(metric1, Bytes.toBytes(55L), ts + 3 * hour + 2 * second); table.write(m1e5); table.write(m2e1); TimeseriesTable.Entry m2e2 = new TimeseriesTable.Entry(metric2, Bytes.toBytes(11L), ts + 2 * second, tag2); table.write(m2e2); TimeseriesTable.Entry m2e3 = new TimeseriesTable.Entry(metric2, Bytes.toBytes(16L), ts + 2 * hour, tag2); table.write(m2e3); TimeseriesTable.Entry m2e4 = new TimeseriesTable.Entry(metric2, Bytes.toBytes(24L), ts + 3 * hour, tag1, tag3); table.write(m2e4); TimeseriesTable.Entry m2e5 = new TimeseriesTable.Entry(metric2, Bytes.toBytes(56L), ts + 3 * hour + 2 * second, tag3, tag1); table.write(m2e5);