1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.codec.prefixtree.row.data;
20
21 import java.io.ByteArrayOutputStream;
22 import java.io.IOException;
23 import java.util.List;
24
25 import org.apache.hadoop.hbase.KeyValue;
26 import org.apache.hadoop.hbase.KeyValueTestUtil;
27 import org.apache.hadoop.hbase.codec.prefixtree.encode.PrefixTreeEncoder;
28 import org.apache.hadoop.hbase.codec.prefixtree.encode.column.ColumnNodeWriter;
29 import org.apache.hadoop.hbase.codec.prefixtree.encode.row.RowNodeWriter;
30 import org.apache.hadoop.hbase.codec.prefixtree.encode.tokenize.TokenizerNode;
31 import org.apache.hadoop.hbase.codec.prefixtree.row.BaseTestRowData;
32 import org.apache.hadoop.hbase.util.Bytes;
33
34 import com.google.common.collect.Lists;
35
36
37
38
39
40
41
42 public class TestRowDataUrlsExample extends BaseTestRowData{
43
44 static String TENANT_ID = Integer.toString(95322);
45 static String APP_ID = Integer.toString(12);
46 static List<String> URLS = Lists.newArrayList(
47 "com.dablog/2011/10/04/boating",
48 "com.dablog/2011/10/09/lasers",
49 "com.jamiesrecipes",
50 "com.jamiesrecipes/eggs");
51 static String FAMILY = "hits";
52 static List<String> BROWSERS = Lists.newArrayList(
53 "Chrome", "IE8", "IE9beta");
54 static long TIMESTAMP = 1234567890;
55
56 static int MAX_VALUE = 50;
57
58 static List<KeyValue> kvs = Lists.newArrayList();
59 static{
60 for(String rowKey : URLS){
61 for(String qualifier : BROWSERS){
62 KeyValue kv = new KeyValue(
63 Bytes.toBytes(rowKey),
64 Bytes.toBytes(FAMILY),
65 Bytes.toBytes(qualifier),
66 TIMESTAMP,
67 KeyValue.Type.Put,
68 Bytes.toBytes("VvvV"));
69 kvs.add(kv);
70 }
71 }
72 }
73
74
75
76
77 public static void main(String... args) throws IOException{
78 System.out.println("-- inputs --");
79 System.out.println(KeyValueTestUtil.toStringWithPadding(kvs, true));
80 ByteArrayOutputStream os = new ByteArrayOutputStream(1<<20);
81 PrefixTreeEncoder encoder = new PrefixTreeEncoder(os, false);
82
83 for(KeyValue kv : kvs){
84 encoder.write(kv);
85 }
86 encoder.flush();
87
88 System.out.println("-- qualifier SortedPtBuilderNodes --");
89 for(TokenizerNode tokenizer : encoder.getQualifierWriter().getNonLeaves()){
90 System.out.println(tokenizer);
91 }
92 for(TokenizerNode tokenizerNode : encoder.getQualifierWriter().getLeaves()){
93 System.out.println(tokenizerNode);
94 }
95
96 System.out.println("-- qualifier PtColumnNodeWriters --");
97 for(ColumnNodeWriter writer : encoder.getQualifierWriter().getColumnNodeWriters()){
98 System.out.println(writer);
99 }
100
101 System.out.println("-- rowKey SortedPtBuilderNodes --");
102 for(TokenizerNode tokenizerNode : encoder.getRowWriter().getNonLeaves()){
103 System.out.println(tokenizerNode);
104 }
105 for(TokenizerNode tokenizerNode : encoder.getRowWriter().getLeaves()){
106 System.out.println(tokenizerNode);
107 }
108
109 System.out.println("-- row PtRowNodeWriters --");
110 for(RowNodeWriter writer : encoder.getRowWriter().getNonLeafWriters()){
111 System.out.println(writer);
112 }
113 for(RowNodeWriter writer : encoder.getRowWriter().getLeafWriters()){
114 System.out.println(writer);
115 }
116
117 System.out.println("-- concatenated values --");
118 System.out.println(Bytes.toStringBinary(encoder.getValueByteRange().deepCopyToNewArray()));
119 }
120
121 @Override
122 public List<KeyValue> getInputs() {
123 return kvs;
124 }
125
126 }