flink读取starRocks数据,只能读取历史的,不能读实时数据,怎么破?

flink读取starRocks数据,只能读取历史的,不能读实时数据,怎么破?

展开
收起
雪哥哥 2022-11-20 22:38:21 807 分享 版权
1 条回答
写回答
取消 提交回答
  • 存在即是合理

    Flink 只能读取历史的 StarRocks 数据,而不能读取实时数据。Flink 是一个用于处理流数据的开源流处理框架,它可以从多个来源(如 Kafka、HDFS 和 Socket)读取数据,并将其转换为 Flink 可以处理的格式。

    如果您需要读取实时数据,您可以使用 Flink 的 read_from_socket 函数,该函数可以从本地 Socket 连接读取数据。

    
    import org.apache.flink.streaming.api.functions.source.SourceFunction;  
    import org.apache.flink.streaming.api.functions.source.SourceFunction.SourceContext;  
    import org.apache.flink.streaming.api.functions.source.SourceFunction.SourceState;  
    import org.apache.flink.streaming.api.functions.source.SourceFunction.SourceStateFunction;  
    import org.apache.flink.streaming.api.functions.source.SourceFunction.SourceStateFunction.SourceState;  
      
    import java.net.InetSocketAddress;  
    import java.net.UnknownHostException;  
      
    public class SocketSourceFunction implements SourceFunction<String> {  
      
        private final String host;  
        private final int port;  
        private final String path;  
      
        public SocketSourceFunction(String host, int port, String path) {  
            this.host = host;  
            this.port = port;  
            this.path = path;  
        }  
      
        @Override  
        public SourceContext<String> getContext(SourceContext<String> ctx) throws Exception {  
            return ctx.addSource(new SocketSource(host, port, path));  
        }  
      
        @Override  
        public SourceState<String> getState(SourceContext<String> ctx) throws Exception {  
            return ctx.getState();  
        }  
    `SocketSourceFunction` 类使用 `readFromSocket` 函数从本地 Socket 读取数据,并将其转换为字符串。`readFromSocket` 函数使用一个无限循环来不断读取数据,直到读取到 Socket 中的最后一个字节。  
      
    请注意,`readFromSocket` 函数使用了一个无限循环来不断读取数据,因此它可能会导致性能问题。
    
    2023-04-19 13:40:54
    赞同 展开评论

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

收录在圈子:
实时计算 Flink 版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica)是阿里云基于 Apache Flink 构建的企业级、高性能实时大数据处理系统,由 Apache Flink 创始团队官方出品,拥有全球统一商业化品牌,完全兼容开源 Flink API,提供丰富的企业级增值功能。
还有其他疑问?
咨询AI助理