Kafka Connect에서 커넥터 (Debezium)를 설정하고 정규 표현식을 통해이 커넥터에 의해 생성 된 모든 주제 이름을 변환하려고합니다. 아래 정규식은 작동하며 원하는 패턴을 감지하지만 모든 주제 이름을 소문자로 만들어야합니다.
우리는 대체 표현에 넣고 위해 노력했다 \ L $ (1) 하지만 그냥 우리의 항목 이름 앞에 인쇄 및 L 예를 들어, LOutbound.Policy 대신 outbound.policy
아무도 이것을하는 방법을 알고 있습니까? 미리 감사드립니다!
커넥터 curl 명령입니다.
curl -i -X PUT http://kafka-alpha-cp-kafka-connect:8083/connectors/kafka-bi-datacontract/config -H "Content-Type: application/json" -d '{
"name": "kafka-bi-datacontract",
"connector.class" : "io.debezium.connector.sqlserver.SqlServerConnector",
"database.hostname" : "ukdb3232123",
"database.server.name" : "ukdb3232123\\perf",
"database.port" : "12442",
"database.user" : "KafkaConnect-BI",
"database.password" : "*******",
"database.dbname" : "BeazleyIntelligenceDataContract",
"snapshot.lock.timeout.ms" : "10000000",
"table.whitelist" : "Outbound.Policy,Outbound.Section",
"database.history.kafka.bootstrap.servers" : "kafka-alpha-cp-kafka-headless:9092",
"database.history.kafka.topic": "schema-changes.bidatacontract",
"transforms": "dropTopicPrefix",
"transforms.dropTopicPrefix.type":"org.apache.kafka.connect.transforms.RegexRouter",
"transforms.dropTopicPrefix.regex":"^[^.]+.(.*)",
"transforms.dropTopicPrefix.replacement":"\\L$1"
}'
\L$1
나 \\L$1
같은 것입니다 L$1
.
소문자 변환을 위해 고유 한 변환을 생성 / 찾아야합니다.
일단 그렇게하면 다음과 같이 할 수 있습니다.
"transforms": "dropTopicPrefix,lowertopic",
"transforms.dropTopicPrefix.type":"org.apache.kafka.connect.transforms.RegexRouter",
"transforms.dropTopicPrefix.regex":"^[^.]+.(.*)",
"transforms.dropTopicPrefix.replacement":"$1",
"transforms.lowerTopic.type":"com.example.foo.LowerCase$Topic",
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다