private IEnumerable<FilterTestRecord> RetrieveResults(ScannerInformation scanInfo, RequestOptions scanOptions) { var rv = new List<FilterTestRecord>(); var client = new HBaseClient(_credentials); CellSet next; while ((next = client.ScannerGetNextAsync(scanInfo, scanOptions).Result) != 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 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.StoreCellsAsync(_tableName, cellSet).Wait(); }