Search in sources :

Example 1 with GeneratedWatermarkGeneratorSupplier

use of org.apache.flink.table.runtime.generated.GeneratedWatermarkGeneratorSupplier in project flink by apache.

the class WatermarkPushDownSpec method apply.

@Override
public void apply(DynamicTableSource tableSource, SourceAbilityContext context) {
    if (tableSource instanceof SupportsWatermarkPushDown) {
        GeneratedWatermarkGenerator generatedWatermarkGenerator = WatermarkGeneratorCodeGenerator.generateWatermarkGenerator(context.getTableConfig(), context.getSourceRowType(), watermarkExpr, Option.apply("context"));
        Configuration configuration = context.getTableConfig().getConfiguration();
        WatermarkGeneratorSupplier<RowData> supplier = new GeneratedWatermarkGeneratorSupplier(configuration, generatedWatermarkGenerator);
        WatermarkStrategy<RowData> watermarkStrategy = WatermarkStrategy.forGenerator(supplier);
        if (idleTimeoutMillis > 0) {
            watermarkStrategy = watermarkStrategy.withIdleness(Duration.ofMillis(idleTimeoutMillis));
        }
        ((SupportsWatermarkPushDown) tableSource).applyWatermark(watermarkStrategy);
    } else {
        throw new TableException(String.format("%s does not support SupportsWatermarkPushDown.", tableSource.getClass().getName()));
    }
}
Also used : GeneratedWatermarkGenerator(org.apache.flink.table.runtime.generated.GeneratedWatermarkGenerator) RowData(org.apache.flink.table.data.RowData) TableException(org.apache.flink.table.api.TableException) Configuration(org.apache.flink.configuration.Configuration) GeneratedWatermarkGeneratorSupplier(org.apache.flink.table.runtime.generated.GeneratedWatermarkGeneratorSupplier) SupportsWatermarkPushDown(org.apache.flink.table.connector.source.abilities.SupportsWatermarkPushDown)

Aggregations

Configuration (org.apache.flink.configuration.Configuration)1 TableException (org.apache.flink.table.api.TableException)1 SupportsWatermarkPushDown (org.apache.flink.table.connector.source.abilities.SupportsWatermarkPushDown)1 RowData (org.apache.flink.table.data.RowData)1 GeneratedWatermarkGenerator (org.apache.flink.table.runtime.generated.GeneratedWatermarkGenerator)1 GeneratedWatermarkGeneratorSupplier (org.apache.flink.table.runtime.generated.GeneratedWatermarkGeneratorSupplier)1