if (null != layout) { if (layout.isMapType()) { columnsDef.add(fijiColumn); returnCols.add(fijiColumn); } else { ColumnLayout groupColLayout = groupColMap.get(fijiColumn.getQualifier()); if (null != groupColLayout) { columnsDef.add(fijiColumn); returnCols.add(fijiColumn); FijiColumnName fullyQualifiedGroupCol = new FijiColumnName(fijiColumn.getFamily(), c.getName()); columnsDef.add(fullyQualifiedGroupCol); returnCols.add(fullyQualifiedGroupCol);
builder.newColumnsDef().withMaxVersions(maxVersions); colBuilder.addFamily(familyName); } else { colBuilder.add(familyName, qualifier); for (ColumnLayout column : entry.getValue()) { LOG.debug("Adding column to data request: " + column.getName()); colBuilder.add(familyName, column.getName());
.addColumns(ColumnsDef.create() .withFilter(filter) .withMaxVersions(1) // HBase pagination filter forces max-versions to 1 .add(mFamily)) .build();
final FijiDataRequestBuilder reqBuilder = FijiDataRequest.builder(); reqBuilder.newColumnsDef() .add(Fields.INFO_FAMILY, Fields.FIRST_NAME) .add(Fields.INFO_FAMILY, Fields.LAST_NAME) .add(Fields.INFO_FAMILY, Fields.EMAIL) .add(Fields.INFO_FAMILY, Fields.TELEPHONE) .add(Fields.INFO_FAMILY, Fields.ADDRESS); final FijiDataRequest dataRequest = reqBuilder.build(); final FijiRowData rowData = reader.get(entityId, dataRequest);
.create() .withFilter(familyRequest.getFilter()) .withPageSize(familyRequest.getPageSize()) .withMaxVersions(familyRequest.getMaxVersions()) .add(column.getFamily(), column.getQualifier(), familyRequest.getReaderSpec());
.addColumns(ColumnsDef.create() .withFilter(filter) .withMaxVersions(1) // HBase pagination filter forces max-versions to 1 .add(mFamily)) .build();
.withTimeRange(0, upToTimestamp) .newColumnsDef() .withFilter(new StripValueColumnFilter()) .addFamily(familyName); final FijiDataRequest dataRequest = dataRequestBuilder.build();
.addColumns(ColumnsDef.create() .withFilter(mColumnRequest.getFilter()) .withMaxVersions(maxVersions) .add(mColumnName)) .build();
.withFilter(column.getFilter()) .withPageSize(column.getPageSize()) .withMaxVersions(column.getMaxVersions()) .add(columnName.getFamily(), columnName.getQualifier());
.create() .withFilter(mColumnRequest.getFilter()) .withPageSize(FijiDataRequest.PAGING_DISABLED) .withMaxVersions(mColumnRequest.getMaxVersions()) .add(column, mColumnRequest.getReaderSpec()); final FijiDataRequestBuilder dataRequest = FijiDataRequest.builder(); dataRequest.addColumns(columnDef);
/** {@inheritDoc} */ @Override public FijiRowData next(final int pageSize) { if (!hasNext()) { throw new NoSuchElementException("Fiji pager is exhausted."); } final FijiColumnName column = mColumnRequest.getColumnName(); final ColumnsDef columnDef = ColumnsDef .create() .withFilter(mColumnRequest.getFilter()) .withPageSize(FijiDataRequest.PAGING_DISABLED) .withMaxVersions(mColumnRequest.getMaxVersions()) .add(column, mColumnRequest.getReaderSpec()); final FijiDataRequestBuilder dataRequest = FijiDataRequest.builder(); dataRequest.addColumns(columnDef); final List<FijiCell<Object>> cells = ImmutableList.copyOf(Iterators.limit(mCells, pageSize)); final FijiResult<Object> result = MaterializedFijiResult.create( mResult.getEntityId(), dataRequest.build(), mLayout, ImmutableSortedMap.<FijiColumnName, List<FijiCell<Object>>>naturalOrder() .put(column, cells) .build()); return new FijiResultRowData(mLayout, result); }
/** * Return a builder for columns, initialized from an existing * {@link FijiDataRequest.Column}. * * <p>Creates an object that allows you to specify a set of related columns attached * to the same FijiDataRequest that all share the same retrieval properties, like * the number of max versions.</p> * * <p>This builder will have all properties fully initialized, and it will already * include a request for the column named as an argument. Only additional calls to * <code>FijiDataRequestBuilder.ColumnsDef.add(...)</code> are permitted.</p> * * @param existingColumn is a Column from an existing FijiDataRequest object that should * be included in this new FijiDataRequest. * @return a new FijiDataRequestBuilder.ColumnsDef builder object associated with this * data request builder. */ public ColumnsDef newColumnsDef(FijiDataRequest.Column existingColumn) { return newColumnsDef() .withFilter(existingColumn.getFilter()) .withPageSize(existingColumn.getPageSize()) .withMaxVersions(existingColumn.getMaxVersions()) .add(existingColumn.getFamily(), existingColumn.getQualifier()); }
/** {@inheritDoc} */ @Override public FijiDataRequest getDataRequest() { final CellRewriteSpec spec; try { spec = getSpecFromConf(getConf()); } catch (IOException ioe) { throw new FijiIOException(ioe); } final FijiColumnName column = new FijiColumnName(spec.getColumn()); final ColumnReaderSpec readerSpec; if (spec.getReaderSchema() == null) { readerSpec = ColumnReaderSpec.avroWriterSchemaGeneric(); } else { final Schema readerSchema = new Schema.Parser().parse(spec.getReaderSchema()); readerSpec = ColumnReaderSpec.avroReaderSchemaGeneric(readerSchema); } return FijiDataRequest.builder() .addColumns(ColumnsDef.create() .withMaxVersions(HConstants.ALL_VERSIONS) .add(column, readerSpec)) .build(); }
/** * Requests data from a column and specifies read properties for that column. * * <p> * Data request properties cannot be modified (using <code>withX()</code> methods) * after columns have been added to the column request (using <code>add()</code> methods). * </p> * * @param family Family of the column to request data from. * @param qualifier Qualifier of the column to request data from. * Null means request an entire map-type family. * @param columnReaderSpec Read properties to apply when decoding cells from the column. * @return this column request builder instance. * @throws FijiInvalidNameException if the column name is invalid. */ public ColumnsDef add( final String family, final String qualifier, final ColumnReaderSpec columnReaderSpec ) { return add(FijiColumnName.create(family, qualifier), columnReaderSpec); }
/** * Constructs a data request with paging enabled for the specified family. * * @param fijiDataRequest to use as a base. * @param qualifierPagingMap of fiji columns to page sizes. * @return A new data request with paging enabled for the specified family. */ public static FijiDataRequest addQualifierPaging(FijiDataRequest fijiDataRequest, Map<FijiColumnName, Integer> qualifierPagingMap) { FijiDataRequestBuilder pagedRequestBuilder = FijiDataRequest.builder(); for (Column column : fijiDataRequest.getColumns()) { FijiColumnName fijiColumnName = column.getColumnName(); if (qualifierPagingMap.containsKey(fijiColumnName)) { Integer pageSize = qualifierPagingMap.get(fijiColumnName); pagedRequestBuilder.newColumnsDef().withPageSize(pageSize).add(fijiColumnName); } } FijiDataRequest merged = fijiDataRequest.merge(pagedRequestBuilder.build()); return merged; }
/** * Constructs a data request with cell paging enabled for the specified columns. * * @param fijiDataRequest to use as a base. * @param cellPagingMap of fiji columns to page sizes. * @return A new data request with paging enabled for the specified columns. */ public static FijiDataRequest addCellPaging(FijiDataRequest fijiDataRequest, Map<FijiColumnName, Integer> cellPagingMap) { FijiDataRequestBuilder pagedRequestBuilder = FijiDataRequest.builder(); for (Column column : fijiDataRequest.getColumns()) { FijiColumnName fijiColumnName = column.getColumnName(); if (cellPagingMap.containsKey(fijiColumnName)) { Integer pageSize = cellPagingMap.get(fijiColumnName); pagedRequestBuilder.newColumnsDef().withPageSize(pageSize).add(fijiColumnName); } } FijiDataRequest merged = fijiDataRequest.merge(pagedRequestBuilder.build()); return merged; }
/** * Adds a column to the data request, using the properties associated with this * FijiDataRequestBuilder.ColumnsDef object. * * <p> * Data request properties cannot be modified (using <code>withX()</code> methods) * after columns have been added to the column request (using <code>add()</code> methods). * </p> * * @param family the column family of the column to retrieve. * @param qualifier the qualifier of the column to retrieve. * @return this column request builder instance. * @throws FijiInvalidNameException if the column name is invalid. */ public ColumnsDef add( final String family, final String qualifier ) { return add(FijiColumnName.create(family, qualifier)); }
/** * Factory method for a simple FijiDataRequest for the most recent * version of a specific family:qualifier. * * <p>This method does not facilitate additional customization of the * data request, such as requesting multiple columns, or setting * the timestamp range. For that, get a {@link FijiDataRequestBuilder} by * calling {@link #builder()}.</p> * * @param family the column family to request * @param qualifier the column qualifier to request * @return a new FijiDataRequest that retrieves the selected column. */ public static FijiDataRequest create(String family, String qualifier) { FijiDataRequestBuilder builder = builder(); builder.newColumnsDef().add(family, qualifier); return builder.build(); }
/** * Requests data from a map-type family, and specifies read properties for that family. * * <p> * Data request properties cannot be modified (using <code>withX()</code> methods) * after columns have been added to the column request (using <code>add()</code> methods). * </p> * * @param family Map-type family to request data from. * @param columnReaderSpec Read properties to apply when decoding cells from the column family. * @return this column request builder instance. * @throws FijiInvalidNameException if the family name is invalid. */ public ColumnsDef addFamily( final String family, final ColumnReaderSpec columnReaderSpec ) { return add(FijiColumnName.create(family, null), columnReaderSpec); }