Package io.druid.segment

Examples of io.druid.segment.ObjectColumnSelector


  }

  @Override
  public Aggregator factorize(ColumnSelectorFactory metricFactory)
  {
    ObjectColumnSelector selector = metricFactory.makeObjectColumnSelector(fieldName);

    if (selector == null) {
      return Aggregators.noopAggregator();
    }

    final Class classOfObject = selector.classOfObject();
    if (classOfObject.equals(Object.class) || HyperLogLogCollector.class.isAssignableFrom(classOfObject)) {
      return new HyperUniquesAggregator(name, selector);
    }

    throw new IAE(
View Full Code Here


  }

  @Override
  public BufferAggregator factorizeBuffered(ColumnSelectorFactory metricFactory)
  {
    ObjectColumnSelector selector = metricFactory.makeObjectColumnSelector(fieldName);

    if (selector == null) {
      return Aggregators.noopBufferAggregator();
    }

    final Class classOfObject = selector.classOfObject();
    if (classOfObject.equals(Object.class) || HyperLogLogCollector.class.isAssignableFrom(classOfObject)) {
      return new HyperUniquesBufferAggregator(selector);
    }

    throw new IAE(
View Full Code Here

        final int size = selectorList.length;
        final Object[] args = new Object[size + 1];

        args[0] = current;
        for (int i = 0 ; i < size ; i++) {
          final ObjectColumnSelector selector = selectorList[i];
          if (selector != null) {
            final Object arg = selector.get();
            if (arg != null && arg.getClass().isArray()) {
              // Context.javaToJS on an array sort of works, although it returns false for Array.isArray(...) and
              // may have other issues too. Let's just copy the array and wrap that.
              final Object[] arrayAsObjectArray = new Object[Array.getLength(arg)];
              for (int j = 0; j < Array.getLength(arg); j++) {
View Full Code Here

  }

  @Override
  public Aggregator factorize(ColumnSelectorFactory metricFactory)
  {
    ObjectColumnSelector selector = metricFactory.makeObjectColumnSelector(fieldName);

    if (selector == null) {
      // gracefully handle undefined metrics

      selector = new ObjectColumnSelector<ApproximateHistogram>()
      {
        @Override
        public Class<ApproximateHistogram> classOfObject()
        {
          return ApproximateHistogram.class;
        }

        @Override
        public ApproximateHistogram get()
        {
          return new ApproximateHistogram(0);
        }
      };
    }

    final Class cls = selector.classOfObject();
    if (cls.equals(Object.class) || ApproximateHistogram.class.isAssignableFrom(cls)) {
      return new ApproximateHistogramFoldingAggregator(
          name,
          selector,
          resolution,
View Full Code Here

  }

  @Override
  public BufferAggregator factorizeBuffered(ColumnSelectorFactory metricFactory)
  {
    ObjectColumnSelector selector = metricFactory.makeObjectColumnSelector(fieldName);

    if (selector == null) {
      // gracefully handle undefined metrics

      selector = new ObjectColumnSelector<ApproximateHistogram>()
      {
        @Override
        public Class<ApproximateHistogram> classOfObject()
        {
          return ApproximateHistogram.class;
        }

        @Override
        public ApproximateHistogram get()
        {
          return new ApproximateHistogram(0);
        }
      };
    }

    final Class cls = selector.classOfObject();
    if (cls.equals(Object.class) || ApproximateHistogram.class.isAssignableFrom(cls)) {
      return new ApproximateHistogramFoldingBufferAggregator(selector, resolution, lowerLimit, upperLimit);
    }

    throw new IAE(
View Full Code Here

                if (serde == null) {
                  throw new ISE("Don't know how to handle type[%s]", typeName);
                }

                final ComplexMetricExtractor extractor = serde.getExtractor();
                return new ObjectColumnSelector()
                {
                  @Override
                  public Class classOfObject()
                  {
                    return extractor.extractedClass();
View Full Code Here

                if (metricIndexInt != null) {
                  final int metricIndex = metricIndexInt;

                  final ComplexMetricSerde serde = ComplexMetrics.getSerdeForType(index.getMetricType(columnName));
                  final BufferAggregator agg = index.getAggregator(metricIndex);
                  return new ObjectColumnSelector()
                  {
                    @Override
                    public Class classOfObject()
                    {
                      return serde.getObjectStrategy().getClazz();
View Full Code Here

                        }
                      }

                      final Map<String, ObjectColumnSelector> metSelectors = Maps.newHashMap();
                      for (String metric : metrics) {
                        final ObjectColumnSelector metricSelector = cursor.makeObjectColumnSelector(metric);
                        if (metricSelector != null) {
                          metSelectors.put(metric, metricSelector);
                        }
                      }

                      return Sequences.simple(
                          new Iterable<InputRow>()
                          {
                            @Override
                            public Iterator<InputRow> iterator()
                            {
                              return new Iterator<InputRow>()
                              {
                                @Override
                                public boolean hasNext()
                                {
                                  return !cursor.isDone();
                                }

                                @Override
                                public InputRow next()
                                {
                                  final Map<String, Object> theEvent = Maps.newLinkedHashMap();
                                  final long timestamp = timestampColumnSelector.get();
                                  theEvent.put(EventHolder.timestampKey, new DateTime(timestamp));

                                  for (Map.Entry<String, DimensionSelector> dimSelector : dimSelectors.entrySet()) {
                                    final String dim = dimSelector.getKey();
                                    final DimensionSelector selector = dimSelector.getValue();
                                    final IndexedInts vals = selector.getRow();

                                    if (vals.size() == 1) {
                                      final String dimVal = selector.lookupName(vals.get(0));
                                      theEvent.put(dim, dimVal);
                                    } else {
                                      List<String> dimVals = Lists.newArrayList();
                                      for (int i = 0; i < vals.size(); ++i) {
                                        dimVals.add(selector.lookupName(vals.get(i)));
                                      }
                                      theEvent.put(dim, dimVals);
                                    }
                                  }

                                  for (Map.Entry<String, ObjectColumnSelector> metSelector : metSelectors.entrySet()) {
                                    final String metric = metSelector.getKey();
                                    final ObjectColumnSelector selector = metSelector.getValue();
                                    theEvent.put(metric, selector.get());
                                  }
                                  cursor.advance();
                                  return new MapBasedInputRow(timestamp, dims, theEvent);
                                }
View Full Code Here

              dimSelectors.put(dim, dimSelector);
            }

            final Map<String, ObjectColumnSelector> metSelectors = Maps.newHashMap();
            for (String metric : metrics) {
              final ObjectColumnSelector metricSelector = cursor.makeObjectColumnSelector(metric);
              metSelectors.put(metric, metricSelector);
            }

            int startOffset;
            if (query.getPagingSpec().getPagingIdentifiers() == null) {
              startOffset = 0;
            } else {
              Integer offset = query.getPagingSpec().getPagingIdentifiers().get(segment.getIdentifier());
              startOffset = (offset == null) ? 0 : offset;
            }

            cursor.advanceTo(startOffset);

            int offset = 0;
            while (!cursor.isDone() && offset < query.getPagingSpec().getThreshold()) {
              final Map<String, Object> theEvent = Maps.newLinkedHashMap();
              theEvent.put(EventHolder.timestampKey, new DateTime(timestampColumnSelector.get()));

              for (Map.Entry<String, DimensionSelector> dimSelector : dimSelectors.entrySet()) {
                final String dim = dimSelector.getKey();
                final DimensionSelector selector = dimSelector.getValue();

                if (selector == null) {
                  theEvent.put(dim, null);
                } else {
                  final IndexedInts vals = selector.getRow();

                  if (vals.size() == 1) {
                    final String dimVal = selector.lookupName(vals.get(0));
                    theEvent.put(dim, dimVal);
                  } else {
                    List<String> dimVals = Lists.newArrayList();
                    for (int i = 0; i < vals.size(); ++i) {
                      dimVals.add(selector.lookupName(vals.get(i)));
                    }
                    theEvent.put(dim, dimVals);
                  }
                }
              }

              for (Map.Entry<String, ObjectColumnSelector> metSelector : metSelectors.entrySet()) {
                final String metric = metSelector.getKey();
                final ObjectColumnSelector selector = metSelector.getValue();

                if (selector == null) {
                  theEvent.put(metric, null);
                } else {
                  theEvent.put(metric, selector.get());
                }
              }

              builder.addEntry(
                  new EventHolder(
View Full Code Here

TOP

Related Classes of io.druid.segment.ObjectColumnSelector

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.