org.apache.druid.segment.QueryableIndex.getColumnHolder()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(9.5k)|赞(0)|评价(0)|浏览(95)

本文整理了Java中org.apache.druid.segment.QueryableIndex.getColumnHolder方法的一些代码示例,展示了QueryableIndex.getColumnHolder的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueryableIndex.getColumnHolder方法的具体详情如下:
包路径:org.apache.druid.segment.QueryableIndex
类名称:QueryableIndex
方法名:getColumnHolder

QueryableIndex.getColumnHolder介绍

暂无

代码示例

代码示例来源:origin: apache/incubator-druid

@Override
public ColumnCapabilities getCapabilities(String column)
{
 return input.getColumnHolder(column).getCapabilities();
}

代码示例来源:origin: apache/incubator-druid

private List<String> getColumnsToInclude(final QueryableIndex index)
{
 final Set<String> columnNames = Sets.newLinkedHashSet(columnNamesFromCli);
 // Empty columnNames => include all columns.
 if (columnNames.isEmpty()) {
  columnNames.add(ColumnHolder.TIME_COLUMN_NAME);
  Iterables.addAll(columnNames, index.getColumnNames());
 } else {
  // Remove any provided columns that do not exist in this segment.
  for (String columnName : ImmutableList.copyOf(columnNames)) {
   if (index.getColumnHolder(columnName) == null) {
    columnNames.remove(columnName);
   }
  }
 }
 return ImmutableList.copyOf(columnNames);
}

代码示例来源:origin: apache/incubator-druid

@Override
public int getDimensionCardinality(String dimension)
{
 ColumnHolder columnHolder = index.getColumnHolder(dimension);
 if (columnHolder == null) {
  return 0;
 }
 try (BaseColumn col = columnHolder.getColumn()) {
  if (!(col instanceof DictionaryEncodedColumn)) {
   return Integer.MAX_VALUE;
  }
  return ((DictionaryEncodedColumn) col).getCardinality();
 }
 catch (IOException e) {
  throw new UncheckedIOException(e);
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
public DateTime getMinTime()
{
 try (final NumericColumn column = (NumericColumn) index.getColumnHolder(ColumnHolder.TIME_COLUMN_NAME).getColumn()) {
  return DateTimes.utc(column.getLongSingleValueRow(0));
 }
}

代码示例来源:origin: apache/incubator-druid

@VisibleForTesting
BitmapValues getBitmapIndex(String dimension, String value)
{
 final ColumnHolder columnHolder = input.getColumnHolder(dimension);
 if (columnHolder == null) {
  return BitmapValues.EMPTY;
 }
 final BitmapIndex bitmaps = columnHolder.getBitmapIndex();
 if (bitmaps == null) {
  return BitmapValues.EMPTY;
 }
 return new ImmutableBitmapValues(bitmaps.getBitmap(bitmaps.getIndex(value)));
}

代码示例来源:origin: apache/incubator-druid

private static long computeTotalCard(final QueryableIndex index, final Iterable<DimensionSpec> dimensionSpecs)
 {
  long totalCard = 0;
  for (DimensionSpec dimension : dimensionSpecs) {
   final ColumnHolder columnHolder = index.getColumnHolder(dimension.getDimension());
   if (columnHolder != null) {
    final BitmapIndex bitmapIndex = columnHolder.getBitmapIndex();
    if (bitmapIndex != null) {
     totalCard += bitmapIndex.getCardinality();
    }
   }
  }
  return totalCard;
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
@Nullable
public Comparable getMinValue(String dimension)
{
 ColumnHolder columnHolder = index.getColumnHolder(dimension);
 if (columnHolder != null && columnHolder.getCapabilities().hasBitmapIndexes()) {
  BitmapIndex bitmap = columnHolder.getBitmapIndex();
  return bitmap.getCardinality() > 0 ? bitmap.getValue(0) : null;
 }
 return null;
}

代码示例来源:origin: apache/incubator-druid

@Override
public BitmapValues getBitmapValues(String dimension, int dictId)
{
 final ColumnHolder columnHolder = input.getColumnHolder(dimension);
 if (columnHolder == null) {
  return BitmapValues.EMPTY;
 }
 final BitmapIndex bitmaps = columnHolder.getBitmapIndex();
 if (bitmaps == null) {
  return BitmapValues.EMPTY;
 }
 if (dictId >= 0) {
  return new ImmutableBitmapValues(bitmaps.getBitmap(dictId));
 } else {
  return BitmapValues.EMPTY;
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
public DateTime getMaxTime()
{
 try (final NumericColumn column = (NumericColumn) index.getColumnHolder(ColumnHolder.TIME_COLUMN_NAME).getColumn()) {
  return DateTimes.utc(column.getLongSingleValueRow(column.length() - 1));
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
public String getColumnTypeName(String columnName)
{
 final ColumnHolder columnHolder = index.getColumnHolder(columnName);
 try (final BaseColumn col = columnHolder.getColumn()) {
  if (col instanceof ComplexColumn) {
   return ((ComplexColumn) col).getTypeName();
  } else {
   return columnHolder.getCapabilities().getType().toString();
  }
 }
 catch (IOException e) {
  throw new UncheckedIOException(e);
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
@Nullable
public Comparable getMaxValue(String dimension)
{
 ColumnHolder columnHolder = index.getColumnHolder(dimension);
 if (columnHolder != null && columnHolder.getCapabilities().hasBitmapIndexes()) {
  BitmapIndex bitmap = columnHolder.getBitmapIndex();
  return bitmap.getCardinality() > 0 ? bitmap.getValue(bitmap.getCardinality() - 1) : null;
 }
 return null;
}

代码示例来源:origin: apache/incubator-druid

private void assertDimCompression(QueryableIndex index, CompressionStrategy expectedStrategy)
  throws Exception
{
 // Java voodoo
 if (expectedStrategy == null || expectedStrategy == CompressionStrategy.UNCOMPRESSED) {
  return;
 }
 DictionaryEncodedColumn encodedColumn = (DictionaryEncodedColumn) index.getColumnHolder("dim2").getColumn();
 Object obj;
 if (encodedColumn.hasMultipleValues()) {
  Field field = StringDictionaryEncodedColumn.class.getDeclaredField("multiValueColumn");
  field.setAccessible(true);
  obj = field.get(encodedColumn);
 } else {
  Field field = StringDictionaryEncodedColumn.class.getDeclaredField("column");
  field.setAccessible(true);
  obj = field.get(encodedColumn);
 }
 // CompressedVSizeColumnarIntsSupplier$CompressedByteSizeColumnarInts
 // CompressedVSizeColumnarMultiIntsSupplier$CompressedVSizeColumnarMultiInts
 Field compressedSupplierField = obj.getClass().getDeclaredField("this$0");
 compressedSupplierField.setAccessible(true);
 Object supplier = compressedSupplierField.get(obj);
 Field compressionField = supplier.getClass().getDeclaredField("compression");
 compressionField.setAccessible(true);
 Object strategy = compressionField.get(supplier);
 Assert.assertEquals(expectedStrategy, strategy);
}

代码示例来源:origin: apache/incubator-druid

@Override
public ColumnValueSelector<?> makeColumnValueSelector(String columnName)
{
 if (virtualColumns.exists(columnName)) {
  return virtualColumns.makeColumnValueSelector(columnName, this);
 }
 BaseColumn column = columnCache.computeIfAbsent(columnName, name -> {
  ColumnHolder holder = index.getColumnHolder(name);
  if (holder != null) {
   return closer.register(holder.getColumn());
  } else {
   return null;
  }
 });
 if (column != null) {
  return column.makeColumnValueSelector(offset);
 } else {
  return NilColumnValueSelector.instance();
 }
}

代码示例来源:origin: apache/incubator-druid

@Override
public String getMetricType(String metric)
{
 final ColumnHolder columnHolder = input.getColumnHolder(metric);
 final ValueType type = columnHolder.getCapabilities().getType();
 switch (type) {
  case FLOAT:
   return "float";
  case LONG:
   return "long";
  case DOUBLE:
   return "double";
  case COMPLEX: {
   try (ComplexColumn complexColumn = (ComplexColumn) columnHolder.getColumn()) {
    return complexColumn.getTypeName();
   }
  }
  default:
   throw new ISE("Unknown type[%s]", type);
 }
}

代码示例来源:origin: apache/incubator-druid

final ExtractionFn extractionFn = dimensionSpec.getExtractionFn();
final ColumnHolder columnHolder = index.getColumnHolder(dimension);
if (columnHolder == null) {
 return DimensionSelector.constant(null, extractionFn);

代码示例来源:origin: apache/incubator-druid

final ColumnHolder columnHolder = index.getColumnHolder(dimension.getDimension());
if (columnHolder == null) {
 continue;

代码示例来源:origin: apache/incubator-druid

);
Assert.assertEquals(2, index.getColumnHolder(ColumnHolder.TIME_COLUMN_NAME).getLength());
Assert.assertEquals(Arrays.asList("dim1", "dim2"), Lists.newArrayList(index.getAvailableDimensions()));
Assert.assertEquals(3, index.getColumnNames().size());

代码示例来源:origin: apache/incubator-druid

@Test
public void testPersistWithSegmentMetadata() throws Exception
{
 final long timestamp = System.currentTimeMillis();
 IncrementalIndex toPersist = IncrementalIndexTest.createIndex(null);
 IncrementalIndexTest.populateIndex(timestamp, toPersist);
 Map<String, Object> metadataElems = ImmutableMap.of("key", "value");
 toPersist.getMetadata().putAll(metadataElems);
 final File tempDir = temporaryFolder.newFolder();
 QueryableIndex index = closer.closeLater(
   indexIO.loadIndex(indexMerger.persist(toPersist, tempDir, indexSpec, null))
 );
 Assert.assertEquals(2, index.getColumnHolder(ColumnHolder.TIME_COLUMN_NAME).getLength());
 Assert.assertEquals(Arrays.asList("dim1", "dim2"), Lists.newArrayList(index.getAvailableDimensions()));
 Assert.assertEquals(3, index.getColumnNames().size());
 assertDimCompression(index, indexSpec.getDimensionCompression());
 Assert.assertEquals(
   new Metadata(
     metadataElems,
     IncrementalIndexTest.getDefaultCombiningAggregatorFactories(),
     null,
     Granularities.NONE,
     Boolean.TRUE
   ),
   index.getMetadata()
 );
}

代码示例来源:origin: apache/incubator-druid

Assert.assertEquals(3, index.getColumnHolder(ColumnHolder.TIME_COLUMN_NAME).getLength());
Assert.assertEquals(
  Arrays.asList("dim1", "dim2"),

代码示例来源:origin: apache/incubator-druid

@Test
public void testPersist() throws Exception
{
 final long timestamp = System.currentTimeMillis();
 IncrementalIndex toPersist = IncrementalIndexTest.createIndex(null);
 IncrementalIndexTest.populateIndex(timestamp, toPersist);
 final File tempDir = temporaryFolder.newFolder();
 QueryableIndex index = closer.closeLater(
   indexIO.loadIndex(indexMerger.persist(toPersist, tempDir, indexSpec, null))
 );
 Assert.assertEquals(2, index.getColumnHolder(ColumnHolder.TIME_COLUMN_NAME).getLength());
 Assert.assertEquals(Arrays.asList("dim1", "dim2"), Lists.newArrayList(index.getAvailableDimensions()));
 Assert.assertEquals(3, index.getColumnNames().size());
 assertDimCompression(index, indexSpec.getDimensionCompression());
 Assert.assertArrayEquals(
   IncrementalIndexTest.getDefaultCombiningAggregatorFactories(),
   index.getMetadata().getAggregators()
 );
 Assert.assertEquals(
   Granularities.NONE,
   index.getMetadata().getQueryGranularity()
 );
}

相关文章