更新时间:2022-10-28 GMT+08:00
Flink作业输出流写入数据到OBS,通过该OBS文件路径创建的DLI表查询无数据
问题现象
使用Flink作业输出流写入数据到了OBS中,通过该OBS文件路径创建的DLI表进行数据查询时,无法查询到数据。
例如,使用如下Flink结果表将数据写入到OBS的“obs://obs-sink/car_infos”路径下。
create sink stream car_infos_sink ( carId string, carOwner string, average_speed double, buyday string ) partitioned by (buyday) with ( type = "filesystem", file.path = "obs://obs-sink/car_infos", encode = "parquet", ak = "{{myAk}}", sk = "{{mySk}}" );
通过该OBS文件路径创建DLI分区表,在DLI查询car_infos表数据时没有查询到数据。
create table car_infos ( carId string, carOwner string, average_speed double ) partitioned by (buyday string) stored as parquet location 'obs://obs-sink/car_infos';
解决方案
- 在DLI创建Flink结果表到OBS的作业时,如上述举例中的car_infos_sink表,是否开启了Checkpoint。如果未开启则需要开启Checkpoint参数,重新运行作业生成OBS数据文件。
- 到DLI管理控制台,左侧导航栏选择“作业管理 > Flink作业”,在对应的Flink作业所在行,操作列下单击“编辑”。
- 在“运行参数”下,查看“开启Checkpoint”参数是否开启。
图1 开启Checkpoint
- 确认Flink结果表的表结构和DLI分区表的表结构是否保持一致。如问题描述中car_infos_sink和car_infos表的字段是否一致。
- 通过OBS文件创建DLI分区表后,是否执行以下命令从OBS路径中恢复分区信息。如下,在创建完DLI分区表后,需要恢复DLI分区表car_infos分区信息。
alter table car_infos recover partitions;
父主题: Flink SQL作业相关问题
Flink SQL作业相关问题 所有常见问题
- Flink SQL作业的消费能力如何,即一天可以处理多大的数据量?
- Flink SQL中的temp流中数据是否需要定期清理,如何清理?
- 创建Flink SQL作业时选择OBS桶,提示未授权
- Flink SQL作业将OBS表映射为DLI的分区表
- Flink SQL作业Kafka分区数增加或减少,不用停止Flink作业,实现动态感知
- OBS表如何映射为DLI的分区表?
- 在Flink SQL作业中创建表使用EL表达式,作业运行报DLI.0005错误
- Flink作业输出流写入数据到OBS,通过该OBS文件路径创建的DLI表查询无数据
- Flink SQL作业运行失败,日志中有connect to DIS failed java.lang.IllegalArgumentException: Access key cannot be null错误
- Flink SQL作业读取DIS数据报Not authorized错误
- Flink SQL作业消费Kafka后sink到es集群,作业执行成功,但未写入数据
- Flink Opensource SQL如何解析复杂嵌套 JSON?
- Flink Opensource SQL从RDS数据库读取的时间和RDS数据库存储的时间为什么会不一致?
- Flink SQL和Flink Opensource SQL的语法有什么区别?
- Flink Opensource SQL Elasticsearch结果表failure-handler参数填写retry_rejected导致提交失败
more