Search in sources :

Example 1 with ColumnSchema

use of com.google.cloud.datacatalog.v1beta1.ColumnSchema in project DataflowTemplates by GoogleCloudPlatform.

the class SchemaUtils method fromBeamField.

private static ColumnSchema fromBeamField(org.apache.beam.sdk.schemas.Schema.Field beamField) {
    ColumnSchema.Builder columnBuilder = ColumnSchema.newBuilder();
    if (beamField.getType().getNullable()) {
        columnBuilder.setMode("NULLABLE");
    } else {
        columnBuilder.setMode("REQUIRED");
    }
    if (beamField.getType().getTypeName() == TypeName.ROW) {
        String columnType = "STRUCT";
        Schema subSchema = fromBeamSchema(beamField.getType().getRowSchema());
        return columnBuilder.setColumn(beamField.getName()).setType(columnType).addAllSubcolumns(subSchema.getColumnsList()).build();
    } else if (LOGICAL_FIELD_TYPES.inverse().containsKey(beamField.getType())) {
        String columnType = LOGICAL_FIELD_TYPES.inverse().get(beamField.getType());
        return columnBuilder.setColumn(beamField.getName()).setType(columnType).build();
    } else {
        String columnType = FIELD_TYPE_NAMES.inverse().get(beamField.getType().getTypeName());
        // TODO(pabloem): Include other characteristics of the field (e.g. required/nullable/etc).
        return columnBuilder.setColumn(beamField.getName()).setType(columnType).build();
    }
}
Also used : ColumnSchema(com.google.cloud.datacatalog.v1beta1.ColumnSchema) Schema(com.google.cloud.datacatalog.v1beta1.Schema) ColumnSchema(com.google.cloud.datacatalog.v1beta1.ColumnSchema)

Aggregations

ColumnSchema (com.google.cloud.datacatalog.v1beta1.ColumnSchema)1 Schema (com.google.cloud.datacatalog.v1beta1.Schema)1