/** create a mockup table for unit test */ public static TableDesc mockup(String tableName) { TableDesc mockup = new TableDesc(); mockup.setName(tableName); return mockup; }
TableDesc ret = makeCopy ? new TableDesc(this) : this; ColumnDesc[] existingColumns = ret.columns; List<ColumnDesc> newColumns = Lists.newArrayList();
public static TblColRef newInnerColumn(String columnName, InnerDataTypeEnum dataType, String parserDescription) { ColumnDesc column = new ColumnDesc(); column.setName(columnName); TableDesc table = new TableDesc(); column.setTable(table); TblColRef colRef = new TblColRef(column); colRef.markInnerColumn(dataType); colRef.parserDescription = parserDescription; return colRef; }
@Override public Pair<TableDesc, TableExtDesc> loadTableMetadata(String database, String table, String prj) throws SQLException { TableDesc tableDesc = new TableDesc(); tableDesc.setDatabase(database.toUpperCase(Locale.ROOT)); tableDesc.setName(table.toUpperCase(Locale.ROOT));
@Override public IReadableTable createReadableTable(TableDesc tableDesc, String uuid) { // hive view must have been materialized already // ref HiveMRInput.createLookupHiveViewMaterializationStep() if (tableDesc.isView()) { KylinConfig config = KylinConfig.getInstanceFromEnv(); String tableName = tableDesc.getMaterializedName(uuid); tableDesc = new TableDesc(); tableDesc.setDatabase(config.getHiveDatabaseForIntermediateTable()); tableDesc.setName(tableName); } return new HiveTable(tableDesc); }
@Test public void testSerialize08() { TableDesc table = new TableDesc(); table.setDatabase("DEFAULT"); ColumnDesc column = new ColumnDesc(); column.setTable(table); TblColRef colRef = column.getRef(); List<TblColRef> groups = new ArrayList<TblColRef>(); groups.add(colRef); assertFilterSerDe(buildEQCompareFilter(groups, 0)); }
public static TableDesc generateKylinTable(KylinConfig kylinConfig, SinkTool sinkTool, String subject, List<Pair<String, String>> columns) { TableDesc kylinTable = new TableDesc(); Pair<String, String> tableNameSplits = ActiveReservoirReporter .getTableNameSplits(sinkTool.getTableNameForMetrics(subject)); kylinTable.setUuid(RandomUtil.randomUUID().toString()); kylinTable.setDatabase(tableNameSplits.getFirst()); kylinTable.setName(tableNameSplits.getSecond()); kylinTable.setTableType(null); kylinTable.setLastModified(0L); kylinTable.setSourceType(sinkTool.getSourceType()); ColumnDesc[] columnDescs = new ColumnDesc[columns.size()]; for (int i = 0; i < columns.size(); i++) { columnDescs[i] = new ColumnDesc(); Pair<String, String> entry = columns.get(i); columnDescs[i].setId(Integer.toString(i + 1)); columnDescs[i].setName(entry.getFirst()); columnDescs[i].setDatatype(entry.getSecond()); } kylinTable.setColumns(columnDescs); kylinTable.init(kylinConfig, MetricsManager.SYSTEM_PROJECT); return kylinTable; } }
@Override public Pair<TableDesc, TableExtDesc> loadTableMetadata(String database, String table, String prj) throws SQLException { TableDesc tableDesc = new TableDesc(); tableDesc.setDatabase(database.toUpperCase(Locale.ROOT)); tableDesc.setName(table.toUpperCase(Locale.ROOT));
@Test public void testSerialize07() { TableDesc table = new TableDesc(); table.setName("TEST_KYLIN_FACT"); table.setDatabase("DEFAULT"); ColumnDesc column = new ColumnDesc(); column.setTable(table); TblColRef colRef = column.getRef(); List<TblColRef> groups = new ArrayList<TblColRef>(); groups.add(colRef); assertFilterSerDe(buildEQCompareFilter(groups, 0)); }
/** * Make sure the returned table desc is project-specific. * * All locks on srcTableMapLock are WRITE LOCKS because of this method!! */ private TableDesc getProjectSpecificTableDesc(String fullTableName, String prj) { String key = mapKey(fullTableName, prj); TableDesc result = srcTableMap.get(key); if (result == null) { try (AutoLock lock = srcTableMapLock.lockForWrite()) { result = srcTableMap.get(mapKey(fullTableName, null)); if (result != null) { result = new TableDesc(result);// deep copy of global tabledesc result.setLastModified(0); result.setProject(prj); result.setBorrowedFromGlobal(true); srcTableMap.putLocal(key, result); } } } return result; }
@Override public void deserialize(IFilterCodeSystem<?> cs, ByteBuffer buffer) { String tableName = BytesUtil.readUTFString(buffer); if (_QUALIFIED_.equals(tableName)) { // qualified column (from model) String model = BytesUtil.readUTFString(buffer); String alias = BytesUtil.readUTFString(buffer); String col = BytesUtil.readUTFString(buffer); KylinConfig config = KylinConfig.getInstanceFromEnv(); DataModelDesc modelDesc = DataModelManager.getInstance(config).getDataModelDesc(model); this.columnRef = modelDesc.findColumn(alias, col); } else { // un-qualified column TableDesc tableDesc = null; if (tableName != null) { tableDesc = new TableDesc(); tableDesc.setName(tableName); } ColumnDesc column = new ColumnDesc(); column.setId(BytesUtil.readUTFString(buffer)); column.setName(BytesUtil.readUTFString(buffer)); column.setDatatype(BytesUtil.readUTFString(buffer)); column.init(tableDesc); this.columnRef = column.getRef(); } }
tableDesc = new TableDesc(); tableDesc.setName(tableName);
@Override public CoprocessorRowType deserialize(ByteBuffer in) { int n = BytesUtil.readVInt(in); int bodyOffset = BytesUtil.readVInt(in); TblColRef[] cols = new TblColRef[n]; int[] colSizes = new int[n]; for (int i = 0; i < n; i++) { String tableName = BytesUtil.readAsciiString(in); String colName = BytesUtil.readAsciiString(in); String datatype = BytesUtil.readAsciiString(in); TableDesc table = new TableDesc(); table.setName(tableName); ColumnDesc col = new ColumnDesc(); col.setTable(table); col.setName(colName); col.setDatatype(datatype); col.init(table); cols[i] = col.getRef(); int colSize = BytesUtil.readVInt(in); colSizes[i] = colSize; } return new CoprocessorRowType(cols, colSizes, bodyOffset); } };
public SnapshotTable buildSnapshotTable(CubeSegment cubeSeg, String lookupTable, String uuid) throws IOException { // work on copy instead of cached objects CubeInstance cubeCopy = cubeSeg.getCubeInstance().latestCopyForWrite(); // get a latest copy CubeSegment segCopy = cubeCopy.getSegmentById(cubeSeg.getUuid()); TableMetadataManager metaMgr = getTableManager(); SnapshotManager snapshotMgr = getSnapshotManager(); TableDesc tableDesc = new TableDesc(metaMgr.getTableDesc(lookupTable, segCopy.getProject())); IReadableTable hiveTable = SourceManager.createReadableTable(tableDesc, uuid); SnapshotTable snapshot = snapshotMgr.buildSnapshot(hiveTable, tableDesc, cubeSeg.getConfig()); CubeDesc cubeDesc = cubeSeg.getCubeDesc(); if (!cubeDesc.isGlobalSnapshotTable(lookupTable)) { segCopy.putSnapshotResPath(lookupTable, snapshot.getResourcePath()); CubeUpdate update = new CubeUpdate(cubeCopy); update.setToUpdateSegs(segCopy); updateCube(update); // Update the input cubeSeg after the resource store updated cubeSeg.putSnapshotResPath(lookupTable, segCopy.getSnapshotResPath(lookupTable)); } else { CubeUpdate cubeUpdate = new CubeUpdate(cubeCopy); Map<String, String> map = Maps.newHashMap(); map.put(lookupTable, snapshot.getResourcePath()); cubeUpdate.setUpdateTableSnapshotPath(map); updateCube(cubeUpdate); cubeSeg.getCubeInstance().putSnapshotResPath(lookupTable, snapshot.getResourcePath()); } return snapshot; } }
public static TblColRef newInnerColumn(String columnName, InnerDataTypeEnum dataType) { ColumnDesc column = new ColumnDesc(); column.setName(columnName); TableDesc table = new TableDesc(); column.setTable(table); TblColRef colRef = new TblColRef(column); colRef.markInnerColumn(dataType); return colRef; }
@Override public void deserialize(byte[] bytes) { ColumnDesc column = new ColumnDesc(); ByteBuffer buffer = ByteBuffer.wrap(bytes); String tableName = BytesUtil.readUTFString(buffer); if (tableName != null) { TableDesc table = new TableDesc(); table.setName(tableName); column.setTable(table); } column.setName(BytesUtil.readUTFString(buffer)); column.setDatatype(BytesUtil.readUTFString(buffer)); this.columnRef = new TblColRef(column); } }
@Test public void testSerialize08() { TableDesc table = new TableDesc(); table.setDatabase("DEFAULT"); ColumnDesc column = new ColumnDesc(); column.setTable(table); TblColRef colRef = new TblColRef(column); List<TblColRef> groups = new ArrayList<TblColRef>(); groups.add(colRef); TupleFilter filter = buildCompareFilter(groups, 0); byte[] bytes = TupleFilterSerializer.serialize(filter); TupleFilter newFilter = TupleFilterSerializer.deserialize(bytes); compareFilter(filter, newFilter); }
@Test public void testSerialize07() { TableDesc table = new TableDesc(); table.setName("TEST_KYLIN_FACT"); table.setDatabase("DEFAULT"); ColumnDesc column = new ColumnDesc(); column.setTable(table); TblColRef colRef = new TblColRef(column); List<TblColRef> groups = new ArrayList<TblColRef>(); groups.add(colRef); TupleFilter filter = buildCompareFilter(groups, 0); byte[] bytes = TupleFilterSerializer.serialize(filter); TupleFilter newFilter = TupleFilterSerializer.deserialize(bytes); compareFilter(filter, newFilter); }
private CoprocessorRowType newRowType() { TableDesc t = new TableDesc(); t.setName("TABLE"); t.setDatabase("DEFAULT"); TblColRef[] cols = new TblColRef[] { newCol("A", t), newCol("B", t), newCol("C", t), newCol("D", t) }; int[] sizes = new int[] { 1, 1, 1, 1 }; return new CoprocessorRowType(cols, sizes); }