开心编码 2023-04-25 09:30 采纳率: 0%
浏览 7

flinksql table

Flinksql 批式任务如何 获取tableEnv.sqlQuery(sqlscript)返回的table中的记录数,执行查询之后是一张table表,我想知道这张table表中的记录个数然后写入日志。

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-04-25 14:53
    关注
    • 以下回答由chatgpt基于相关博客总结生成:

      可以使用Flink API中的count()方法和log4j框架来实现此需求。具体步骤如下:

      1. 定义Logger

      在代码的开头,需要定义Logger,并在需要打印记录数的位置调用log.info()方法来写入日志。

      import org.slf4j.Logger;
      import org.slf4j.LoggerFactory;
      
      public class MyJob {
          private static final Logger log = LoggerFactory.getLogger(MyJob.class);
      
          // ...
      }
      
      1. 获取记录数并写入日志

      在执行SQL查询之后,可以使用Flink的count方法获取表中的记录数,并将其写入日志。

      Table resultTable = tableEnv.sqlQuery("select * from sensor");
      long count = resultTable.count();
      log.info("Table has {} records", count);
      
      1. 完整代码示例
      import org.apache.flink.table.api.Table;
      import org.apache.flink.table.api.java.BatchTableEnvironment;
      import org.slf4j.Logger;
      import org.slf4j.LoggerFactory;
      
      public class MyJob {
          private static final Logger log = LoggerFactory.getLogger(MyJob.class);
      
          public static void main(String[] args) {
              // 创建 BatchTableEnvironment
              BatchTableEnvironment tableEnv = ...
      
              // 执行 SQL 查询
              Table resultTable = tableEnv.sqlQuery("select * from sensor");
      
              // 获取表中记录数并写入日志
              long count = resultTable.count();
              log.info("Table has {} records", count);
          }
      }
      
    评论

报告相同问题?

问题事件

  • 修改了问题 4月25日
  • 创建了问题 4月25日

悬赏问题

  • ¥15 在虚拟机中安装flash code
  • ¥15 单片机stm32f10x编写光敏电阻调节3.3伏大功率灯亮度(光强越大灯越暗,白天正常光强灯不亮,使用ADC,PWM等模块)望各位找一下错误或者提供一个可实现功能的代码
  • ¥20 verilog状态机方法流水灯
  • ¥15 pandas代码实现不了意图
  • ¥15 GD32H7 从存储器到外设SPI传输数据无法重复启用DMA
  • ¥25 LT码在高斯信道下的误码率仿真
  • ¥45 渲染完成之后将物体的材质贴图改变,自动化进行这个操作
  • ¥15 yolov5目标检测并显示目标出现的时间或视频帧
  • ¥15 电视版的优酷可以设置电影连续播放吗?
  • ¥50 复现论文;matlab代码编写