文档

在Hologres中使用DLF Catalog

更新时间:

本文主要介绍了在Hologres数据库中,集成并利用DLF 2.0的Catalog功能进行高效元数据管理与数据读写操作的流程,帮助您更好地组织、访问和控制数据资源。

前提条件

  • 已创建DLF 2.0数据目录。如未创建,详情请参见创建数据目录

    说明

    如果是RAM用户,在进行数据操作之前,需要先授予相应的资源权限。详情请参见授权管理

  • 已创建Hologres实例,实例版本需要不低于3.0.7。

步骤一:创建External Database

  1. 登录Hologres控制台

  2. 单击实例列表中的实例名称,进入实例详情页。

  3. 单击登录实例,进入HoloWeb页面。

  4. 在左侧实例列表中双击要登录的实例,在弹出的对话框中,选择要登录的数据库,单击确认

  5. 单击上方页签中的SQL编辑器,进入Query查询页面

  6. 单击image图标,新建SQL查询。

  7. 运行以下SQL,创建External Database。

    说明

    Catalog需要先在DLF创建,并用Catalog ID替换SQL中的dlf_catalog字段的值。

    CREATE EXTERNAL DATABASE dlf_clg_test
    WITH 
        metastore_type 'dlf-paimon'
        catalog_type 'paimon'
        dlf_region 'cn-hangzhou'
        dlf_endpoint 'dlfnext-share.cn-hangzhou.aliyuncs.com'
        dlf_catalog 'clg-paimon-5c950c6e26**********a4e551e3c150'
    ;

    配置项

    说明

    是否必填

    备注

    dlf.region

    DLF所在地域。

    DLF所在地域ID,详情请参见地域及访问域名

    dlf.endpoint

    DLF服务的Endpoint。

    Endpoint格式为:dlfnext-share.cn-xxx.aliyuncs.com,其中cn-xxx为dlf.region。

    dlf.catalog

    DLF数据目录ID。

    请在数据湖构建控制台的数据目录列表中查看Catalog ID。

步骤二:创建External Schema

运行以下SQL,创建External Schema。

CREATE EXTERNAL SCHEMA IF NOT EXISTS dlf_clg_test.github_events;

步骤三:读写数据

创建数据表

运行以下SQL,创建数据表。

CREATE EXTERNAL TABLE dlf_clg_test.github_events.gh_event_archive(
    id TEXT,                                        -- 每个事件的唯一ID。
    actor_id TEXT,                                  -- GitHub用户ID。
    actor_login TEXT,                               -- GitHub用户名。
    repo_id TEXT,                                   -- GitHub仓库ID。
    repo_name TEXT,                                 -- GitHub仓库名,如:apache/flink, apache/spark, alibaba/fastjson等。
    created_at BIGINT,                              -- 事件时间,单位秒。
    type TEXT                                       -- GitHub事件类型,如:ForkEvent, WatchEvent, IssuesEvent, CommitCommentEvent等。
) WITH (
  "bucket"=6,
  "bucket-key"='id'
);

插入数据

运行以下SQL,插入数据。目前INSERT INTO仅支持Paimon Append表。

INSERT INTO dlf_clg_test.github_events.gh_event_archive(id, actor_id, actor_login, repo_id, repo_name, created_at, type)
VALUES
('1', '11', 'user1', '78901', 'flink', 1623547200, 'ForkEvent'),
('2', '12', 'user2', '123456', 'spark', 1623548400, 'WatchEvent'),
('3', '13', 'user3', '246801', 'fastjson', 1623549600, 'CommitEvent');

查询数据

运行以下SQL,查询数据。

SELECT * FROM dlf_clg_test.github_events.gh_event_archive;