本文整理了Java中org.apache.kafka.connect.data.Field
类的一些代码示例,展示了Field
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Field
类的具体详情如下:
包路径:org.apache.kafka.connect.data.Field
类名称:Field
[英]A field in a Struct, consisting of a field name, index, and Schema for the field value.
[中]结构中的一种字段,由字段名、索引和字段值的模式组成。
代码示例来源:origin: debezium/debezium
/**
* Handle the unexpected value from a row with a column type of {@link Types#BLOB}, {@link Types#BINARY},
* {@link Types#VARBINARY}, {@link Types#LONGVARBINARY}.
*
* @param value the binary value for which no conversion was found; never null
* @param fieldDefn the field definition in the Kafka Connect schema; never null
* @return the converted value, or null if the conversion could not be made and the column allows nulls
* @throws IllegalArgumentException if the value could not be converted but the column does not allow nulls
* @see #convertBinary(Column, Field, Object)
*/
protected byte[] unexpectedBinary(Object value, Field fieldDefn) {
logger.warn("Unexpected JDBC BINARY value for field {} with schema {}: class={}, value={}", fieldDefn.name(),
fieldDefn.schema(), value.getClass(), value);
return null;
}
代码示例来源:origin: confluentinc/ksql
@Test
public void shouldMatchNameWithAlias() {
final Field field = new Field("foo", 0, Schema.INT32_SCHEMA);
assertThat(SchemaUtil.matchFieldName(field, "bar.foo"), is(true));
}
代码示例来源:origin: debezium/debezium
private static boolean areFieldListsEqual(List<Field> fields1, List<Field> fields2) {
if (fields1 == null && fields2 != null || fields1 != null && fields2 == null) {
return false;
}
if (fields1.size() != fields2.size()) {
return false;
}
for(int i = 0; i < fields1.size(); i++) {
Field field1 = fields1.get(i);
Field field2 = fields2.get(i);
boolean equal = Objects.equals(field1.index(), field2.index()) &&
Objects.equals(field1.name(), field2.name()) &&
areConnectSchemasEqual(field1.schema(), field2.schema());
if (!equal) {
return false;
}
}
return true;
}
}
代码示例来源:origin: debezium/debezium
protected Object convertTimestampToLocalDateTime(Column column, Field fieldDefn, Object data) {
if (data == null && !fieldDefn.schema().isOptional()) {
return null;
}
if (!(data instanceof Timestamp)) {
return data;
}
return ((Timestamp)data).toLocalDateTime();
}
}
代码示例来源:origin: confluentinc/ksql
private String avroCompatibleFieldName(final Field field) {
// Currently the only incompatible field names expected are fully qualified
// column identifiers. Once quoted identifier support is introduced we will
// need to implement something more generic here.
return field.name().replace(".", "_");
}
代码示例来源:origin: confluentinc/ksql
public Struct toConnectRow(final GenericRow row) {
final Struct struct = new Struct(schema);
schema.fields().forEach(
field -> struct.put(field, row.getColumns().get(field.index()))
);
return struct;
}
}
代码示例来源:origin: confluentinc/ksql
@Override
public Struct toConnectRow(final GenericRow genericRow) {
final List<Object> columns = new ArrayList<>(genericRow.getColumns().size());
for (int i = 0; i < genericRow.getColumns().size(); i++) {
columns.add(
replaceSchema(
avroCompatibleSchema.fields().get(i).schema(),
genericRow.getColumns().get(i)));
}
return innerTranslator.toConnectRow(new GenericRow(columns));
}
代码示例来源:origin: confluentinc/ksql
public static boolean matchFieldName(final Field field, final String fieldName) {
return field.name().equals(fieldName)
|| field.name().equals(fieldName.substring(fieldName.indexOf(".") + 1));
}
代码示例来源:origin: confluentinc/ksql
public static String getSchemaDefinitionString(final Schema schema) {
return schema.fields().stream()
.map(field -> field.name() + " : " + getSqlTypeName(field.schema()))
.collect(Collectors.joining(", ", "[", "]"));
}
代码示例来源:origin: debezium/debezium
/**
* Convert an unknown data value.
*
* @param column the column definition describing the {@code data} value; never null
* @param fieldDefn the field definition; never null
* @param data the data object to be converted into a {@link Date Kafka Connect date} type; never null
* @return the converted value, or null if the conversion could not be made and the column allows nulls
* @throws IllegalArgumentException if the value could not be converted but the column does not allow nulls
*/
protected Object handleUnknownData(Column column, Field fieldDefn, Object data) {
if (column.isOptional() || fieldDefn.schema().isOptional()) {
Class<?> dataClass = data.getClass();
logger.warn("Unexpected value for JDBC type {} and column {}: class={}", column.jdbcType(), column,
dataClass.isArray() ? dataClass.getSimpleName() : dataClass.getName()); // don't include value in case its
// sensitive
return null;
}
throw new IllegalArgumentException("Unexpected value for JDBC type " + column.jdbcType() + " and column " + column +
": class=" + data.getClass()); // don't include value in case its sensitive
}
代码示例来源:origin: debezium/debezium
else
sb.append(", ");
appendFirst(field.name(), s.get(field));
Field f = (Field) obj;
sb.append('{');
appendFirst("name", f.name());
appendAdditional("index", f.index());
appendAdditional("schema", f.schema());
sb.append('}');
} else if (obj instanceof String) {
代码示例来源:origin: confluentinc/ksql
public static String getFieldNameWithNoAlias(final Field field) {
final String name = field.name();
if (name.contains(".")) {
return name.substring(name.indexOf(".") + 1);
} else {
return name;
}
}
代码示例来源:origin: confluentinc/ksql
@Test
public void shouldNotMatchDifferentName() {
final Field field = new Field("foo", 0, Schema.INT32_SCHEMA);
assertThat(SchemaUtil.matchFieldName(field, "bar"), is(false));
}
代码示例来源:origin: confluentinc/ksql
private static String getStructString(final Schema schema) {
return schema.fields().stream()
.map(field -> field.name() + " " + getSqlTypeName(field.schema()))
.collect(Collectors.joining(", ", "STRUCT<", ">"));
}
代码示例来源:origin: confluentinc/ksql
@Override
public GenericRow toKsqlRow(final Schema connectSchema, final Object connectObject) {
final GenericRow avroCompatibleRow = innerTranslator.toKsqlRow(connectSchema, connectObject);
if (avroCompatibleRow == null) {
return null;
}
final List<Object> columns = new ArrayList<>(avroCompatibleRow.getColumns().size());
for (int i = 0; i < avroCompatibleRow.getColumns().size(); i++) {
columns.add(
replaceSchema(
ksqlSchema.fields().get(i).schema(),
avroCompatibleRow.getColumns().get(i)));
}
return new GenericRow(columns);
}
代码示例来源:origin: debezium/debezium
assertThat(values.field("C1").name()).isEqualTo("C1");
assertThat(values.field("C1").index()).isEqualTo(0);
assertThat(values.field("C1").schema()).isEqualTo(SchemaBuilder.string().build());
assertThat(values.field("C2").name()).isEqualTo("C2");
assertThat(values.field("C2").index()).isEqualTo(1);
assertThat(values.field("C2").schema()).isEqualTo(Decimal.builder(3).parameter("connect.decimal.precision", "5").optional().build()); // scale of 3
assertThat(values.field("C3").name()).isEqualTo("C3");
assertThat(values.field("C3").index()).isEqualTo(2);
assertThat(values.field("C3").schema()).isEqualTo(Date.builder().optional().build()); // optional date
assertThat(values.field("C4").name()).isEqualTo("C4");
assertThat(values.field("C4").index()).isEqualTo(3);
assertThat(values.field("C4").schema()).isEqualTo(SchemaBuilder.int32().optional().build()); // JDBC INTEGER = 32 bits
assertThat(values.field("C5").index()).isEqualTo(4);
assertThat(values.field("C5").schema()).isEqualTo(SchemaBuilder.bytes().build()); // JDBC BINARY = bytes
assertThat(values.field("C6").index()).isEqualTo(5);
assertThat(values.field("C6").schema()).isEqualTo(SchemaBuilder.int16().build());
代码示例来源:origin: confluentinc/ksql
public static Set<Integer> getRowTimeRowKeyIndexes(final Schema schema) {
final Set<Integer> indexSet = new HashSet<>();
for (int i = 0; i < schema.fields().size(); i++) {
final Field field = schema.fields().get(i);
if (field.name().equalsIgnoreCase(SchemaUtil.ROWTIME_NAME)
|| field.name().equalsIgnoreCase(SchemaUtil.ROWKEY_NAME)) {
indexSet.add(i);
}
}
return indexSet;
}
代码示例来源:origin: confluentinc/ksql
@Test
public void shouldMatchName() {
final Field field = new Field("foo", 0, Schema.INT32_SCHEMA);
assertThat(SchemaUtil.matchFieldName(field, "foo"), is(true));
}
代码示例来源:origin: confluentinc/ksql
public static Schema addImplicitRowTimeRowKeyToSchema(final Schema schema) {
final SchemaBuilder schemaBuilder = SchemaBuilder.struct();
schemaBuilder.field(SchemaUtil.ROWTIME_NAME, Schema.OPTIONAL_INT64_SCHEMA);
schemaBuilder.field(SchemaUtil.ROWKEY_NAME, Schema.OPTIONAL_STRING_SCHEMA);
for (final Field field : schema.fields()) {
if (!field.name().equals(SchemaUtil.ROWKEY_NAME)
&& !field.name().equals(SchemaUtil.ROWTIME_NAME)) {
schemaBuilder.field(field.name(), field.schema());
}
}
return schemaBuilder.build();
}
代码示例来源:origin: confluentinc/ksql
/**
* Remove the alias when reading/writing from outside
*/
public static Schema getSchemaWithNoAlias(final Schema schema) {
final SchemaBuilder schemaBuilder = SchemaBuilder.struct();
for (final Field field : schema.fields()) {
final String name = getFieldNameWithNoAlias(field);
schemaBuilder.field(name, field.schema());
}
return schemaBuilder.build();
}
内容来源于网络,如有侵权,请联系作者删除!