private SinkFunction<RowData> createPulsarSink(String topic, Properties properties,
            PulsarSerializationSchema<RowData> pulsarSerializer) {
        final ClientConfigurationData configurationData = PulsarClientUtils
                .newClientConf(serviceUrl, properties);
        return new FlinkPulsarSink<RowData>(
                adminUrl,
                Optional.ofNullable(topic),
                configurationData,
                properties,
                pulsarSerializer,
                messageRouter,
                PulsarSinkSemantic.valueOf(semantic.toString()));
    }
Metadata that is appended at the end of a physical sink row.
inlong-sort/sort-flink/sort-flink-v1.13/sort-connectors/pulsar/src/main/java/org/apache/inlong/sort/pulsar/table/PulsarDynamicTableSink.java