本文将为您介绍读取Fluss数据的流批方式。
数据读取
流模式读取
支持多种消费模式,对于主键表,默认消费模式是initial,首先消费全量数据,然后再消费增量数据。
登录实时计算管理控制台。
单击目标工作空间操作列下的控制台。
在左侧导航栏,单击
。单击
后,单击新建流作业,填写文件名称并选择引擎版本,单击创建。
编写作业代码。
SELECT * FROM `fluss-catalog`.`my_db`.`my_table`; # earliest模式 SELECT * FROM my_table /*+ OPTIONS('scan.startup.mode' = 'earliest') */;
批模式读取
Fluss 的主键表和日志表都支持LIMIT读取, 在批模式读取时会转化为一个最新N条数据的探查。
主键表支持精确查询,日志表可以进行聚合查询。
登录实时计算管理控制台。
单击目标工作空间操作列下的控制台。
在左侧导航栏,单击
。单击
后,单击新建批作业,填写文件名称并选择引擎版本和SQL方言,单击创建。
编写作业代码。
# LIMIT 读取 SELECT * FROM `fluss-catalog`.`my_db`.`my_table` LIMIT 10; # 精确查询(仅主键表) SELECT * FROM `fluss-catalog`.`my_db`.`my_pk_tbl` WHERE shop_id = 10000 and user_id = 123456; # 聚合查询 SELECT count(*) FROM `fluss-catalog`.`my_db`.`my_log_table`;
数据查询
仅主键表支持数据查询。
查询条件必须包含全部的主键,且不包含其他列。
登录实时计算管理控制台。
单击目标工作空间操作列下的控制台。
在左侧导航栏,单击 。
SELECT * FROM `fluss-catalog`.`my_db`.`customer` WHERE c_custkey = 1;
选中代码块,单击运行即可查看结果。
消费模式
消费模式 | 主键表 | 日志表 | 适用场景 |
full(默认) | 首先消费全量数据,然后再消费增量数据。 | 从最早的位点开始消费。 | 适用于需要处理全量数据的场景,如全量数据分析。 |
earliest | 从最早的 binlog 位点开始消费。 | 从最早的位点开始消费。 | 适用于需要处理历史变更数据的场景,如初次加载。 |
latest | 从最新的 binlog 位点开始消费, | 从最新的位点开始消费 | 适用于仅关注最新数据的场景,如实时监控。 |
timestamp | 从指定的时间(由配置项 scan.startup.timestamp 指定)开始消费 binlog。 | 从指定的时间(由配置项 scan.startup.timestamp 指定)开始消费 | 适用于基于特定时间点的数据恢复或回溯。 |
SQL示例
// 默认full模式
SELECT * FROM my_table ;
// earliest 消费模式
SELECT * FROM my_table /*+ OPTIONS('scan.startup.mode' = 'earliest') */;
// latest 消费模式
SELECT * FROM my_table /*+ OPTIONS('scan.startup.mode' = 'latest') */;
// 使用时间戳的方式
SELECT * FROM my_table
/*+ OPTIONS('scan.startup.mode' = 'timestamp',
'scan.startup.timestamp' = '1678883047356') */;
// 使用时间字符串的方式
SELECT * FROM my_table
/*+ OPTIONS('scan.startup.mode' = 'timestamp',
'scan.startup.timestamp' = '2023-12-09 23:09:12') */;
该文章对您有帮助吗?