pyflink遇到的问题

  • window sink到控制台时中文乱码。保存到文件用utf8打开正常。
    解决办法:注意红框,一定要设置成gbk,设置成utf8就会乱码
    在这里插入图片描述
  • 写入doris,不报错,但是数据写不进去,
    解决办法: 没有设置checkpoint,这点比spark差远了,spark也是同样的机制,但在你忘记设置的时候会报错异常提醒,但flink没有提醒。加上checkpoint就好了。
    这里要注意的事,由于flink sql对checkpoint支持不友好,需要二次开发,但是对我这种python用户来说二次开发基本不可能,所以需要在datastream中设置checkpoint,然后再转为table
	env = StreamExecutionEnvironment.get_execution_environment()

    # 每 1000ms 开始一次 checkpoint
    env.enable_checkpointing(1000)

    # 高级选项:

    # 设置模式为精确一次 (这是默认值)
    env.get_checkpoint_config().set_checkpointing_mode(CheckpointingMode.EXACTLY_ONCE)

    # 确认 checkpoints 之间的时间会进行 500 ms
    env.get_checkpoint_config().set_min_pause_between_checkpoints(500)

    # Checkpoint 必须在一分钟内完成,否则就会被抛弃
    env.get_checkpoint_config().set_checkpoint_timeout(60000)

    # 允许两个连续的 checkpoint 错误
    env.get_checkpoint_config().set_tolerable_checkpoint_failure_number(2)

    # 同一时间只允许一个 checkpoint 进行
    env.get_checkpoint_config().set_max_concurrent_checkpoints(1)

    # 持久化存储checkpoint
    # env.set_state_backend(RocksDBStateBackend("hdfs:///checkpoints-data/"))

    # 使用 externalized checkpoints,这样 checkpoint 在作业取消后仍就会被保留
    # ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION:当作业取消时,保留作业的 checkpoint。注意,这种情况下,需要手动清除该作业保留的 checkpoint。
    # ExternalizedCheckpointCleanup.DELETE_ON_CANCELLATION:当作业取消时,删除作业的 checkpoint。仅当作业失败时,作业的 checkpoint 才会被保留。
    # env.get_checkpoint_config().enable_externalized_checkpoints(
    #     ExternalizedCheckpointCleanup.RETAIN_ON_CANCELLATION)

    # 开启实验性的 unaligned checkpoints
    env.get_checkpoint_config().enable_unaligned_checkpoints()
	table_env = StreamTableEnvironment.create(env)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值