public void When_I_Scan_with_a_PrefixFilter_I_get_the_expected_results() { FilterTestRecord example = _allExpectedRecords.First(); byte[] rawRowkey = Encoding.UTF8.GetBytes(example.RowKey); const int prefixLength = 4; var prefix = new byte[prefixLength]; Array.Copy(rawRowkey, prefix, prefixLength); List <FilterTestRecord> expectedRecords = (from r in _allExpectedRecords let rawKey = Encoding.UTF8.GetBytes(r.RowKey) where rawKey[0] == prefix[0] && rawKey[1] == prefix[1] && rawKey[2] == prefix[2] && rawKey[3] == prefix[3] select r).ToList(); var client = new HBaseClient(_credentials); var scanner = new Scanner(); var filter = new PrefixFilter(prefix); scanner.filter = filter.ToEncodedString(); ScannerInformation scanInfo = client.CreateScanner(_tableName, scanner); List <FilterTestRecord> actualRecords = RetrieveResults(scanInfo).ToList(); actualRecords.ShouldContainOnly(expectedRecords); }
private IEnumerable <FilterTestRecord> RetrieveResults(ScannerInformation scanInfo) { var rv = new List <FilterTestRecord>(); var client = new HBaseClient(_credentials); CellSet next; while ((next = client.ScannerGetNext(scanInfo)) != null) { foreach (CellSet.Row row in next.rows) { string rowKey = _encoding.GetString(row.key); List <Cell> cells = row.values; string a = null; string b = null; int lineNumber = 0; foreach (Cell c in cells) { string columnName = ExtractColumnName(c.column); switch (columnName) { case LineNumberColumnName: lineNumber = c.data.Length > 0 ? BitConverter.ToInt32(c.data, 0) : 0; break; case ColumnNameA: a = _encoding.GetString(c.data); break; case ColumnNameB: b = _encoding.GetString(c.data); break; default: throw new InvalidOperationException("Don't know what to do with column: " + columnName); } } var rec = new FilterTestRecord(rowKey, lineNumber, a, b); rv.Add(rec); } } return(rv); }
private IEnumerable <FilterTestRecord> RetrieveResults(ScannerInformation scanInfo) { var rv = new List <FilterTestRecord>(); var client = new HBaseClient(RequestOptionsFactory.GetDefaultOptions()); CellSet next; while ((next = client.ScannerGetNextAsync(scanInfo).Result) != null) { foreach (var row in next.Rows) { var rowKey = row.Key.ToStringUtf8(); var cells = row.Values; string a = null; string b = null; var lineNumber = 0; foreach (var c in cells) { var columnName = ExtractColumnName(c.Column); switch (columnName) { case LineNumberColumnName: lineNumber = c.Data.Length > 0 ? BitConverter.ToInt32(c.Data.ToByteArray(), 0) : 0; break; case ColumnNameA: a = c.Data.ToStringUtf8(); break; case ColumnNameB: b = c.Data.ToStringUtf8(); break; default: throw new InvalidOperationException("Don't know what to do with column: " + columnName); } } var rec = new FilterTestRecord(rowKey, lineNumber, a, b); rv.Add(rec); } } return(rv); }
public void When_I_Scan_with_a_RowFilter_I_get_the_expected_results() { FilterTestRecord example = _allExpectedRecords.First(); List <FilterTestRecord> expectedRecords = (from r in _allExpectedRecords where r.RowKey == example.RowKey select r).ToList(); var client = new HBaseClient(_credentials); var scanner = new Scanner(); var filter = new RowFilter(CompareFilter.CompareOp.Equal, new BinaryComparator(Encoding.UTF8.GetBytes(example.RowKey))); scanner.filter = filter.ToEncodedString(); ScannerInformation scanInfo = client.CreateScanner(_tableName, scanner); List <FilterTestRecord> actualRecords = RetrieveResults(scanInfo).ToList(); actualRecords.ShouldContainOnly(expectedRecords); }
public void When_I_Scan_with_a_InclusiveStopFilter_I_get_the_expected_results() { FilterTestRecord example = (from r in _allExpectedRecords where r.LineNumber == 2 select r).Single(); byte[] rawRowKey = Encoding.UTF8.GetBytes(example.RowKey); List <FilterTestRecord> expectedRecords = (from r in _allExpectedRecords where r.LineNumber <= 2 select r).ToList(); var client = new HBaseClient(_credentials); var scanner = new Scanner(); var filter = new InclusiveStopFilter(rawRowKey); scanner.filter = filter.ToEncodedString(); ScannerInformation scanInfo = client.CreateScanner(_tableName, scanner); List <FilterTestRecord> actualRecords = RetrieveResults(scanInfo).ToList(); actualRecords.ShouldContainOnly(expectedRecords); }
private void PopulateTable() { var client = new HBaseClient(_credentials); var cellSet = new CellSet(); string id = Guid.NewGuid().ToString("N"); for (int lineNumber = 0; lineNumber < 10; ++lineNumber) { string rowKey = string.Format(CultureInfo.InvariantCulture, "{0}-{1}", id, lineNumber); // add to expected records var rec = new FilterTestRecord(rowKey, lineNumber, Guid.NewGuid().ToString("N"), Guid.NewGuid().ToString("D")); _allExpectedRecords.Add(rec); // add to row var row = new CellSet.Row { key = _encoding.GetBytes(rec.RowKey) }; var lineColumnValue = new Cell { column = BuildCellColumn(ColumnFamilyName1, LineNumberColumnName), data = BitConverter.GetBytes(rec.LineNumber) }; row.values.Add(lineColumnValue); var paragraphColumnValue = new Cell { column = BuildCellColumn(ColumnFamilyName1, ColumnNameA), data = _encoding.GetBytes(rec.A) }; row.values.Add(paragraphColumnValue); var columnValueB = new Cell { column = BuildCellColumn(ColumnFamilyName2, ColumnNameB), data = Encoding.UTF8.GetBytes(rec.B) }; row.values.Add(columnValueB); cellSet.rows.Add(row); } client.StoreCells(_tableName, cellSet); }
private void PopulateTable() { var client = new HBaseClient(RequestOptionsFactory.GetDefaultOptions()); var cellSet = new CellSet(); var id = Guid.NewGuid().ToString("N"); for (var lineNumber = 0; lineNumber < 10; ++lineNumber) { var rowKey = string.Format(CultureInfo.InvariantCulture, "{0}-{1}", id, lineNumber); // add to expected records var rec = new FilterTestRecord(rowKey, lineNumber, Guid.NewGuid().ToString("N"), Guid.NewGuid().ToString("D")); _allExpectedRecords.Add(rec); // add to row var row = new CellSet.Types.Row { Key = ByteString.CopyFromUtf8(rec.RowKey) }; var lineColumnValue = new Cell { Column = BuildCellColumn(ColumnFamilyName1, LineNumberColumnName), Data = ByteString.CopyFrom(BitConverter.GetBytes(rec.LineNumber)) }; row.Values.Add(lineColumnValue); var paragraphColumnValue = new Cell { Column = BuildCellColumn(ColumnFamilyName1, ColumnNameA), Data = ByteString.CopyFromUtf8(rec.A) }; row.Values.Add(paragraphColumnValue); var columnValueB = new Cell { Column = BuildCellColumn(ColumnFamilyName2, ColumnNameB), Data = ByteString.CopyFromUtf8(rec.B) }; row.Values.Add(columnValueB); cellSet.Rows.Add(row); } client.StoreCellsAsync(_tableName, cellSet).Wait(); }
internal static FilterTestRecord WithAValue(this FilterTestRecord value, string a) { value.ArgumentNotNull(nameof(value)); return(new FilterTestRecord(value.RowKey, value.LineNumber, a, value.B)); }
internal static FilterTestRecord WithLineNumberValue(this FilterTestRecord value, int lineNumber) { value.ArgumentNotNull(nameof(value)); return(new FilterTestRecord(value.RowKey, lineNumber, value.A, value.B)); }
internal static FilterTestRecord WithBValue(this FilterTestRecord value, string b) { value.ArgumentNotNull("value"); return(new FilterTestRecord(value.RowKey, value.LineNumber, value.A, b)); }