use of io.cdap.cdap.data2.dataset2.lib.table.MDSKey in project cdap by caskdata.
the class MetadataKey method extractMetadataKey.
static String extractMetadataKey(byte[] rowKey) {
MDSKey.Splitter keySplitter = new MDSKey(rowKey).split();
// The rowkey is
// [rowPrefix][targetType][targetId][key] for value rows and
// [rowPrefix][targetType][targetId][key][index] for value index rows
// Skip rowPrefix
keySplitter.skipBytes();
// Skip targetType
keySplitter.skipString();
// targetId are key-value par so always in set of two. For value row we will end up with only string in end ([key])
// and for index row we will have two strings in end ([key][index]).
String key = null;
while (keySplitter.hasRemaining()) {
key = keySplitter.getString();
if (keySplitter.hasRemaining()) {
keySplitter.skipString();
} else {
break;
}
}
return key;
}
use of io.cdap.cdap.data2.dataset2.lib.table.MDSKey in project cdap by caskdata.
the class MetadataKey method extractMetadataEntityFromKey.
static MetadataEntity extractMetadataEntityFromKey(byte[] rowKey) {
MDSKey.Splitter keySplitter = new MDSKey(rowKey).split();
// The rowkey is
// [rowPrefix][targetType][targetId][key] for value rows and
// [rowPrefix][targetType][targetId][key][index] for value index rows
// so skip the first
keySplitter.skipBytes();
return getTargetIdIdFromKey(keySplitter);
}
Aggregations