LAS Catalog 通过提供的统一元数据管理、数据访问控制、元数据发现和数据集成等关键功能。数据目录 LAS-Hive 连接器提供对 LAS Catalog 中 Hive 表的读写能力。
在 LAS Catalog 平台上创建数据目录、数据库和数据表,详细参见 LAS Catalog 文档 和 LAS 建表文档。另外要确保 LAS Catalog 为 Flink 用户开通合理的权限。
注意事项:
LAS 默认的数据目录 hive 的存储位置是 files://,是一个虚拟路径,需要修改为一个实际的 tos:// 路径,否则会由于路径不对,导致写入报错。如下所示:
步骤一:点击创建 Catalog 按钮,选择 LAS Hive 类型 Catalog,进入下一步
步骤二:填写 Catalog 名称,选择 LAS 的对应 Catalog 名称,设置 AccessKeyID 和 AccessKeySecret,连通性测试验证通过后,点击下一步
步骤三:创建成功,点击数据目录的同步按钮,同步库表元数据
步骤四:支持查看库表元数据信息
步骤一:可以在 Flink SQL 中直接使用 catalog.database.table三段式方式直接访问数据表,例如写入 LAS 表的方式如下:
-- 模拟数据写入 create table orders ( t1 int, t2 string ) WITH ( 'connector' = 'datagen', 'rows-per-second'='1' ); insert into `las_cwz_hive`.`cwz_db`.`test_table` /*+ OPTIONS('sink.partition-commit.policy.kind'='metastore,success-file', 'sink.partition-commit.delay'='10 s') */ select t1 , t2, '2025-09-02' as dt from orders;
步骤二:保存 SQL 任务,发布并且上线
步骤三:启动任务,验证数据写入成功
在 LAS 可以观测数据写入情况。
现象是 Flink 写 LAS 作业不报错,但是无法写入数据。该情况可能是 LAS 建表的存储路径设置有问题。
排查步骤:
现象是在创建数据目录的时候网络连通性测试成功,但是数据目录同步失败。
排查步骤:
现象是 Flink 任务启动之后,日志中报错,例如:
Caused by: org.apache.flink.client.program.ProgramInvocationException: The main method caused an error: Streaming write to partitioned hive table `las_cwz_hive`.`cwz_db`.`test_table` without providing a commit policy. Make sure to set a proper value for sink.partition-commit.policy.kind
这个错误是因为使用 LAS 的可视化界面建表的时候缺少对于 Flink 一些必要的参数,比如日志中提到的 sink.partition-commit.policy.kind。
修改步骤:
insert into `las_cwz_hive`.`cwz_db`.`test_table` /*+ OPTIONS('sink.partition-commit.policy.kind'='metastore,success-file', 'sink.partition-commit.delay'='10 s') */ select t1 , t2, '2025-09-02' as dt from orders;
重启任务就可以恢复正常写入。