Serverless型实例使用指南

本文为您介绍如何购买与使用Hologres Serverless型实例。

使用限制

说明

Hologres Serverless型实例目前处于免费邀测阶段,请使用阿里云账号(主账号)填写表单申请试用。

  • Serverless型实例支持地域和可用区如下:

    地域

    可用区

    华东1(杭州)

    可用区J、K

    华东2(上海)

    可用区E、L

    华南1(深圳)

    可用区F、D

    华北2(北京)

    可用区I、L

    中国(香港)

    可用区B、D

    新加坡

    可用区A、C

  • 邀测期间,每个阿里云账号在每个地域下只支持创建1Serverless型实例。

功能介绍

Serverless型实例的功能如下(与计算组型和通用型实例对比):

  • 邀测期间,每个Serverless型实例的可用计算资源量上限(Quota)为512 CU,仍支持SQL级别设置可用的资源量。详情请参见Serverless Computing资源量

  • Serverless型实例的全部读写请求都使用Serverless Computing资源执行,不支持手动设置hg_computing_resource参数。

  • Serverless型实例不支持查询队列Query Queue,所有请求均遵循Serverless Computing资源申请规则排队规则

  • Serverless型实例支持的最大连接数是256个,详情请参见连接数管理

  • Serverless型实例在存储上的默认Shard数是16,实例内所有Table Group的总Shard数上限为128,不建议设置较大Shard数。详情请参见Shard数管理

Serverless型实例不支持的功能如下:

Serverless型实例与其他产品对接情况如下:

  • Flink:不支持做Flink的源表。支持做Flink的维表和结果表,但由于Serverless型实例不支持Fixed Plan,会自动使用HQE执行,存在性能损失,建议充分测试后使用。

  • DataWorks数据集成:由于Serverless型实例不支持Fixed Plan,DataWorks数据集成的导入任务会自动使用HQE执行,存在性能损失,建议充分测试后使用。

  • PAI-Rec:由于Serverless型实例不支持向量计算,不支持Fixed Plan,建议使用计算组型实例对接PAI-Rec推荐系统。

Serverless型实例创建

  1. 单击购买页或登录Hologres管理控制台,单击左侧导航栏的实例列表,在实例列表页单击新增引擎实例

  2. 购买页配置如下:

    配置项

    配置值

    商品类型

    独享实例(按量付费)

    地域

    目标地域(Serverless型实例支持的地域)。

    实例类型

    Serverless

    可用区

    目标可用区。

    专有网络(VPC)

    选择您所创建的专有网络和交换机。具体操作请参见专有网络与交换机

    专有网络交换机

    实例名称

    自定义命名。

    服务关联角色

    已创建。如果是首次购买Hologres实例,需在购买页底部单击创建服务关联角色

    资源组

    默认资源组。您也可以选择创建其他资源组。

  3. 完成配置后,单击立即购买

  4. 确认订单页面,单击立即开通

    Severless型实例将在数分钟内创建完成。

Serverless型实例运维

自动停机

对于Serverless型实例,如果连续30天没有数据写入或数据查询请求,实例会在第31自动停机。您可以通过以下步骤查看当前实例距自动停机的剩余时间:

  1. 登录Hologres管理控制台

  2. 单击左侧导航栏的实例列表

  3. 单击目标Serverless型实例。在实例详情页的基础信息中进行查看。

在停机状态下,实例的存储数据保留,仍会按量计费。实例的计算服务暂停,不会产生费用。如需重新启用计算服务,只需在实例列表页面中,单击目标实例所在运行状态列的恢复操作即可。

实例版本升级

对于Serverless型实例,为提升实例的稳定性和与Serverless Computing资源池间的兼容性,Hologres可能在您的可维护时间窗口内,自动将您的实例升级至最新稳定版本。除后台自动升级外,您可以自助升级至最新稳定版本。

Serverless型实例版本升级均采用热升级方案,升级所带来的影响详情请参见升级方式

监控指标

Serverless型实例支持绝大部分的监控指标,详情请参见Hologres管控台的监控指标。仅有部分不支持的功能没有对应的指标,例如Fixed Plan、低频访问存储以及Binlog消费等。

您可正常查看Serverless型实例的监控指标,并配置相应监控告警。

Serverless型实例使用

Serverless型实例的使用方式与计算组型实例、通用型实例一致。您可以正常连接实例并执行请求。

本示例以GitHub公开事件数据为例,为您演示Serverless型实例的使用方法。步骤如下:

  1. 创建Serverless型实例

  2. 创建数据库

  3. 一键导入公共数据集或手动新建SQL查询创建MaxCompute外表并导入,命令如下:

    -- 新建schema用于创建外部表
    CREATE SCHEMA IF NOT EXISTS hologres_foreign_dataset_github_event;
    
    -- 新建schema用于创建内表并导入数据
    CREATE SCHEMA IF NOT EXISTS hologres_dataset_github_event;
    
    -- 创建外部表
    DROP FOREIGN TABLE IF EXISTS hologres_foreign_dataset_github_event.dwd_github_events_odps;
    
    IMPORT FOREIGN SCHEMA "bigdata_public_dataset#github_events" LIMIT TO
    (
        dwd_github_events_odps
    ) 
    FROM SERVER odps_server INTO hologres_foreign_dataset_github_event OPTIONS(if_table_exist 'error',if_unsupported_type 'error');
    
    -- 创建内表
    DROP TABLE IF EXISTS hologres_dataset_github_event.hologres_github_event;
    BEGIN;
    CREATE TABLE hologres_dataset_github_event.hologres_github_event (
        id BIGINT,
        actor_id BIGINT,
        actor_login TEXT,
        repo_id BIGINT,
        repo_name TEXT,
        org_id BIGINT,
        org_login TEXT,
        type TEXT,
        created_at TIMESTAMP WITH TIME ZONE NOT NULL,
        action TEXT,
        iss_or_pr_id BIGINT,
        number BIGINT,
        comment_id BIGINT,
        commit_id TEXT,
        member_id BIGINT,
        rev_or_push_or_rel_id BIGINT,
        ref TEXT,
        ref_type TEXT,
        state TEXT,
        author_association TEXT,
        language TEXT,
        merged boolean,
        merged_at TIMESTAMP WITH TIME ZONE,
        additions BIGINT,
        deletions BIGINT,
        changed_files BIGINT,
        push_size BIGINT,
        push_distinct_size BIGINT,
        hr TEXT,
        month TEXT,
        year TEXT,
        ds TEXT
    );
    CALL set_table_property('hologres_dataset_github_event.hologres_github_event', 'distribution_key', 'id');
    CALL set_table_property('hologres_dataset_github_event.hologres_github_event', 'event_time_column', 'created_at');
    CALL set_table_property('hologres_dataset_github_event.hologres_github_event', 'clustering_key', 'created_at');
    
    
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.id IS '事件ID';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.actor_id IS '事件发起人ID';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.actor_login IS '事件发起人登录名';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.repo_id IS 'repoID';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.repo_name IS 'repo名称';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.org_id IS 'repo所属组织ID';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.org_login IS 'repo所属组织名称';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.type IS '事件类型';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.created_at IS '事件发生时间';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.action IS '事件行为';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.iss_or_pr_id IS 'issue/pull_request ID';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.number IS 'issue/pull_request 序号';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.comment_id IS 'comment(评论)ID';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.commit_id IS '提交记录ID';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.member_id IS '成员ID';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.rev_or_push_or_rel_id IS 'review/push/release ID';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.ref IS '创建/删除的资源名称';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.ref_type IS '创建/删除的资源类型';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.state IS 'issue/pull_request/pull_request_review的状态';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.author_association IS 'actorrepo之间的关系';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.language IS '编程语言';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.merged IS '是否接受合并';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.merged_at IS '代码合并时间';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.additions IS '代码增加行数';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.deletions IS '代码减少行数';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.changed_files IS 'pull request 改变文件数量';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.push_size IS '提交数量';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.push_distinct_size IS '不同的提交数量';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.hr IS '事件发生所在小时,如0023分,hr=00';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.month IS '事件发生所在月,如201510月,month=2015-10';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.year IS '事件发生所在年,如2015年,year=2015';
    COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.ds IS '事件发生所在日,ds=yyyy-mm-dd';
    COMMIT;
    
    -- 导入数据
    SET hg_experimental_serverless_computing_required_cores = 192;
    INSERT INTO hologres_dataset_github_event.hologres_github_event
    SELECT
        *
    FROM
        hologres_foreign_dataset_github_event.dwd_github_events_odps
    WHERE
        ds BETWEEN (CURRENT_DATE - interval '365 day')::text AND (CURRENT_DATE - interval '1 day')::text;
    RESET hg_computing_resource;
    
    -- 更新表的统计信息
    ANALYZE hologres_dataset_github_event.hologres_github_event;
  4. 数据查询

    例如查询近一周最活跃(事件数最多)的几个项目。命令如下:

    SELECT
        repo_name,
        COUNT(*) AS events
    FROM
        hologres_dataset_github_event.hologres_github_event
    WHERE
        ds >= (CURRENT_DATE - INTERVAL '7 day')::text
    GROUP BY
        repo_name
    ORDER BY
        events DESC
    LIMIT 5;
  5. 可选)通过DataV搭建实时大屏。

    您可以通过DataV的数据大屏模板,将Serverless型实例作为数据源来快速搭建GitHub事件数据实时大屏。

    1. 创建Hologres数据源。

      将数据所在的Hologres实例和数据库创建为DataV的数据源,详情请参见DataV

    2. 创建可视化应用。

      1. 登录DataV控制台

      2. 工作台页面,单击创建PC端看板

        选择使用Hologres实时分析GitHub事件数据模板

      3. 修改模板中相关组件的数据源。

        以左上角的今日公开事件总数为例:

        1. 单击今日公开事件总数对应的数字框,点击右侧数据源,选择数据源类型实时数仓Hologresimage.png

        2. 选择已有数据源为您已创建的数据源。

          如果您在Hologres中的表名和Schema与本实践相同,则不需修改SQL。

        3. 修改完成后,数据响应结果刷新,大屏中成功展示实时数据。

        4. 按照示例更新大屏中的数据源和表名,需更新组件及更新后效果如下图所示。

          image.png

      4. 单击右上角发布,完成大屏搭建。

        您也可以单击预览,预览实时更新的数据大屏。