数据探索是流计算 Oceanus 提供的轻量 SQL 查询工作台,支持在控制台中直接编写和运行 SQL 语句进行数据查询与验证,无需创建和发布完整的作业。
数据探索适用于以下场景:
SQL 语法验证:快速验证 SQL 语句的正确性,检查函数调用和表达式是否符合预期。
元数据查询:查看工作空间下的 Catalog、数据库、表、视图、函数等元数据信息。
数据探查与调试:对源表、维表、结果表中的数据进行探查和预览,验证数据格式和内容是否符合预期。
MySQL / Paimon / Hive 等外部 Catalog 查询:直接查询已注册的外部 Catalog 中的数据。
SQL 开发效率提升:在作业开发过程中,用数据探索快速验证 SQL 片段,减少从编写到发布的调试周期。
操作步骤
步骤1:进入数据探索
1. 登录 流计算 Oceanus 控制台,进入目标工作空间。
2. 在左侧导航栏,选择数据探索,进入数据探索页面。
3. 单击新建探索文件,输入文件名称后创建。
4. 创建完成后,在 SQL 编辑器中编写查询语句。
步骤2:选择 Session 集群
在数据探索页面右侧区域:
1. 在 Session 集群下拉框中,选择一个运行中的 Session 集群(Flink 版本需为 1.16 及以上)。
支持的 Flink 版本:1.16、1.18、1.20。
如果列表中没有可用的 Session 集群,请先创建 Session 集群。
2. 如果工作空间已注册外部 Catalog,系统会自动加载并在查询中可用。
步骤3:编写 SQL
在 SQL 编辑器中编写查询语句,数据探索支持 Flink SQL 的全部语法,包括:
SQL 类型 | 说明 | 示例 |
SHOW 语句 | 查询元数据信息 | SHOW CATALOGS;、SHOW DATABASES;、SHOW TABLES; |
DESCRIBE 语句 | 查看表结构 | DESCRIBE table_name; |
SELECT 查询 | 数据查询 | SELECT * FROM source_table; |
CREATE 语句 | 创建临时表/视图 | CREATE TEMPORARY TABLE ... WITH (...); |
INSERT 语句 | 数据写入(提交 Flink 作业) | INSERT INTO sink_table SELECT ... FROM source_table; |
SET 语句 | 设置执行参数 | SET 'execution.runtime-mode' = 'streaming'; |
EXPLAIN 语句 | 查看执行计划 | EXPLAIN SELECT ...; |
USE 语句 | 切换 Catalog/Database | USE CATALOG my_catalog; |
步骤4:执行查询
1. 选中需要执行的 SQL 语句,单击执行按钮执行查询。
2. 单击运行按钮执行查询。
对于 SELECT / SHOW / DESCRIBE 等查询类语句,结果将在页面下方的运行结果区域直接展示。
对于 INSERT 语句,将提交一个 Flink 作业到 Session 集群执行。
3. 查询结果最多展示 5000 行,支持导出为 CSV 格式下载。
查询示例
基本查询
-- 查看当前 Catalog 和 DatabaseSHOW CURRENT CATALOG;SHOW CURRENT DATABASE;-- 查看所有 CatalogSHOW CATALOGS;-- 简单查询SELECT 1;SELECT CURRENT_TIMESTAMP AS ts, UUID() AS u;SELECT CAST('2026-01-01' AS DATE) AS d;-- 多列查询SELECT 1 AS id, 'hello' AS name, 3.14 AS pi;
表操作
-- 创建临时表(数据生成器)CREATE TEMPORARY TABLE datagen_source (id INT,name STRING) WITH ('connector' = 'datagen','rows-per-second' = '1','number-of-rows' = '10');-- 查询临时表SELECT * FROM datagen_source;-- 聚合查询SELECT COUNT(*) AS cnt, AVG(id) AS avg_id FROM datagen_source;
外部 Catalog 查询
-- 切换到 Paimon CatalogUSE CATALOG my_paimon_catalog;-- 查看数据库和表SHOW DATABASES;USE my_database;SHOW TABLES;-- 查询 Paimon 表SELECT * FROM my_table LIMIT 100;SELECT COUNT(*) FROM my_table;
VALUES 查询
-- VALUES 构造数据查询SELECT * FROM (VALUES (1, 'a'), (2, 'b'), (3, 'c')) AS t(id, name);-- WHERE 过滤SELECT x, x*x AS sq FROM (VALUES (1),(2),(3),(4),(5)) AS t(x) WHERE x > 2;-- GROUP BY 聚合SELECT grp, COUNT(*) AS cnt, SUM(val) AS totalFROM (VALUES ('a',1), ('a',2), ('b',10), ('b',20)) AS t(grp, val)GROUP BY grp;
SET 语句(修改执行参数)
-- 查看当前配置SET;-- 查看指定配置SET 'parallelism.default';-- 切换执行模式SET 'execution.runtime-mode' = 'streaming';SET 'execution.runtime-mode' = 'batch';-- 设置时区SET 'table.local-time-zone' = 'Asia/Shanghai';