You need to enable JavaScript to run this app.
导航
LAS-Hive Catalog
最近更新时间:2025.09.04 11:30:15首次发布时间:2025.09.04 11:30:15
复制全文
我的收藏
有用
有用
无用
无用

LAS Catalog 通过提供的统一元数据管理、数据访问控制、元数据发现和数据集成等关键功能。数据目录 LAS-Hive 连接器提供对 LAS Catalog 中 Hive 表的读写能力。

1. 使用限制

  • 需要确保开通 LAS Catalog 统一元数据管理服务,可以参考 LAS Catalog 开通文档
  • LAS Catalog 连接器仅支持在 Flink 1.16-volcano 及以上引擎版本中使用

2. 使用步骤

2.1 LAS 建表

在 LAS Catalog 平台上创建数据目录、数据库和数据表,详细参见 LAS Catalog 文档LAS 建表文档。另外要确保 LAS Catalog 为 Flink 用户开通合理的权限。
注意事项:
LAS 默认的数据目录 hive 的存储位置是 files://,是一个虚拟路径,需要修改为一个实际的 tos:// 路径,否则会由于路径不对,导致写入报错。如下所示:
Image

2.2 创建数据目录

步骤一:点击创建 Catalog 按钮,选择 LAS Hive 类型 Catalog,进入下一步
Image
步骤二:填写 Catalog 名称,选择 LAS 的对应 Catalog 名称,设置 AccessKeyID 和 AccessKeySecret,连通性测试验证通过后,点击下一步
Image
步骤三:创建成功,点击数据目录的同步按钮,同步库表元数据
Image
步骤四:支持查看库表元数据信息
Image

步骤一:可以在 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 任务,发布并且上线
Image
步骤三:启动任务,验证数据写入成功
Image
在 LAS 可以观测数据写入情况。
Image

3. 常见问题

现象是 Flink 写 LAS 作业不报错,但是无法写入数据。该情况可能是 LAS 建表的存储路径设置有问题。
排查步骤:

  1. 检查 LAS 建表的存储路径是否设置正确。需要进入 AI 数据湖服务页面,查看该表的信息:

Image

  1. 检查 Flink 写入 LAS 的数据是否写入到 LAS 建表的存储路径。点击上述存储位置,跳转到 TOS 页面,查看目录下是否有分区和数据文件:

Image

3.2 数据目录同步失败

现象是在创建数据目录的时候网络连通性测试成功,但是数据目录同步失败。
排查步骤:

  1. 检查 LAS 的数据目录是否对于该用户有权限。在湖管理 - 权限管理中查看是否有对该用户(AccessKey 的所有者)有读权限

Image

现象是 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
修改步骤:

  1. 在 Insert 语句中增加 Hint ,指定相关的插入参数,例如如下:
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;

重启任务就可以恢复正常写入。