本文为您介绍如何购买与使用Hologres Serverless型实例。
使用限制
Hologres Serverless型实例目前处于免费邀测阶段,请使用阿里云账号(主账号)填写表单申请试用。
Serverless型实例支持地域和可用区如下:
地域
可用区
华东1(杭州)
可用区J、K
华东2(上海)
可用区E、L
华南1(深圳)
可用区F、D
华北2(北京)
可用区I、L
中国(香港)
可用区B、D
新加坡
可用区A、C
邀测期间,每个阿里云账号在每个地域下只支持创建1个Serverless型实例。
功能介绍
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 Computing功能暂不支持的场景,如DLF外部表、跨库查询、多行DML混合事务等。详情请参见Serverless Computing使用限制。
不支持行存、行列共存,仅支持列存。详情请参见表存储格式:列存、行存、行列共存。
不支持Fixed Plan,会自动转为使用HQE执行引擎。
不支持消费Serverless型实例的Binlog,仅支持生成Binlog。详情请参见Hologres Binlog。
不支持低频访问存储(冷存)。详情请参见数据分层存储。
不支持设置数据的生命周期(TTL,time_to_live_in_seconds),详情参见设置表属性。如需清理数据,需要定期手动清理。
不支持手动执行Compaction,无需后台Auto Compaction。数据会在导入的同时完成Compaction,因此,相较于计算组型/通用型实例,Serverless型实例的数据导入性能会有一定损耗。
不支持容灾与备份恢复功能。
不支持Proxima向量计算。
不支持使用自定义函数UDF(Remote UDF)。
不支持实时物化视图,支持Dynamic Table。
Serverless型实例与其他产品对接情况如下:
Flink:不支持做Flink的源表。支持做Flink的维表和结果表,但由于Serverless型实例不支持Fixed Plan,会自动使用HQE执行,存在性能损失,建议充分测试后使用。
DataWorks数据集成:由于Serverless型实例不支持Fixed Plan,DataWorks数据集成的导入任务会自动使用HQE执行,存在性能损失,建议充分测试后使用。
PAI-Rec:由于Serverless型实例不支持向量计算,不支持Fixed Plan,建议使用计算组型实例对接PAI-Rec推荐系统。
Serverless型实例创建
单击购买页或登录Hologres管理控制台,单击左侧导航栏的实例列表,在实例列表页单击新增引擎实例。
购买页配置如下:
配置项
配置值
商品类型
独享实例(按量付费)
地域
目标地域(Serverless型实例支持的地域)。
实例类型
Serverless型
可用区
目标可用区。
专有网络(VPC)
选择您所创建的专有网络和交换机。具体操作请参见专有网络与交换机。
专有网络交换机
实例名称
自定义命名。
服务关联角色
已创建。如果是首次购买Hologres实例,需在购买页底部单击创建服务关联角色。
资源组
默认资源组。您也可以选择创建其他资源组。
完成配置后,单击立即购买。
在确认订单页面,单击立即开通。
Severless型实例将在数分钟内创建完成。
Serverless型实例运维
自动停机
对于Serverless型实例,如果连续30天没有数据写入或数据查询请求,实例会在第31天自动停机。您可以通过以下步骤查看当前实例距自动停机的剩余时间:
单击左侧导航栏的实例列表。
单击目标Serverless型实例。在实例详情页的基础信息中进行查看。
在停机状态下,实例的存储数据保留,仍会按量计费。实例的计算服务暂停,不会产生费用。如需重新启用计算服务,只需在实例列表页面中,单击目标实例所在运行状态列的恢复操作即可。
实例版本升级
对于Serverless型实例,为提升实例的稳定性和与Serverless Computing资源池间的兼容性,Hologres可能在您的可维护时间窗口内,自动将您的实例升级至最新稳定版本。除后台自动升级外,您可以自助升级至最新稳定版本。
Serverless型实例版本升级均采用热升级方案,升级所带来的影响详情请参见升级方式。
监控指标
Serverless型实例支持绝大部分的监控指标,详情请参见Hologres管控台的监控指标。仅有部分不支持的功能没有对应的指标,例如Fixed Plan、低频访问存储以及Binlog消费等。
您可正常查看Serverless型实例的监控指标,并配置相应监控告警。
Serverless型实例使用
Serverless型实例的使用方式与计算组型实例、通用型实例一致。您可以正常连接实例并执行请求。
本示例以GitHub公开事件数据为例,为您演示Serverless型实例的使用方法。步骤如下:
一键导入公共数据集或手动新建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 'actor与repo之间的关系'; 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 '事件发生所在小时,如00点23分,hr=00'; COMMENT ON COLUMN hologres_dataset_github_event.hologres_github_event.month IS '事件发生所在月,如2015年10月,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;
数据查询
例如查询近一周最活跃(事件数最多)的几个项目。命令如下:
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;
(可选)通过DataV搭建实时大屏。
您可以通过DataV的数据大屏模板,将Serverless型实例作为数据源来快速搭建GitHub事件数据实时大屏。
创建Hologres数据源。
将数据所在的Hologres实例和数据库创建为DataV的数据源,详情请参见DataV。
创建可视化应用。
登录DataV控制台。
在工作台页面,单击创建PC端看板。
选择使用Hologres实时分析GitHub事件数据模板。
修改模板中相关组件的数据源。
以左上角的今日公开事件总数为例:
单击今日公开事件总数对应的数字框,点击右侧数据源,选择数据源类型为实时数仓Hologres。
选择已有数据源为您已创建的数据源。
如果您在Hologres中的表名和Schema与本实践相同,则不需修改SQL。
修改完成后,数据响应结果刷新,大屏中成功展示实时数据。
按照示例更新大屏中的数据源和表名,需更新组件及更新后效果如下图所示。
单击右上角发布,完成大屏搭建。
您也可以单击预览,预览实时更新的数据大屏。