全部產品
Search
文件中心

Data Lake Formation:Flink SQL訪問DLF

更新時間:Oct 25, 2025

如何在阿里雲Realtime ComputeFlink版上通過Flink SQL以Paimon REST訪問DLF Catalog。

前提條件

使用限制

僅Realtime Compute引擎VVR 11.1.0及以上版本支援對接DLF Catalog。

建立DLF Catalog

詳情請參見DLF 快速入門

在Flink上添加Catalog

說明

這裡僅用於建立與DLF Catalog的映射串連,建立或刪除Catalog僅影響映射關係,不會對DLF中的實際資料產生影響。

  1. 登入Realtime Compute控制台

  2. 單擊Flink全託管工作空間列表中的工作空間名稱,進入對應的工作空間。

  3. 可以通過UI或者SQL方式來添加Catalog。

    UI方式

    1. 在左側導覽列,單擊資料管理

    2. 在Catalog列表頁,單擊建立Catalog

    3. 選擇Apache Paimon,單擊下一步

    4. metastore 選擇 dlfcatalog name 選擇需要關聯版本的DLF Catalog,單擊確定,即可建立Catalog。

    SQL命令

    資料查詢文本編輯地區,輸入以下SQL並執行,即可建立Catalog。

    CREATE CATALOG `flink_catalog_name` 
    WITH (
      'type' = 'paimon',
      'metastore' = 'rest',
      'token.provider' = 'dlf',
      'uri' = 'http://cn-hangzhou-vpc.dlf.aliyuncs.com',
      'warehouse' = 'dlf_test'
    );

    參數說明如下:

    參數

    描述

    是否必填

    樣本

    type

    Catalog類型,固定為paimon。

    paimon

    metastore

    metastore類型,固定為rest。

    rest

    token.provider

    Token提供方,固定為dlf。

    dlf

    uri

    訪問DLF Rest Catalog Server的URI,格式為http://[region-id]-vpc.dlf.aliyuncs.com。詳見服務存取點中的Region ID。

    http://cn-hangzhou-vpc.dlf.aliyuncs.com

    warehouse

    DLF Catalog名稱。

    dlf_test

常見報錯

Http NullPointerException

  • 報錯棧樣本:

    Caused by: java.lang.NullPointerException
    	at org.apache.paimon.rest.HttpClient.getRequestUrl(HttpClient.java:180)
    	at org.apache.paimon.rest.HttpClient.get(HttpClient.java:108)
    	at org.apache.paimon.rest.RESTCatalog.<init>(RESTCatalog.java:159)
    	at org.apache.paimon.rest.RESTCatalog.<init>(RESTCatalog.java:141)
    	at org.apache.paimon.rest.RESTCatalogFactory.create(RESTCatalogFactory.java:36)
    	at org.apache.paimon.catalog.CatalogFactory.createUnwrappedCatalog(CatalogFactory.java:84)
    	at org.apache.paimon.catalog.CatalogFactory.createCatalog(CatalogFactory.java:71)
    	at org.apache.paimon.flink.VvrCatalogFactory.createCatalog(VvrCatalogFactory.java:67)
    	at org.apache.paimon.flink.VvrCatalogFactory.createCatalog(VvrCatalogFactory.java:37)
    	at org.apache.flink.table.gateway.vvr.module.delegation.CatalogFactoryWrapper.createCatalog(CatalogFactoryWrapper.java:91)
    	at org.apache.flink.table.factories.FactoryUtil.createCatalog(FactoryUtil.java:572)
    	... 23 more
  • 解決方案:

    檢查catalog配置項中uri的值,應該以http://開頭。

ForbiddenException: Forbidden: You are not authorized to do this operation

  • 報錯棧樣本:

    Caused by: org.apache.paimon.rest.exceptions.ForbiddenException: Forbidden: You are not authorized to do this operation. Action: dlf:GetConfig. AccessDeniedDetail : {"AuthAction":"dlf:GetConfig","AuthPrincipalType":"AssumedRoleUser","AuthPrincipalOwnerId":"xxxxx","AuthPrincipalDisplayName":"aliyunstreamasidefaultrole:xxxxx","PolicyType":"AccountLevelIdentityBasedPolicy","NoPermissionType":"ImplicitDeny"} requestId:xxxxx
    	at org.apache.paimon.rest.DefaultErrorHandler.accept(DefaultErrorHandler.java:59)
    	at org.apache.paimon.rest.DefaultErrorHandler.accept(DefaultErrorHandler.java:35)
    	at org.apache.paimon.rest.HttpClient.exec(HttpClient.java:205)
    	at org.apache.paimon.rest.HttpClient.get(HttpClient.java:112)
    	at org.apache.paimon.rest.RESTCatalog.<init>(RESTCatalog.java:159)
    	at org.apache.paimon.rest.RESTCatalog.<init>(RESTCatalog.java:141)
    	at org.apache.paimon.rest.RESTCatalogFactory.create(RESTCatalogFactory.java:36
  • 解決方案:

    授予AliyunStreamAsiDefaultRole角色AliyunDLFFullAccess許可權(Flink產品化整合後可以省略該步驟)。

    1. 使用阿里雲帳號或Resource Access Management員登入RAM控制台

    2. 單擊身份管理 > 角色,查詢AliyunStreamAsiDefaultRole角色。

    3. 單擊操作列的新增授權,進入新增授權頁面。

    4. 權限原則中,查詢並勾選AliyunDLFFullAccess,單擊確認新增授權

    image