使用Hologres动态表

更新时间:2025-01-27 06:04

DataWorks数据目录融合了Hologres动态表引擎的功能,提供了一套可视化工具用于动态表管理、调度依赖以及任务维护等操作。方便您在DataWorks中创建使用Hologres动态表。

前提条件

使用限制

数据准备

您需在Hologres实例中创建测试需要的数据表并添加测试数据,示例信息如下:

CREATE  TABLE  tb_order(
    order_id int PRIMARY KEY,
    title VARCHAR(255),
    price FLOAT ,
    payment FLOAT ,
    order_time TIMESTAMP 
)WITH (
    orientation = 'row',
    clustering_key = 'order_id',
    binlog_level = 'replica',
    binlog_ttl = '86400' 
);

INSERT INTO tb_order SELECT 1252555,'book',12.36,12.36,'2024-12-19 09:00:05';
INSERT INTO tb_order SELECT 1252556,'pen',22.36,22.36,'2024-12-19 17:00:05';
INSERT INTO tb_order SELECT 1252557,'role',36.36,36.36,'2024-12-19 17:10:05';
说明

您在测试过程中需要将示例代码中的时间替换成当前的业务时间,否则在使用Hologres查询语句创建动态表时,可能无法获取测试数据。

进入数据目录

  1. 进入DataWorks工作空间列表页,在顶部切换至目标地域,找到已创建的工作空间,单击操作列的快速进入 > Data Studio,进入Data Studio。

  2. 在左侧导航栏单击image,进入数据目录

新建动态表

  1. 数据目录区域的Hologres类型下找到目标Hologres实例,依次展开目录,单击动态表右侧的image图标,进入新建动态表页面。

    说明
    • 如果您使用的是标准模式工作空间,在Hologres数据目录下会看到开发生产两个数据库实例。建议您先在开发环境的数据库中测试新建Hologres动态表,确认无误后再于生产环境中创建。

    • 在标准模式工作空间中,您在Hologres开发环境数据库中创建的动态表不会自动同步到生产环境数据库中。若要在生产环境数据库中查询使用这些表,您需要在生产环境数据库内单独创建Hologres动态表。

    image

  2. 在新建动态表向导页面,您可进行以下操作,完成动态表的新建。

    1. 基础信息设置。

      您可在此自定义动态表表名描述信息。

    2. 字段信息设置。

      1. 您可在字段信息区域的SQL开发页签中的编辑框中添加以下示例代码。

        SELECT 
            t.order_id,
            t.title,
            t.price,
            t.day_time,
            COUNT(*) AS order_num
        FROM (
            SELECT 
                order_id,
                title,
                price,
                EXTRACT(DAY FROM order_time) AS day_time
            FROM tb_order
            WHERE order_time >= NOW() - INTERVAL '1 hour'
        ) AS t
        GROUP BY 
            t.order_id,
            t.title,
            t.price,
            t.day_time;
      2. 添加完成后,单击编辑框上方的预编译,Hologres引擎会根据编译结果确认当前SQL是否有误,以及能够适配什么模式的动态表。

      3. 预编译成功后,您可单击字段信息区域的字段详情页签,为预编译出来的动态表添加描述信息。

    3. 分区字段选择。

      完成字段信息设置后,您可在分区字段信息下方的分区字段对话框下拉选择您所需设置的分区字段。不选择,系统默认设置为非分区动态表。非分区动态表与分区动态表的数据刷新方式、配置信息有所不同,具体如下:

      • 非分区动态表数据刷新方式:可以通过DataWorks周期调度或Holgores引擎来自动刷新非分区动态表。

      • 分区动态表数据刷新方式:数据的刷新生命周期为预创建分区启动分区刷新结束分区刷新回刷分区数据。

      • 非分区动态表与分区动态表的数据刷新策略配置参数不同,详情请参见数据刷新策略配置

    4. 高级设置选择。

      您可根据以下参数信息,配置动态表相关参数。

      参数

      参数描述

      参数

      参数描述

      存储模式

      Hologres支持列存行存行列共存三种存储模式。默认为列存。详情请参见表存储格式:列存、行存、行列共存

      • 列存适合各种OLAP场景的复杂查询。

      • 行存适用于基于主键(PK)的KV查询场景。

      • 行列共存则同时适用列存和行存的场景。

      Table Group

      选择您在Hologres数据源中创建内部表生成的Table Group名称,详情请参见Table Group管理

      存储策略

      Hologres的数据存储类型分为标准存储(热存储)、低频访问存储(冷存储)两种存储策略。

      • 热存储即全SSD热存储,是Hologres的默认存储,满足低延时、高性能访问数据需求,对于大多数使用场景而言,标准存储是最有效且最具成本效益的选择。

      • 冷存储即全HDD冷存,满足低频访问数据的低成本存储需求,适用于对延迟不敏感或不常访问的超大型数据集。

      详情请参见数据分层存储

      表数据生命周期

      您可在此处自定义动态表的最大数据生命周期。

      Binlog

      您可在此处选择开启(replica)或关闭(none)订阅Hologres Binlog日志信息,默认关闭。详情请参见订阅Hologres Binlog

      Binlog 生命周期

      当您选择开启(replica)订阅Hologres Binlog日志信息后,才能在此设置Hologres Binlog日志信息存储的最大生命周期,详情请参见订阅Hologres Binlog

      字段属性

      字段属性设置,主要包含对字段名对应的分布列分段列聚簇列位图列字典编码列进行选择设置。您可根据页面说明进行选择设置,详情请参见管理内部表

  3. 发布动态表。

    单击编辑页面右侧的刷新策略,在数据刷新策略页面进行数据刷新策略配置,在依赖配置下方下拉选择您所使用的调度资源组。单击编辑页面上方发布对新创建的Hologres动态表进行发布。

    说明

    您所创建的动态表为分区动态表,会弹出查看分区示例,您可根据数据刷新策略选择天分区小时分区进行发布

查看动态表

Hologres动态表发布完成后,您可在数据目录区域的Hologres类型下找到目标Hologres实例,依次展开目录,单击动态表,在动态表列表中,找到您已创建的Hologres动态表名,单击查看Hologres动态表详情信息。

  • 查看明细信息。

    您可在明细信息页签查看您所创建动态表的表字段分区字段信息。

  • 查看基础信息。

    您可在基础信息页签查看您所创建动态表的基础属性数据刷新逻辑-SQL数据刷新策略高级属性信息

  • 查看DDL信息。

    您可在DDL页签查看、复制您所创建动态表的DDL信息。

  • 查看产出信息。

    您可在产出信息页签查看动态表的数据产出信息。

    说明
    • 如果您创建的是非分区动态表,打开当前表即可查看产出信息。

    • 如果您创建的是分区动态表,主表是逻辑表,没有产出信息,需要单击分区动态表左侧的image图标,打开分区子表,查看子表的产出信息。

删除动态表

如您需要删除已创建的Hologres动态表,您可在数据目录区域的Hologres类型下找到目标Hologres实例,依次展开目录,右键单击动态表下的目标Hologres动态表名,选择删除,在删除确认框单击确认按钮,完成Hologres动态表删除。

重要

删除后无法恢复,请谨慎操作。

删除Hologres动态表前,会先执行DataWorks调度任务的删除动作,如果调度任务有下游依赖,则删除失败,需要您到运维中心手动进行下游依赖任务的解绑,然后再执行删除表操作。

数据刷新策略配置

非分区动态表与分区动态表的数据刷新策略配置参数不同,您可根据以下内容配置相应策略信息。

非分区动态表数据刷新策略配置
分区动态表数据刷新策略配置

参数

参数描述

刷新模式

刷新模式分为全量刷新(Full)增量刷新(Incremental)

刷新调度方式

刷新调度方式分为Hologres自动刷新DataWorks周期调度刷新

Hologres自动刷新

是否自动刷新数据

您可在此设置是否自动刷新数据。

DataWorks周期调度刷新

调度周期

您可根据业务需求设置调度周期为或者小时

  • 如设置调度周期为,您可在下方设置具体的调度时间

  • 如设置调度周期为小时,您可在下方的小时区间中设置开始时间时间间隔结束时间信息。如您想在指定小时执行调度刷新,则在指定小时下方设置指定小时指定分钟

Cron表达式

该处的Cron表达式为您所自定义的调度周期。

重跑属性

您可在此设置重跑属性信息,具体包含运行成功或失败后皆可重跑运行成功后不可重跑,运行失败后可以重跑运行成功或失败后皆不可重跑

刷新策略生命周期

参数

描述

预创建分区

预创建分区方式

默认为DataWorks调度创建分区,由DataWorks依赖调度触发。

预创建分区数

提前创建分区的子表数量。如果是天调度,则当天提前创建明天的分区;如果是小时调度,则当前小时提前创建下一个小时的分区。

分区单位

调度,则每天产生一个天分区,子表格式为:tableName_{yyyymmdd}。按小时调度,则每小时产生一个小时分区,子表格式为:tableName_{yyyymmddHH}

预创建分区日期

创建分区表的日期,会在指定的日期内根据预创建分区时间来创建分区子表。

预创建分区时间

创建分区表的时间,会在指定的时间内创建分区子表。

启动分区刷新

预创建分区数据刷新模式

请先预编译SQL以获取可选的刷新模式配置。全量刷新(Full)为全量数据刷新;增量刷新(Incremental)为分钟级刷新新增数据。

刷新调度方式

默认为Hologres自动刷新

是否自动刷新数据

您可在此选择是否开启自动刷新数据。

你若需要开启自动刷新数据,则根据页面提示信息选择配置数据刷新开始时间数据刷新周期间隔Hologres 计算资源Hologres 计算资源规格信息。

结束分区刷新

分区结束刷新任务,转为

默认转为全量刷新(Full)

结束分区刷新调度方式

DataWorks调度结束刷新。

结束时间

以创建动态表完成时间为基准,根据设置的延迟时间,将分区刷新任务转为全量刷新,并停止分区刷新任务。

回刷分区数据

是否回刷结束刷新的分区数据

您可在此选择是否对结束的分区执行一次全量刷新,以全量回刷该分区的数据。

说明

建议您在上游数据有变更的场景下再启动回刷分区数据。

你若需要开启回刷结束刷新的分区数据,则根据页面提示信息选择配置Hologres 计算资源Hologres 计算资源规格调度周期调度时间重跑属性信息。

  • 本页导读 (1)
  • 前提条件
  • 使用限制
  • 数据准备
  • 进入数据目录
  • 新建动态表
  • 查看动态表
  • 删除动态表
  • 数据刷新策略配置
文档反馈