ColumnSchema keyColumn = new ColumnSchema.ColumnSchemaBuilder(KEY, STRING) .key(true) .desiredBlockSize(blockSize) String name = fieldprefix + i; COLUMN_NAMES.add(name); columns.add(new ColumnSchema.ColumnSchemaBuilder(name, STRING) .desiredBlockSize(blockSize) .build());
@Override public void updateSchema(VectorAccessible batch) throws IOException { BatchSchema schema = batch.getSchema(); int i = 0; try { if (!checkForTable(name)) { List<ColumnSchema> columns = new ArrayList<>(); for (MaterializedField f : schema) { columns.add(new ColumnSchema.ColumnSchemaBuilder(f.getName(), getType(f.getType())) .nullable(f.getType().getMode() == DataMode.OPTIONAL) .key(i == 0).build()); i++; } Schema kuduSchema = new Schema(columns); table = client.createTable(name, kuduSchema, new CreateTableOptions()); } } catch (Exception e) { throw new IOException(e); } }
private void createAndFillSchemasTable(KuduClient client) throws KuduException { List<String> existingSchemaNames = listSchemaNamesFromTablets(client); ColumnSchema schemaColumnSchema = new ColumnSchema.ColumnSchemaBuilder("schema", Type.STRING) .key(true).build(); Schema schema = new Schema(ImmutableList.of(schemaColumnSchema)); CreateTableOptions options = new CreateTableOptions(); options.addHashPartitions(ImmutableList.of(schemaColumnSchema.getName()), 2); KuduTable schemasTable = client.createTable(rawSchemasTableName, schema, options); KuduSession session = client.newSession(); try { session.setFlushMode(SessionConfiguration.FlushMode.AUTO_FLUSH_BACKGROUND); for (String schemaName : existingSchemaNames) { Insert insert = schemasTable.newInsert(); insert.getRow().addString(0, schemaName); session.apply(insert); } } finally { session.close(); } }
@Test public void testToString() { ColumnSchema col1 = new ColumnSchemaBuilder("col1", Type.STRING).build(); ColumnSchema col2 = new ColumnSchemaBuilder("col2", Type.INT64).build(); ColumnSchema col3 = new ColumnSchemaBuilder("col3", Type.DECIMAL) .typeAttributes(DecimalUtil.typeAttributes(5, 2)) .build(); assertEquals("Column name: col1, type: string", col1.toString()); assertEquals("Column name: col2, type: int64", col2.toString()); assertEquals("Column name: col3, type: decimal(5, 2)", col3.toString()); }
/** * Clone the given column schema instance. The new instance will include only the name, type, and * nullability of the passed one. * @return a new column schema */ private static ColumnSchema getStrippedColumnSchema(ColumnSchema columnToClone) { return new ColumnSchema.ColumnSchemaBuilder(columnToClone.getName(), columnToClone.getType()) .nullable(columnToClone.isNullable()) .typeAttributes(columnToClone.getTypeAttributes()) .build(); }
private Schema createAllTypesKeySchema() { ArrayList<ColumnSchema> columns = new ArrayList<ColumnSchema>(7); columns.add(new ColumnSchema.ColumnSchemaBuilder("c0", Type.INT8).key(true).build()); columns.add(new ColumnSchema.ColumnSchemaBuilder("c1", Type.INT16).key(true).build()); columns.add(new ColumnSchema.ColumnSchemaBuilder("c2", Type.INT32).key(true).build()); columns.add(new ColumnSchema.ColumnSchemaBuilder("c3", Type.INT64).key(true).build()); columns.add(new ColumnSchema.ColumnSchemaBuilder("c4", Type.UNIXTIME_MICROS).key(true).build()); columns.add(new ColumnSchema.ColumnSchemaBuilder("c5", Type.STRING).key(true).build()); columns.add(new ColumnSchema.ColumnSchemaBuilder("c6", Type.BINARY).key(true).build()); return new Schema(columns); }
private ColumnSchema toColumnSchema(ColumnMetadata columnMetadata, Map<String, ColumnDesign> columnDesignMap) { String name = columnMetadata.getName(); ColumnDesign design = columnDesignMap.getOrDefault(name, ColumnDesign.DEFAULT); Type ktype = TypeHelper.toKuduClientType(columnMetadata.getType()); ColumnSchema.ColumnSchemaBuilder builder = new ColumnSchema.ColumnSchemaBuilder(name, ktype); builder.key(design.isKey()).nullable(design.isNullable()); setEncoding(name, builder, design); setCompression(name, builder, design); setTypeAttributes(columnMetadata, builder); return builder.build(); }
private Schema createTableSchema(Type type) { ColumnSchema key = new ColumnSchema.ColumnSchemaBuilder("key", Type.INT64).key(true).build(); ColumnSchema val = new ColumnSchema.ColumnSchemaBuilder("value", type).nullable(true).build(); return new Schema(ImmutableList.of(key, val)); }
public static Schema createSchemaWithTimestampColumns() { ArrayList<ColumnSchema> columns = new ArrayList<ColumnSchema>(); columns.add(new ColumnSchema.ColumnSchemaBuilder("key", Type.UNIXTIME_MICROS).key(true).build()); columns.add(new ColumnSchema.ColumnSchemaBuilder("c1", Type.UNIXTIME_MICROS).nullable(true).build()); return new Schema(columns); }
public static Schema createManyStringsSchema() { ArrayList<ColumnSchema> columns = new ArrayList<ColumnSchema>(4); columns.add(new ColumnSchema.ColumnSchemaBuilder("key", Type.STRING).key(true).build()); columns.add(new ColumnSchema.ColumnSchemaBuilder("c1", Type.STRING).build()); columns.add(new ColumnSchema.ColumnSchemaBuilder("c2", Type.STRING).build()); columns.add(new ColumnSchema.ColumnSchemaBuilder("c3", Type.STRING).nullable(true).build()); columns.add(new ColumnSchema.ColumnSchemaBuilder("c4", Type.STRING).nullable(true).build()); return new Schema(columns); }
private static Schema createSchema() { ArrayList<ColumnSchema> columns = new ArrayList<>(3); columns.add(new ColumnSchema.ColumnSchemaBuilder("a", Type.STRING).key(true).build()); columns.add(new ColumnSchema.ColumnSchemaBuilder("b", Type.STRING).key(true).build()); columns.add(new ColumnSchema.ColumnSchemaBuilder("c", Type.STRING).key(true).build()); return new Schema(columns); }
columns.add(new ColumnSchema.ColumnSchemaBuilder(tableInfo.getIdColumnName(), KuduDBValidationClassMapper .getValidTypeForClass(tableInfo.getTableIdType())).key(true).build()); ColumnSchemaBuilder columnSchemaBuilder = new ColumnSchema.ColumnSchemaBuilder(columnInfo.getColumnName(), KuduDBValidationClassMapper.getValidTypeForClass(columnInfo.getType())); columns.add(columnSchemaBuilder.build());
ColumnSchema column = new ColumnSchema.ColumnSchemaBuilder(((AbstractAttribute) entityMetadata.getIdAttribute()).getJPAColumnName(), idType).build();
ColumnSchema column = new ColumnSchema.ColumnSchemaBuilder(columnName, type).build();
ColumnSchema column = new ColumnSchema.ColumnSchemaBuilder( ((AbstractAttribute) attribute).getJPAColumnName(), type).build(); KuduPredicate predicate = KuduDBDataHandler.getEqualComparisonPredicate(column, type, value);
/** * Adds the in predicate to builder. * * @param scannerBuilder * the scanner builder * @param inIter * the in iter * @param attribute * the attribute */ private void addInPredicateToBuilder(KuduScannerBuilder scannerBuilder, ListIterator<Expression> inIter, Attribute attribute) { List<Object> finalVals = new ArrayList<>(); Type type = KuduDBValidationClassMapper.getValidTypeForClass(((Field) attribute.getJavaMember()).getType()); ColumnSchema column = new ColumnSchema.ColumnSchemaBuilder(((AbstractAttribute) attribute).getJPAColumnName(), type).build(); while (inIter.hasNext()) { String val = inIter.next().toActualText(); finalVals.add(KuduDBDataHandler.parse(type, val)); } scannerBuilder.addPredicate(KuduDBDataHandler.getInPredicate(column, finalVals)); }
private void addPrimaryKeyColumnsFromEmbeddable(List<ColumnSchema> columns, EmbeddableType embeddable, Field[] fields, MetamodelImpl metaModel) { for (Field f : fields) { if (!ReflectUtils.isTransientOrStatic(f)) { if (f.getType().isAnnotationPresent(Embeddable.class)) { // nested addPrimaryKeyColumnsFromEmbeddable(columns, (EmbeddableType) metaModel.embeddable(f.getType()), f .getType().getDeclaredFields(), metaModel); } else { Attribute attribute = embeddable.getAttribute(f.getName()); columns.add(new ColumnSchema.ColumnSchemaBuilder( ((AbstractAttribute) attribute).getJPAColumnName(), KuduDBValidationClassMapper .getValidTypeForClass(f.getType())).key(true).build()); } } } }
private void buildColumnsFromEmbeddableColumn(EmbeddedColumnInfo embColumnInfo, List<ColumnSchema> columns) { for (ColumnInfo columnInfo : embColumnInfo.getColumns()) { ColumnSchemaBuilder columnSchemaBuilder = new ColumnSchema.ColumnSchemaBuilder(columnInfo.getColumnName(), KuduDBValidationClassMapper.getValidTypeForClass(columnInfo.getType())); columns.add(columnSchemaBuilder.build()); } }
columns.add(new ColumnSchema.ColumnSchemaBuilder("key", Type.INT32).key(true).build()); columns.add(new ColumnSchema.ColumnSchemaBuilder("binary", Type.BINARY).nullable(false).build()); columns.add(new ColumnSchema.ColumnSchemaBuilder("boolean", Type.BOOL).nullable(true).build()); columns.add(new ColumnSchema.ColumnSchemaBuilder("float", Type.FLOAT).nullable(false).build()); columns.add(new ColumnSchema.ColumnSchemaBuilder("string", Type.STRING).nullable(true).build());
private ColumnSchema toColumnSchema(ColumnMetadata columnMetadata) { String name = columnMetadata.getName(); ColumnDesign design = KuduTableProperties.getColumnDesign(columnMetadata.getProperties()); Type ktype = TypeHelper.toKuduClientType(columnMetadata.getType()); ColumnSchema.ColumnSchemaBuilder builder = new ColumnSchema.ColumnSchemaBuilder(name, ktype); builder.key(design.isPrimaryKey()).nullable(design.isNullable()); setEncoding(name, builder, design); setCompression(name, builder, design); setTypeAttributes(columnMetadata, builder); return builder.build(); }