本文整理匯總了Java中org.apache.kylin.cube.cuboid.Cuboid.findForMandatory方法的典型用法代碼示例。如果您正苦於以下問題:Java Cuboid.findForMandatory方法的具體用法?Java Cuboid.findForMandatory怎麽用?Java Cuboid.findForMandatory使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類org.apache.kylin.cube.cuboid.Cuboid
的用法示例。
在下文中一共展示了Cuboid.findForMandatory方法的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: write
import org.apache.kylin.cube.cuboid.Cuboid; //導入方法依賴的package包/類
@Override
public void write(long cuboidId, GTRecord record) throws IOException {
byte[] key = createKey(cuboidId, record);
final Cuboid cuboid = Cuboid.findForMandatory(cubeDesc, cuboidId);
final int nDims = cuboid.getColumns().size();
final ImmutableBitSet bitSet = new ImmutableBitSet(nDims, nDims + cubeDesc.getMeasures().size());
for (int i = 0; i < nColumns; i++) {
final Object[] values = record.getValues(bitSet, measureValues);
final KeyValue keyValue = keyValueCreators.get(i).create(key, 0, key.length, values);
final Put put = new Put(copy(key, 0, key.length));
byte[] family = copy(keyValue.getFamilyArray(), keyValue.getFamilyOffset(), keyValue.getFamilyLength());
byte[] qualifier = copy(keyValue.getQualifierArray(), keyValue.getQualifierOffset(), keyValue.getQualifierLength());
byte[] value = copy(keyValue.getValueArray(), keyValue.getValueOffset(), keyValue.getValueLength());
put.add(family, qualifier, value);
puts.add(put);
}
if (puts.size() >= BATCH_PUT_THRESHOLD) {
flush();
}
}
示例2: call
import org.apache.kylin.cube.cuboid.Cuboid; //導入方法依賴的package包/類
@Override
public Tuple2<ByteArray, Object[]> call(Row row) throws Exception {
if (initialized == false) {
synchronized (SparkCubingByLayer.class) {
if (initialized == false) {
KylinConfig kConfig = AbstractHadoopJob.loadKylinConfigFromHdfs(conf, metaUrl);
CubeInstance cubeInstance = CubeManager.getInstance(kConfig).getCube(cubeName);
CubeDesc cubeDesc = cubeInstance.getDescriptor();
CubeSegment cubeSegment = cubeInstance.getSegmentById(segmentId);
CubeJoinedFlatTableEnrich interDesc = new CubeJoinedFlatTableEnrich(
EngineFactory.getJoinedFlatTableDesc(cubeSegment), cubeDesc);
long baseCuboidId = Cuboid.getBaseCuboidId(cubeDesc);
Cuboid baseCuboid = Cuboid.findForMandatory(cubeDesc, baseCuboidId);
baseCuboidBuilder = new BaseCuboidBuilder(kConfig, cubeDesc, cubeSegment, interDesc,
AbstractRowKeyEncoder.createInstance(cubeSegment, baseCuboid),
MeasureIngester.create(cubeDesc.getMeasures()), cubeSegment.buildDictionaryMap());
initialized = true;
}
}
}
String[] rowArray = rowToArray(row);
baseCuboidBuilder.resetAggrs();
byte[] rowKey = baseCuboidBuilder.buildKey(rowArray);
Object[] result = baseCuboidBuilder.buildValueObjects(rowArray);
return new Tuple2<>(new ByteArray(rowKey), result);
}
示例3: doMap
import org.apache.kylin.cube.cuboid.Cuboid; //導入方法依賴的package包/類
@Override
public void doMap(Text key, Text value, Context context) throws IOException, InterruptedException {
long cuboidId = rowKeySplitter.split(key.getBytes());
Cuboid parentCuboid = Cuboid.findForMandatory(cubeDesc, cuboidId);
Collection<Long> myChildren = cuboidScheduler.getSpanningCuboid(cuboidId);
// if still empty or null
if (myChildren == null || myChildren.size() == 0) {
context.getCounter(BatchConstants.MAPREDUCE_COUNTER_GROUP_NAME, "Skipped records").increment(1L);
if (skipCounter++ % BatchConstants.NORMAL_RECORD_LOG_THRESHOLD == 0) {
logger.info("Skipping record with ordinal: " + skipCounter);
}
return;
}
context.getCounter(BatchConstants.MAPREDUCE_COUNTER_GROUP_NAME, "Processed records").increment(1L);
if (handleCounter++ % BatchConstants.NORMAL_RECORD_LOG_THRESHOLD == 0) {
logger.info("Handling record with ordinal: " + handleCounter);
logger.info("Parent cuboid: " + parentCuboid.getId() + "; Children: " + myChildren);
}
for (Long child : myChildren) {
Cuboid childCuboid = Cuboid.findForMandatory(cubeDesc, child);
Pair<Integer, ByteArray> result = ndCuboidBuilder.buildKey(parentCuboid, childCuboid, rowKeySplitter.getSplitBuffers());
outputKey.set(result.getSecond().array(), 0, result.getFirst());
context.write(outputKey, value);
}
}
示例4: doMap
import org.apache.kylin.cube.cuboid.Cuboid; //導入方法依賴的package包/類
@Override
public void doMap(Text key, Text value, Context context) throws IOException, InterruptedException {
long cuboidID = rowKeySplitter.split(key.getBytes());
Cuboid cuboid = Cuboid.findForMandatory(cubeDesc, cuboidID);
int fullKeySize = buildKey(cuboid, rowKeySplitter.getSplitBuffers());
outputKey.set(newKeyBuf.array(), 0, fullKeySize);
String baseOutputPath = PathNameCuboidOld;
if (cuboidID == baseCuboid) {
baseOutputPath = PathNameCuboidBase;
}
mos.write(outputKey, value, generateFileName(baseOutputPath));
}
示例5: testEncodeAndDecodeWithUtf8
import org.apache.kylin.cube.cuboid.Cuboid; //導入方法依賴的package包/類
@Test
public void testEncodeAndDecodeWithUtf8() throws IOException {
CubeInstance cube = CubeManager.getInstance(getTestConfig()).getCube("TEST_KYLIN_CUBE_WITHOUT_SLR_READY");
CubeDesc cubeDesc = cube.getDescriptor();
String[] data = new String[8];
data[0] = "2012-12-15";
data[1] = "11848";
data[2] = "Health & Beauty";
data[3] = "Fragrances";
data[4] = "Women";
data[5] = "刊登格式測試";// UTF-8
data[6] = "0";
data[7] = "15";
long baseCuboidId = Cuboid.getBaseCuboidId(cubeDesc);
Cuboid baseCuboid = Cuboid.findForMandatory(cubeDesc, baseCuboidId);
RowKeyEncoder rowKeyEncoder = new RowKeyEncoder(cube.getFirstSegment(), baseCuboid);
byte[] encodedKey = rowKeyEncoder.encode(data);
assertEquals(22 + rowKeyEncoder.getHeaderLength(), encodedKey.length);
RowKeyDecoder rowKeyDecoder = new RowKeyDecoder(cube.getFirstSegment());
rowKeyDecoder.decode(encodedKey);
List<String> values = rowKeyDecoder.getValues();
assertEquals("[" + millis("2012-12-15") + ", 11848, Health & Beauty, Fragrances, Women, 刊登格式, 0, 15]", values.toString());
}
示例6: testEncodeWithoutSlr
import org.apache.kylin.cube.cuboid.Cuboid; //導入方法依賴的package包/類
@Test
public void testEncodeWithoutSlr() throws Exception {
CubeInstance cube = CubeManager.getInstance(getTestConfig()).getCube("TEST_KYLIN_CUBE_WITHOUT_SLR_READY");
// CubeSegment seg = cube.getTheOnlySegment();
CubeDesc cubeDesc = cube.getDescriptor();
// String data =
// "2013-08-18Abbigliamento e accessoriDonna: AccessoriSciarpFoulard e ScialliAuctionItalyRegular";
String[] data = new String[8];
data[0] = "2012-12-15";
data[1] = "11848";
data[2] = "Health & Beauty";
data[3] = "Fragrances";
data[4] = "Women";
data[5] = "FP-GTC";
data[6] = "0";
data[7] = "15";
long baseCuboidId = Cuboid.getBaseCuboidId(cubeDesc);
Cuboid baseCuboid = Cuboid.findForMandatory(cubeDesc, baseCuboidId);
RowKeyEncoder rowKeyEncoder = new RowKeyEncoder(cube.getFirstSegment(), baseCuboid);
byte[] encodedKey = rowKeyEncoder.encode(data);
assertEquals(22 + rowKeyEncoder.getHeaderLength(), encodedKey.length);
byte[] cuboidId = Arrays.copyOfRange(encodedKey, RowConstants.ROWKEY_SHARDID_LEN, rowKeyEncoder.getHeaderLength());
byte[] rest = Arrays.copyOfRange(encodedKey, rowKeyEncoder.getHeaderLength(), encodedKey.length);
assertEquals(255, Bytes.toLong(cuboidId));
assertArrayEquals(new byte[] { 11, 55, -13, 13, 22, 34, 121, 70, 80, 45, 71, 84, 67, 9, 9, 9, 9, 9, 9, 0, 10, 5 }, rest);
}
示例7: testEncodeWithSlr
import org.apache.kylin.cube.cuboid.Cuboid; //導入方法依賴的package包/類
@Ignore
@Test
public void testEncodeWithSlr() throws Exception {
CubeInstance cube = CubeManager.getInstance(getTestConfig()).getCube("TEST_KYLIN_CUBE_WITH_SLR_READY");
// CubeSegment seg = cube.getTheOnlySegment();
CubeDesc cubeDesc = cube.getDescriptor();
// String data =
// "1234567892013-08-18Abbigliamento e accessoriDonna: AccessoriSciarpFoulard e ScialliAuctionItalyRegular";
String[] data = new String[9];
data[0] = "123456789";
data[1] = "2012-12-15";
data[2] = "11848";
data[3] = "Health & Beauty";
data[4] = "Fragrances";
data[5] = "Women";
data[6] = "FP-GTC";
data[7] = "0";
data[8] = "15";
long baseCuboidId = Cuboid.getBaseCuboidId(cubeDesc);
Cuboid baseCuboid = Cuboid.findForMandatory(cubeDesc, baseCuboidId);
RowKeyEncoder rowKeyEncoder = new RowKeyEncoder(cube.getFirstSegment(), baseCuboid);
byte[] encodedKey = rowKeyEncoder.encode(data);
assertEquals(43 + rowKeyEncoder.getHeaderLength(), encodedKey.length);
byte[] shard = Arrays.copyOfRange(encodedKey, 0, RowConstants.ROWKEY_SHARDID_LEN);
@SuppressWarnings("unused")
byte[] sellerId = Arrays.copyOfRange(encodedKey, rowKeyEncoder.getHeaderLength(), 4 + rowKeyEncoder.getHeaderLength());
byte[] cuboidId = Arrays.copyOfRange(encodedKey, RowConstants.ROWKEY_SHARDID_LEN, rowKeyEncoder.getHeaderLength());
byte[] rest = Arrays.copyOfRange(encodedKey, 4 + rowKeyEncoder.getHeaderLength(), encodedKey.length);
assertEquals(0, Bytes.toShort(shard));
// assertTrue(Bytes.toString(sellerId).startsWith("123456789"));
assertEquals(511, Bytes.toLong(cuboidId));
assertArrayEquals(new byte[] { 11, 55, -13, 49, 49, 56, 52, 56, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 22, 34, 121, 70, 80, 45, 71, 84, 67, 9, 9, 9, 9, 9, 9, 0, 10, 5 }, rest);
}
示例8: testEncodeWithSlr2
import org.apache.kylin.cube.cuboid.Cuboid; //導入方法依賴的package包/類
@Ignore
@Test
public void testEncodeWithSlr2() throws Exception {
CubeInstance cube = CubeManager.getInstance(getTestConfig()).getCube("TEST_KYLIN_CUBE_WITH_SLR_READY");
// CubeSegment seg = cube.getTheOnlySegment();
CubeDesc cubeDesc = cube.getDescriptor();
// String data =
// "1234567892013-08-18Abbigliamento e accessoriDonna: AccessoriSciarpFoulard e ScialliAuctionItalyRegular";
String[] data = new String[9];
data[0] = "123456789";
data[1] = null;
data[2] = null;
data[3] = null;
data[4] = null;
data[5] = null;
data[6] = null;
data[7] = null;
data[8] = null;
long baseCuboidId = Cuboid.getBaseCuboidId(cubeDesc);
Cuboid baseCuboid = Cuboid.findForMandatory(cubeDesc, baseCuboidId);
RowKeyEncoder rowKeyEncoder = new RowKeyEncoder(cube.getFirstSegment(), baseCuboid);
byte[] encodedKey = rowKeyEncoder.encode(data);
assertEquals(43 + rowKeyEncoder.getHeaderLength(), encodedKey.length);
byte[] shard = Arrays.copyOfRange(encodedKey, 0, RowConstants.ROWKEY_SHARDID_LEN);
byte[] cuboidId = Arrays.copyOfRange(encodedKey, RowConstants.ROWKEY_SHARDID_LEN, rowKeyEncoder.getHeaderLength());
@SuppressWarnings("unused")
byte[] sellerId = Arrays.copyOfRange(encodedKey, rowKeyEncoder.getHeaderLength(), 18 + rowKeyEncoder.getHeaderLength());
byte[] rest = Arrays.copyOfRange(encodedKey, 4 + rowKeyEncoder.getHeaderLength(), encodedKey.length);
assertEquals(0, Bytes.toShort(shard));
//assertTrue(Bytes.toString(sellerId).startsWith("123456789"));
assertEquals(511, Bytes.toLong(cuboidId));
assertArrayEquals(new byte[] { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, rest);
}
示例9: initCuboid
import org.apache.kylin.cube.cuboid.Cuboid; //導入方法依賴的package包/類
private void initCuboid(long cuboidID) {
if (this.cuboid != null && this.cuboid.getId() == cuboidID) {
return;
}
this.cuboid = Cuboid.findForMandatory(cubeDesc, cuboidID);
}