Package com.inadco.hbl.api

Examples of com.inadco.hbl.api.Dimension


                                List<Dimension> dimensions,
                                int dimensionIndex,
                                int keyOffset,
                                TupleFactory tf) throws ExecException {

        Dimension d = dimensions.get(dimensionIndex);
        Object member= input.get(dimensionIndex+1);
       
        // resolve pig byte arrays to java arrays
        if ( member instanceof DataByteArray )
            member = ((DataByteArray)member).get();
       
        if (d instanceof Hierarchy) {
            Hierarchy h = (Hierarchy) d;
            int depth = h.getDepth();
            for (int i = 0; i < depth; i++) {
                h.getKey(member, i, keyHolder, keyOffset);
                if (dimensions.size() == dimensionIndex + 1) {
                    holder.add(tf.newTuple(tf.newTuple(new DataByteArray(keyHolder))));
                    keyHolder = keyHolder.clone();
                } else
                    walkDimensions(input,
                                   holder,
                                   keyHolder,
                                   dimensions,
                                   dimensionIndex + 1,
                                   keyOffset + d.getKeyLen(),
                                   tf);

            }
        } else {
            // non-hierarchy
            d.getKey(member, keyHolder, keyOffset);
            if (dimensions.size() == dimensionIndex + 1) {
                holder.add(tf.newTuple(tf.newTuple(new DataByteArray(keyHolder))));
                keyHolder = keyHolder.clone();
            } else
                walkDimensions(input, holder, keyHolder, dimensions, dimensionIndex + 1, keyOffset + d.getKeyLen(), tf);
        }
    }
View Full Code Here


                partialSpec.toArray(new Range[dimIndex]),
                cuboid,
                so));
            return;
        }
        Dimension dim = dimensions.get(dimIndex);
        List<Slice> slices = dimSlices.get(dim.getName());
        if (slices == null) {

            // generate 'total' slice
            Range allRange = dim.allRange();

            if (partialSpec.size() == dimIndex)
                partialSpec.add(allRange);
            else
                partialSpec.set(dimIndex, allRange);

            generateScanSpecs(cuboid, scanHolder, partialSpec, dimIndex + 1, groupKeyLen, so, measureQualifiers);
        } else {
            if (slices.size() != 1)
                throw new UnsupportedOperationException(
                    "queries to multiple slices of the same dimension are not supported (yet)!");
            Slice slice = slices.iterator().next();
            Range[] ranges = dim.optimizeSliceScan(slice, allowComplements);

            Validate.notEmpty(ranges);

            for (Range r : ranges) {
                SliceOperation nextSo = so;
View Full Code Here

            Integer offset = dim2GroupKeyOffsetMap.get(dimensionName);
            if (offset == null)
                throw new HblException(String.format("Dimension '%s' is not part of the group.", dimensionName));

            byte[] group = delegate.current().getGroup();
            Dimension dim = groupDimName2Dimension.get(dimensionName);
            Validate.notNull(dim);

            return dim.getMember(group, offset);
        } catch (IOException exc) {
            throw new HblException(exc.getMessage(), exc);
        }

    }
View Full Code Here

        Cuboid testCuboid = hblAdmin.getCube().findCuboidForPath(HblUtil.decodeCuboidPath("dim1/dim2"));
        Assert.notNull(testCuboid);

        byte[] key = new byte[testCuboid.getKeyLen()];
        for (long[] data : testData) {
            Dimension dim1 = testCuboid.getCuboidDimensions().get(0);
            Dimension dim2 = testCuboid.getCuboidDimensions().get(1);
        }
    }
View Full Code Here

TOP

Related Classes of com.inadco.hbl.api.Dimension

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.