Java Code Examples for org.apache.kafka.connect.data.Struct#getInt64()
The following examples show how to use
org.apache.kafka.connect.data.Struct#getInt64() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: Db2EventMetadataProvider.java From debezium-incubator with Apache License 2.0 | 5 votes |
@Override public Instant getEventTimestamp(DataCollectionId source, OffsetContext offset, Object key, Struct value) { if (value == null) { return null; } final Struct sourceInfo = value.getStruct(Envelope.FieldName.SOURCE); if (source == null) { return null; } final Long timestamp = sourceInfo.getInt64(SourceInfo.TIMESTAMP_KEY); return timestamp == null ? null : Instant.ofEpochMilli(timestamp); }
Example 2
Source File: OracleEventMetadataProvider.java From debezium-incubator with Apache License 2.0 | 5 votes |
@Override public Instant getEventTimestamp(DataCollectionId source, OffsetContext offset, Object key, Struct value) { if (value == null) { return null; } final Struct sourceInfo = value.getStruct(Envelope.FieldName.SOURCE); if (source == null) { return null; } final Long timestamp = sourceInfo.getInt64(SourceInfo.TIMESTAMP_KEY); return timestamp == null ? null : Instant.ofEpochMilli(timestamp); }
Example 3
Source File: OracleEventMetadataProvider.java From debezium-incubator with Apache License 2.0 | 5 votes |
@Override public Map<String, String> getEventSourcePosition(DataCollectionId source, OffsetContext offset, Object key, Struct value) { if (value == null) { return null; } final Struct sourceInfo = value.getStruct(Envelope.FieldName.SOURCE); if (source == null) { return null; } final Long scn = sourceInfo.getInt64(SourceInfo.SCN_KEY); return Collect.hashMapOf( SourceInfo.SCN_KEY, scn == null ? "null" : Long.toString(scn)); }
Example 4
Source File: DebeziumSourceRecordToDataflowCdcFormatTranslator.java From DataflowTemplates with Apache License 2.0 | 4 votes |
public Row translate(SourceRecord record) { LOG.debug("Source Record from Debezium: {}", record); String qualifiedTableName = record.topic(); Struct recordValue = (Struct) record.value(); if (recordValue == null) { return null; } // TODO: Consider including before value in the Row. Struct afterValue = recordValue.getStruct("after"); Row afterValueRow = afterValue == null ? null : handleValue(afterValue.schema(), afterValue); LOG.debug("Beam Row is {}", afterValueRow); Row primaryKey = null; boolean hasPK = true; if (record.key() == null) { hasPK = false; } else { primaryKey = handleValue(record.keySchema(), record.key()); LOG.debug("Key Schema: {} | Key Value: {}", primaryKey.getSchema(), primaryKey); } String sourceRecordOp = recordValue.getString("op"); String operation = translateOperation(sourceRecordOp); if (operation == null) { return null; } Long timestampMs = recordValue.getInt64("ts_ms"); if (!knownSchemas.containsKey(qualifiedTableName)) { org.apache.beam.sdk.schemas.Schema.Builder schemaBuilder = org.apache.beam.sdk.schemas.Schema .builder() .addStringField(DataflowCdcRowFormat.OPERATION) .addStringField(DataflowCdcRowFormat.TABLE_NAME) .addField(org.apache.beam.sdk.schemas.Schema.Field.nullable( DataflowCdcRowFormat.FULL_RECORD, FieldType.row(afterValueRow.getSchema()))) .addInt64Field(DataflowCdcRowFormat.TIMESTAMP_MS); if (hasPK) { schemaBuilder.addRowField(DataflowCdcRowFormat.PRIMARY_KEY, primaryKey.getSchema()); } knownSchemas.put(qualifiedTableName, schemaBuilder.build()); } org.apache.beam.sdk.schemas.Schema finalBeamSchema = knownSchemas.get(qualifiedTableName); Row.Builder beamRowBuilder = Row.withSchema(finalBeamSchema) .addValue(operation) .addValue(qualifiedTableName) .addValue(afterValueRow) .addValue(timestampMs); if (hasPK) { beamRowBuilder.addValue(primaryKey); } return beamRowBuilder.build(); }