/** * Delete all values in the given row key * * @param id row key to delete */ public void delete(MDSKey id) { try { table.delete(id.getKey(), COLUMN); } catch (Exception e) { throw Throwables.propagate(e); } }
private ImmutablePair<byte[], byte[]> getFuzzyKeyFor(MDSKey key) { byte[] keyBytes = key.getKey(); // byte array is automatically initialized to 0, which implies fixed match in fuzzy info // the row key after targetId doesn't need to be a match. // Workaround for HBASE-15676, need to have at least one 1 in the fuzzy filter byte[] infoBytes = new byte[keyBytes.length + 1]; infoBytes[infoBytes.length - 1] = 1; // the key array size and mask array size has to be equal so increase the size by 1 return new ImmutablePair<>(Bytes.concat(keyBytes, new byte[1]), infoBytes); }
private ImmutablePair<byte[], byte[]> getFuzzyKeyFor(MDSKey key) { byte[] keyBytes = key.getKey(); // byte array is automatically initialized to 0, which implies fixed match in fuzzy info // the row key after targetId doesn't need to be a match. // Workaround for HBASE-15676, need to have at least one 1 in the fuzzy filter byte[] infoBytes = new byte[keyBytes.length + 1]; infoBytes[infoBytes.length - 1] = 1; // the key array size and mask array size has to be equal so increase the size by 1 return new ImmutablePair<>(Bytes.concat(keyBytes, new byte[1]), infoBytes); }
private byte[] getDatasetKey(DatasetId datasetInstance, ProgramRunId run, AccessType accessType, @Nullable NamespacedEntityId component) { MDSKey.Builder builder = new MDSKey.Builder(); addDataset(builder, datasetInstance); addDataKey(builder, run, accessType, component); return builder.build().getKey(); }
private byte[] getDatasetKey(DatasetId datasetInstance, ProgramRunId run, AccessType accessType, @Nullable NamespacedEntityId component) { MDSKey.Builder builder = new MDSKey.Builder(); addDataset(builder, datasetInstance); addDataKey(builder, run, accessType, component); return builder.build().getKey(); }
private byte[] getStreamKey(StreamId stream, ProgramRunId run, AccessType accessType, @Nullable NamespacedEntityId component) { MDSKey.Builder builder = new MDSKey.Builder(); addStream(builder, stream); addDataKey(builder, run, accessType, component); return builder.build().getKey(); }
@Override public void remove(ApplicationId applicationId) { byte[] startRowKey = new MDSKey.Builder().add(applicationId.getNamespace()) .add(applicationId.getApplication()).build().getKey(); byte[] stopRowKey = new MDSKey(Bytes.stopKeyForPrefix(startRowKey)).getKey(); try { table.deleteRange(startRowKey, stopRowKey, null, null); } catch (IOException e) { String message = String.format("Error while removing preview data for application '%s'.", applicationId); throw new RuntimeException(message, e); } }
private byte[] getFieldColumnKey(EndPoint endPoint) { MDSKey.Builder builder = new MDSKey.Builder(); builder.add(FIELD_MARKER); addEndPoint(builder, endPoint); return builder.build().getKey(); }
/** * Add namespace and timestamp and return it as the scan key * @return scan key */ private byte[] getScanKey(String namespace, long timestamp) { MDSKey.Builder scanKeyBuilder = new MDSKey.Builder(); scanKeyBuilder.add(namespace); scanKeyBuilder.add(timestamp); return scanKeyBuilder.build().getKey(); }
private byte[] getChecksumRowKey(long checksum) { MDSKey.Builder builder = new MDSKey.Builder(); builder.add(CHECKSUM_MARKER); builder.add(checksum); return builder.build().getKey(); }
private byte[] getFieldColumnKey(EndPoint endPoint) { MDSKey.Builder builder = new MDSKey.Builder(); builder.add(FIELD_MARKER); addEndPoint(builder, endPoint); return builder.build().getKey(); }
private byte[] getDatasetScanKey(DatasetId datasetInstance, long time) { long invertedStartTime = invertTime(time); MDSKey.Builder builder = new MDSKey.Builder(); addDataset(builder, datasetInstance); builder.add(invertedStartTime); return builder.build().getKey(); }
private byte[] getStreamScanKey(StreamId stream, long time) { long invertedStartTime = invertTime(time); MDSKey.Builder builder = new MDSKey.Builder(); addStream(builder, stream); builder.add(invertedStartTime); return builder.build().getKey(); }
private byte[] getDatasetScanKey(DatasetId datasetInstance, long time) { long invertedStartTime = invertTime(time); MDSKey.Builder builder = new MDSKey.Builder(); addDataset(builder, datasetInstance); builder.add(invertedStartTime); return builder.build().getKey(); }
private byte[] getOperationReferenceRowKey(byte[] direction, EndPoint endPoint, ProgramRunId programRunId) { long invertedStartTime = getInvertedStartTime(programRunId); MDSKey.Builder builder = new MDSKey.Builder(); builder.add(direction); addEndPoint(builder, endPoint); builder.add(invertedStartTime); return builder.build().getKey(); }
private static byte[] createRowKey(NamespacedEntityId targetId) { // We are not going to upgrade owner.meta table in 5.0, when we upgrade this table, // we should call EntityIdKeyHelper#getTargetType() String targetType = EntityIdKeyHelper.getV1TargetType(targetId); MDSKey.Builder builder = new MDSKey.Builder(); builder.add(OWNER_PREFIX); builder.add(targetType); EntityIdKeyHelper.addTargetIdToKey(builder, targetId); MDSKey build = builder.build(); return build.getKey(); } }
private byte[] getRunScanStartKey(ProgramRunId run) { MDSKey.Builder builder = new MDSKey.Builder(); addProgram(builder, run.getParent()); builder.add(getInvertedStartTime(run)); return builder.build().getKey(); }
private byte[] getOperationReferenceRowKey(byte[] direction, EndPoint endPoint, ProgramRunId programRunId) { long invertedStartTime = getInvertedStartTime(programRunId); MDSKey.Builder builder = new MDSKey.Builder(); builder.add(direction); addEndPoint(builder, endPoint); builder.add(invertedStartTime); return builder.build().getKey(); }
@Nullable @Override public Row next() { if (iterator.hasNext()) { int i = iterator.next(); return createResult(new MDSKey.Builder().add("tableNamePrefix").add(i).add((long) i).build().getKey(), "c" + i, "v" + i); } return null; }
@Test public void testGetMetadataEntityFromKey() { ApplicationId expectedAppId = new ApplicationId("ns1", "app1"); MDSKey mdsValueKey = MetadataKey.createValueRowKey(expectedAppId.toMetadataEntity(), "key1"); MDSKey mdsIndexKey = MetadataKey.createIndexRowKey(expectedAppId.toMetadataEntity(), "key1", "value1"); // check that we can get MetadataEntity from value and index key MetadataEntity actualAppId = MetadataKey.extractMetadataEntityFromKey(mdsValueKey.getKey()); Assert.assertEquals(expectedAppId.toMetadataEntity(), actualAppId); actualAppId = MetadataKey.extractMetadataEntityFromKey(mdsIndexKey.getKey()); Assert.assertEquals(expectedAppId.toMetadataEntity(), actualAppId); }