全部產品
Search
文件中心

Realtime Compute for Apache Flink:管理DLF Catalog

更新時間:Jul 13, 2024

配置DLF Catalog後,您可以在Realtime Compute開發控制台直接存取DLF執行個體中的表,無需再手動註冊DLF表,提高作業開發的效率且保證資料的正確性。本文為您介紹如何建立、查看、使用及刪除DLF Catalog。

背景資訊

阿里雲資料湖構建(Data Lake Formation,簡稱DLF)是阿里雲官方提供的一款統一中繼資料管理的產品。您可以方便地藉助DLF產品來管理建立的表格,這些表格的格式可以是開源格式,例如Iceberg、Hudi、Delta、Parquet、ORC或Avro等。

本文將從以下方面為您介紹如何管理DLF Catalog:

前提條件

已開通阿里雲資料湖構建服務

使用限制

  • 僅Flink計算引擎vvr-4.0.12-flink-1.13及以上版本支援配置DLF Catalog。

  • Flink在DLF Catalog下僅支援管理Iceberg和Hudi兩種資料湖格式。

建立DLF Catalog

支援UI與SQL命令兩種方式配置DLF Catalog,推薦使用UI方式配置DLF Catalog。

UI方式

  1. 進入中繼資料管理頁面。

    1. 登入Realtime Compute控制台

    2. 單擊目標工作空間操作列下的控制台

    3. 單擊中繼資料管理

  2. 中繼資料管理頁面,單擊建立Catalog

  3. 單擊DLF後,單擊下一步

  4. 建立DLF Catalog。

    1. 配置Catalog資訊。

      DLF Catalog

      配置項

      說明

      是否必填

      備忘

      catalogname

      DLF Catalog名稱。

      請填寫為自訂的英文名。

      access.key.id

      訪問OSS服務所需的阿里雲Access Key。

      擷取方法請參見擷取AccessKey

      access.key.secret

      訪問OSS服務所需的阿里雲Access Secret。

      擷取方法請參見擷取AccessKey

      warehouse

      DLF Catalog中表預設的OSS存放路徑,OSS服務中所指定的數倉目錄。

      支援OSS和OSS-HDFS兩種服務。

      • OSS路徑格式為oss://<bucket>/<object>

      • OSS-HDFS路徑格式為oss://<bucket>.<oss-hdfs-endpoint>/<object>

      其中:

      • bucket:表示您建立的OSS Bucket名稱。您可以在OSS管理主控台上查看。

      • object:表示您存放資料的路徑。您可以在OSS管理主控台上查看。

      • oss-hdfs-endpoint:表示OSS-HDFS服務Endpoint。您可以在OSS管理主控台Bucket的概覽頁面的訪問連接埠中查看HDFS服務Endpoint資訊。

      說明

      僅Flink計算引擎VVR 8.0.3及以上版本支援該參數配置為OSS-HDFS路徑。

      oss.endpoint

      阿里雲Object Storage Service服務OSS的Endpoint。OSS的 endpoint 地址,例如oss-cn-hangzhou-internal.aliyuncs.com

      支援OSS和OSS-HDFS兩種服務。

      • OSS服務Endpoint,詳情參見訪問網域名稱和資料中心

      • OSS-HDFS服務Endpoint,您可以在OSSBucket概覽頁面的訪問連接埠中查看HDFS服務Endpoint資訊。

      說明
      • 推薦您為oss.endpoint參數配置OSS的VPC Endpoint。例如,如果您選擇的地區為cn-hangzhou地區,則oss.endpoint需要配置為oss-cn-hangzhou-internal.aliyuncs.com。

      • 如果您需要跨VPC訪問OSS,則請參見如何訪問跨VPC的其他服務?

      dlf.endpoint

      表示阿里雲DLF服務的Endpoint。

      說明
      • 推薦您為dlf.endpoint參數配置DLF的VPC Endpoint。例如,如果您選擇的地區為cn-hangzhou地區,則dlf.endpoint參數需要配置為dlf-vpc.cn-hangzhou.aliyuncs.com。

      • 如果您需要跨VPC訪問DLF,則請參見如何訪問跨VPC的其他服務?

      dlf.region-id

      阿里雲DLF服務的地區名,DLF所在地區。

      說明

      請和dlf.endpoint選擇的地區保持一致。

      更多配置

      設定其他DLF配置,例如指定多個DLF Catalog,配置多個DLF Catalog請換行分隔。

      例如:dlf.catalog.id:my_catalog

    2. 單擊確定

  5. 建立完成後,中繼資料地區下即可查看建立Catalog。

SQL方式

  1. 查詢指令碼文本編輯地區,輸入配置DLF Catalog的命令。

    CREATE CATALOG <yourcatalogname> WITH (
       'type' = 'dlf',
       'access.key.id' = '<YourAliyunAccessKeyId>',
       'access.key.secret' = '<YourAliyunAccessKeySecret>',
       'warehouse' = '<YourAliyunOSSLocation>',
       'oss.endpoint' = '<YourAliyunOSSEndpoint>',
       'dlf.region-id' = '<YourAliyunDLFRegionId>',
       'dlf.endpoint' = '<YourAliyunDLFEndpoint>'
    );

    參數

    說明

    是否必填

    備忘

    yourcatalogname

    自訂DLF Catalog名稱。

    請填寫為自訂的英文名。

    重要

    參數替換為您的Catalog名稱後,需要去掉角括弧(<>),否則語法檢查會報錯。

    type

    類型。

    固定值為dlf。

    access.key.id

    阿里雲帳號的AccessKey ID。

    擷取方法請參見擷取AccessKey

    access.key.secret

    阿里雲帳號的AccessKey Secret。

    擷取方法請參見擷取AccessKey

    warehouse

    DLF Catalog中表預設的OSS存放路徑。

    格式為oss://<bucket>/<object>。其中:

    • bucket:表示您建立的OSS Bucket名稱。

    • object:表示您存放資料的路徑。

    說明

    請在OSS管理主控台上查看您的bucket和object名稱。

    oss.endpoint

    阿里雲Object Storage Service服務OSS的Endpoint。

    請詳情參見訪問網域名稱和資料中心

    說明
    • 推薦您為oss.endpoint參數配置OSS的VPC Endpoint。例如,如果您選擇的地區為cn-hangzhou地區,則oss.endpoint需要配置為oss-cn-hangzhou-internal.aliyuncs.com。

    • 如果您需要跨VPC訪問OSS,則請參見如何訪問跨VPC的其他服務?

    dlf.endpoint

    阿里雲DLF服務的Endpoint。

    說明
    • 推薦您為dlf.endpoint參數配置DLF的VPC Endpoint。例如,如果您選擇的地區為cn-hangzhou地區,則dlf.endpoint參數需要配置為dlf-vpc.cn-hangzhou.aliyuncs.com。

    • 如果您需要跨VPC訪問DLF,則請參見如何訪問跨VPC的其他服務?

    dlf.region-id

    阿里雲DLF服務的地區名。

    說明

    請和dlf.endpoint選擇的地區保持一致。

  2. 選中建立Catalog的代碼後,單擊左側程式碼數上的運行

  3. 在左側中繼資料地區,查看建立的Catalog。

查看DLF Catalog

DLF Catalog建立成功後,您可以通過以下步驟查看DLF中繼資料。

  1. 進入中繼資料管理頁面。

    1. 登入Realtime Compute控制台

    2. 單擊目標工作空間操作列下的控制台

    3. 單擊中繼資料管理

  2. Catalog列表頁面,查看Catalog名稱類型

    說明

    如果您需要查看目標Catalog下的資料庫和表,請單擊查看

使用DLF Catalog

管理DLF資料庫

查詢指令碼文本編輯地區,輸入如下語句,選中代碼後單擊運行。建立或者刪除完成後,你可以在SQL開發頁面左側,單擊中繼資料進行確認。

  • 建立資料庫

    CREATE DATABASE dlf.dlf_testdb;
  • 刪除資料庫

    DROP DATABASE dlf.dlf_testdb;

管理DLF

  • 建立表

    • 通過連接器建立

      SQL方式

      查詢指令碼文本編輯地區,輸入如下語句,選中代碼後單擊運行。建立完成後,你可以在SQL開發頁面左側,單擊中繼資料,就可以查看到您建立的表。

      CREATE TABLE dlf.dlf_testdb.iceberg (
        id    BIGINT,
        data  STRING,
        dt    STRING
      ) PARTITIONED BY (dt) WITH(
        'connector' = 'iceberg'
      );
      
      CREATE TABLE dlf.dlf_testdb.hudi (
        id    BIGINT PRIMARY KEY NOT ENFORCED,
        data  STRING,
        dt    STRING
      ) PARTITIONED BY (dt) WITH(
        'connector' = 'hudi'
      );

      UI方式

      1. 進入中繼資料管理頁面。

        1. 登入Realtime Compute控制台

        2. 單擊目標工作空間操作列下的控制台

        3. 單擊中繼資料管理

      2. 單擊目標Catalog名稱對應操作列的查看

      3. 單擊目標資料庫名稱對應操作列的查看

      4. 單擊建立表

      5. 使用內建連接器串連頁簽,單擊串連方式,選擇表類型。

      6. 單擊下一步

      7. 填寫建表語句並配置相關參數資訊。程式碼範例如下。

        CREATE TABLE dlf.dlf_testdb.iceberg (
          id    BIGINT,
          data  STRING,
          dt    STRING
        ) PARTITIONED BY (dt) WITH(
          'connector' = 'iceberg'
        );
        
        CREATE TABLE dlf.dlf_testdb.hudi (
          id    BIGINT PRIMARY KEY NOT ENFORCED,
          data  STRING,
          dt    STRING
        ) PARTITIONED BY (dt) WITH(
          'connector' = 'hudi'
        );
      8. 單擊確定

    • 快速建立相同表結構的表(該方式僅Iceberg表支援)

      查詢指令碼文本編輯地區,輸入如下語句,選中代碼後單擊運行

      CREATE TABLE iceberg_table_like LIKE iceberg_table;
  • 刪除表

    DROP TABLE iceberg_table;

修改Iceberg表結構

查詢指令碼文本編輯地區輸入如下命令,選中代碼後單擊運行

操作

程式碼範例

更改表屬性

ALTER TABLE iceberg_table SET ('write.format.default'='avro');

重新命名

ALTER TABLE iceberg_table RENAME TO new_iceberg_table;

更改列名字

ALTER TABLE iceberg_table RENAME id TO index;
說明

僅Realtime Compute引擎VVR 8.0.7及以上版本支援。

更改資料類型

ALTER TABLE iceberg_talbe MODIFY (id, BIGINT)

更改列的類型需要符合以下規則:

  • INT -> BIGINT

  • Float -> Double

  • Decimal -> Decimal

說明

僅Realtime Compute引擎VVR 8.0.7及以上版本支援。

寫入資料

INSERT INTO dlf.dlf_testdb.iceberg VALUES (1, 'AAA', '2022-02-01'), (2, 'BBB', '2022-02-01');
INSERT INTO dlf.dlf_testdb.hudi VALUES (1, 'AAA', '2022-02-01'), (2, 'BBB', '2022-02-01');

讀取資料

SELECT * FROM dlf.dlf_testdb.iceberg LIMIT 2;
SELECT * FROM dlf.dlf_testdb.hudi LIMIT 2;

刪除DLF Catalog

警告

刪除DLF Catalog不會影響已啟動並執行作業,但會導致使用該Catalog下表的作業,在上線或重啟時報無法找到該表的錯誤,請您謹慎操作。

支援UI與SQL命令兩種方式刪除DLF Catalog,推薦使用UI方式刪除DLF Catalog。

UI方式

  1. 進入中繼資料管理頁面。

    1. 登入Realtime Compute控制台

    2. 單擊目標工作空間操作列下的控制台

    3. 單擊中繼資料管理

  2. Catalog列表頁面,單擊目標Catalog名稱對應操作列的刪除

  3. 在彈出的提示頁面中,單擊刪除

  4. 在左側中繼資料下,查看目標Catalog是否已被刪除。

SQL方式

  1. 查詢指令碼文本編輯地區,輸入以下命令。

    DROP CATALOG ${catalog_name}

    其中,catalog_name為您要刪除的在Realtime Compute開發控制台上顯示的DLF Catalog名稱。

  2. 選中刪除Catalog的命令,滑鼠右鍵選擇運行

  3. 在左側中繼資料地區,查看目標Catalog是否已刪除。

相關文檔

  • Iceberg連接器的使用方法,詳情請參見Iceberg

  • Hudi連接器的使用方法,詳情請參見Hudi

  • 如果內建的Catalog無法滿足您的業務需求,您可以使用自訂Catalog,詳情請參見管理自訂Catalog