操作手册
【实践】基于Hologres轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
场景简介
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
背景知识
本场景主要涉及以下云产品和服务:
Hologres是阿里云自研一站式实时数仓,统一数据平台架构,支持海量结构化/半结构化数据的实时写入、实时更新、实时加工、实时分析,支持标准SQL(兼容PostgreSQL协议),无缝对接主流BI工具,支持OLAP查询、即席分析、在线服务、向量计算多个场景,分析性能打破TPC-H世界记录,与MaxCompute、Flink、DataWorks深度融合,提供离在线一体化全栈数仓解决方案。
专有网络(Virtual Private Cloud,简称VPC),帮助您基于阿里云构建一个逻辑隔离的云上数据中心。专有网络由逻辑网络设备(如虚拟路由器,虚拟交换机)组成,可以通过专线/VPN等连接方式与传统数据中心组成一个按需定制的网络环境,实现应用的平滑迁移上云。
DataWorks基于阿里云ODPS/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。作为阿里巴巴数据中台的建设者,DataWorks从2009年起不断沉淀阿里巴巴大数据建设方法论,同时与数万名政务/金融/零售/互联网/能源/制造等客户携手,助力产业数字化升级。
数据可视化DataV是阿里云数据可视化应用搭建平台,旨让更多的人看到数据可视化的魅力,帮助非专业的工程师通过图形化的界面轻松搭建专业水准的可视化应用,满足您会议展览、业务监控、风险预警、地理信息分析等多种业务的展示需求。
前提条件
本实验需要您使用阿里云账号开通本次实操资源,资源按量付费,需要您自行承担本次实操的云资源费用。
本实验2个小时预计产生费用2.5元。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。
进入实操前,请确保阿里云账号满足以下条件:
创建专有网络VPC和交换机
为确保后续任务的网络连通,请务必保证Hologres与DataWorks资源组使用同⼀个VPC。
登录专有网络管理控制台。
在左侧导航栏中,单击专有网络。
在专有网络页⾯,在右上角切换⾄华东2(上海)地域,单击创建专有网络。
在创建专有网络页⾯,根据下方参数说明配置1个专有网络(VPC)和1台交换机,然后单击确定。更多关于创建专有网络和交换机信息,详情请参见创建和管理专有网络。
配置项
说明
专有网络
地域
选择华东2(上海)。
名称
自定义名称。
IPv4网段
选择手动输入IPv4地址段。
输入IPv4网段
输入IPv4网段,建议您使用RFC私网地址作为专有网络的网段如
10.0.0.0/8
,172.16.0.0/12
,192.168.0.0/16
。交换机
名称
自定义名称。
可用区
选择上海可用区E。
IPv4网段
使用默认的IPv4网段即可。
在创建专有网络页面,您可查看到创建的专有网络VPC和交换机的ID、实例名称等信息。
领取实时数仓Hologres
如果您的阿里云账号有领取实时数仓Hologres的免费试用资格,请您根据下方操作进行领取。免费试用包括32核或8核规格,以32核为例,运行1小时消耗32个CU*H,5000CU*H约可免费试用156个小时。资源包耗尽将自动转按量付费,详情请参见按量付费。
如果您的阿里云账号已领取过实时数仓Hologres免费试用资格,请您前往Hologres购买页,创建Hologres实例,并会产生一定的费用,详情请参见购买Hologres和按量付费。创建Hologres实例时的相关配置,其中商品类型请选择独享实例(按量付费),实例类型选择通用型,其余配置请参考本小节内容。
在实验室页面右侧的操作区中,单击实时数仓Hologres卡片中的立即试用。
说明您也可以前往链接免费试用实试数仓Hologres进行领取。
在实时数仓Hologres面板,根据如下参数说明进行配置,未提及的参数保持默认即可,单击立即试用。
配置项
说明
地域
选择华东2(上海)。
计算资源
选择32核128GB(计算节点数量:2)。
专有网络(VPC)
选择您创建的专有网络VPC。
专有网络交换机
选择您创建的交换机。
实例名称
自定义实例名称。
服务关联角色
确认是否已开通相关服务角色,如没有请单击创建服务关联角色。
服务协议
阅读并勾选服务协议。
免费试用申请成功通过后,系统将会为您自动创建Hologres实例。登录实时数仓Hologres控制台,在实例列表页面,等待运行状态变为运行正常,即可正常使用。
开通DataWorks
DataWorks新增资源组(按量计费)暂时无释放功能,不使用时不会产生费用。
在实验室页面右侧的操作区中,勾选我已阅读并同意《阿里云云起实践平台服务协议》,单击开始实操。
在DataWorks创建页面,根据如下说明配置参数,未提及的参数保持默认即可,单击确认订单并支付。
配置项
说明
地域
在本实验中选择华东2(上海)。
DataWorks
选择基础版,基础版(0元/月)适合学生及大数据入门者进行试用。
购买时长
根据您的需要选择购买时长和是否开通到期自动续费。
DataWorks资源组
付费模式:按量付费。
资源组名称:自定义资源组名称。
专有网络(VPC):选择和Hologres同一个VPC。
交换机(V-Switch):选择Hologres同一个VSwitch。
服务关联角色:按照页面指引创建相关角色。
说明关于新版资源组计费详情,请参见Serverless资源组计费。
服务协议
勾选服务协议。
在资源校验对话框中,单击下一步:价格清单。
在价格清单对话框中,单击下一步:创建订单。
在支付页面,单击支付。
在DataWorks开通成功页面,单击进入DataWorkds管理控制台。
在左侧导航栏中,单击工作空间列表。
在工作空间列表页面,您可以查看到创建的默认工作空间。
在左侧导航栏中,单击资源组列表。
在资源组列表页面,等待目标资源组的状态变为运行中,即可正常使用资源组。
创建公网NAT
登录NAT网关管理控制台。
在公网NAT网关页面,在右上角切换⾄华东2(上海)地域,单击创建NAT网关。
首次使用NAT网关时,在创建公网NAT网关页面关联角色创建区域,单击创建关联角色。角色创建成功后即可创建NAT网关。
说明如果您非首次使用NAT网关,则不会弹出此提示,您可忽略此步骤。
在创建公网NAT网关页面,配置以下购买信息,然后单击立即购买。
配置项
说明
付费模式
默认选择为按量付费,即一种先使用后付费的付费模式。更多信息,请参见公网NAT网关计费。
所属地域
选择华东2(上海)。
Hologres、DataWorks、NAT都需要在阿里云相同的地域region。
所属专有网络
选择与Hologres同一专有网络。
Hologres、DataWorks、NAT都需要在同一专有网络下。
关联交换机
选择与Hologres同一交换机。
访问模式
选择VPC全通模式(SNAT)。
选择了VPC全通模式,在公网NAT网关创建成功后当前VPC内所有实例即可通过该公网NAT网关访问公网。
弹性公网IP
选择新购弹性公网IP。
创建NAT后就自动绑定了公网统一出口的EIP。
计费类型
选择按流量计费。
选择按流量计费后,EIP流量费可以被CDT免费流量进行抵扣。
其他参数
保持默认或按需选择。
在确认订单页面,确认公网NAT网关的配置信息,选中服务协议,单击确认订单。
返回如下页面,表示您已创建成功,可以查看到创建的弹性公网IP、NAT网关等资源的资源ID。
创建Hologres表
初始化Hologres环境。
登录Hologres控制台。
在页面右上角,地域切换至华东2(上海),然后在左侧导航栏中,单击实例列表。
在实例列表页面,但是实例ID。
在实例详情页面,单击登录实例,进入HoloWeb。
在元数据管理页签,单击新建库。
在新建数据库对话框中,参考如下说明配置,单击确认。
配置项
说明
实例名
选择在哪个Hologres实例上创建数据库,默认展示当前已登录实例的名称。
数据库名称
在本实验中,数据库名称设置为
holo_tutorial
。数据库名称
选择默认的SPM。更多关于权限策略的说明,请参见:
SPM:简单权限模型,该权限模型授权是以DB为粒度,划分admin(管理员)、developer(开发者)、writer(读写者)以及viewer(分析师)四种⻆⾊,您可以通过少量的权限管理函数,即可对DB中的对象进行⽅便且安全的权限管理。
SLPM:基于Schema级别的简单权限模型,该权限模型以为Schema为粒度,划分<db> .admin(DB管理员)、<db>.<schema>.developer(开发者)、<db>.<schema>.writer(读写者)以及 <db>.<schema>.viewer(分析师),相⽐于简单权限模型更为细粒度。
专家:Hologres兼容PostgreSQL,使用与Postgres完全⼀致的权限系统。
立即登录
选择是。
在顶部菜单栏中,单击SQL编辑器。
在SQL编辑器页面,单击左上⻆的
图标,新建SQL查询。
新建Hologres内部表。
将如下命令复制并粘贴至临时Query查询页签中,单击执行,创建Hologres内部表hologres_dataset_github_event.hologres_github_event,后续会将数据实时写入至该表中。
-- 新建schema用于创建内表并导入数据 CREATE SCHEMA IF NOT EXISTS hologres_dataset_github_event; DROP TABLE IF EXISTS hologres_dataset_github_event.hologres_github_event; BEGIN; CREATE TABLE hologres_dataset_github_event.hologres_github_event ( id bigint PRIMARY KEY, 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, commit_id text, member_id bigint, language 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.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.language IS '编程语⾔'; COMMIT;
实时同步数据至Hologres
创建同步任务所需的数据源。
登录DataWorks控制台。
在页面右上角,地域切换至华东2(上海),然后在左侧导航栏中,单击管理中心。
在管理中心页面,在下拉框中选择默认⼯作空间,单击进入管理中心。
在左侧导航栏中,选择数据源 > 数据源列表。
创建MySQL数据源。
在数据源页面,单击新增数据源。
在新增数据源对话框中,单击MySQL。
在创建MySQL数据源页面,参考如下说明配置参数,未提及的参数保持默认即可。
参数
说明
数据源名称
自定义数据源名称,本实验以mysqlData为例。
配置模式
选择连接串模式。
JDBC连接地址
单击新增地址,配置信息如下:
主机地址IP:
rm-bp1z69dodhh85z9qa.mysql.rds.aliyuncs.com
端⼝号:3306
输入数据库名称后,完整的JDBC URL为
jdbc:mysql://rm-bp1z69dodhh85z9qa.mysql.rds.aliyuncs.com:3306 /github_events_share
数据库名称
github_events_share
用户名
workshop
密码
workshop#2017
此密码仅为本实验示例,请勿在实际业务中使用。
认证选项
无认证。
配置完成后,在连接配置区域,找到您创建的资源组,单击其右侧的测试连通性。
测试通过后,单击完成创建。
创建Hologres数据源。
在数据源页面,单击新增数据源。
在新增数据源对话框中,单击Hologress。
在创建Hologress数据源页面,参考如下说明配置参数,未提及的参数保持默认即可,
Hologres数据源:去向数据源。
参数
说明
数据源名称
自定义数据源名称,本实验以hologresData为例。
认证方式
默认为阿里云账号及阿里云RAM角色。
所属云账号
当前阿里云主账号。
地域
华东2(上海)。
Hologres实例
选择已创建的实例。
数据库名称
填写上述已创建的Hologres数据库名称holo_tutorial。
默认访问身份
选择阿里云主账号。
认证选项
无认证。
配置完成后,在连接配置区域,找到您创建的资源组,单击其右侧的测试连通性。
测试通过后,单击完成创建。
创建实时同步任务。
在数据源页面的右上角,单击
图标打开导航栏,单击数据集成。
在数据集成页面,在创建同步任务中,选择来源与去向数据源,单击开始创建。
来源:选择MySQL。
去向:选择Hologres。
在基本信息区域中,配置任务信息。
新任务名称:data_test。
同步类型:选择整库实时。
在网络与资源配置区域中,配置任务网络连通。
选择数据来源、数据去向及资源组。
数据来源:选择mysqlData。
数据去向:选择hologresData。
资源组:选择开通DataWorks时创建的资源组,占用的CU量配置为2CU。
说明为保持公共数据源连接稳定,资源组与公共MySQL数据源创建连接后7天将进行释放, 不影响资源组与您自己的MySQL创建的连接。
单击测试所有连通性,保障数据源与资源组网络连通。
说明若无法联通请查看教程要求,请务必保证DataWorks资源组与Hologres使用同⼀个VPC。更多网络连通介绍,请参见网络连通方案。
测试通过后,单击下⼀步。
实时同步任务设置。
在选择要同步的库表区域的源端库表中,勾选github_public_event表,然后单击
图标。
在目标表映射区域,勾选github_public_event表,单击批量刷新映射。基于上述已创建的Hologres内部表,将目标Schema名改为hologres_dataset_github_event,目标表名改为hologres_github_event,单击完成配置。
在任务列表页面,单击启动。
在任务列表页面,单击任务名称。
在任务详情页面,您可查看到任务的执行情况,请耐心等待任务执行完成。
说明公共数据源MySQL中保留近7天数据,离线数据将会通过全量进行同步,实时数据将在全量初始化完成后,实时写入Hologres。
当结构迁移和全量初始化完成后,表示数据同步已成功,就可以登录Hologres进行实时数据分析。
实时OLAP分析
返回至SQL编辑器·HoloWeb页签。
在临时Query查询页签中,执行如下命令,查询实时更新的过去24小时GitHub最活跃项⽬。
SELECT repo_name, COUNT(*) AS events FROM hologres_dataset_github_event.hologres_github_event WHERE created_at >= now() - interval '1 day' GROUP BY repo_name ORDER BY events DESC LIMIT 5;
您也可以在元数据管理中自定义实时查询与分析Hologres近7天的数据。后续将其他维度的实时查询分析结果对接到DataV大屏。
实时数据大屏
基于DataV自带模板,快速完成数据可视化大屏搭建。
创建阿里云AccessKey
重要在本实验完成后,若不再使用,建议参考实验手册步骤及时删除阿里云AccessKey。
前往AccessKey管理。
在不建议使用云账号AccessKey对话框,阅读创建主账号AccessKey的风险,如果必须要创建主账号AccessKey,则勾选我确认知晓云账号AccessKey安全风险,然后单击继续使用云账号AccessKey。
在AccessKey页面,单击创建AccessKey。
根据界面提示完成安全验证。
在创建云账号AccessKey对话框,再次阅读创建主账号AccessKey的风险及主账号AccessKey使用限制,如果确定要创建主账号AccessKey,则勾选我确认知晓云账号AccessKey安全风险,然后单击继续使用云账号AccessKey。
在创建AccessKey对话框,保存AccessKey ID和AccessKey Secret,然后勾选我已保存好AccessKey Secret,最后单击确定。
登录DataV控制台。
根据页面指引,选择您需要开通的版本。
重要如果您的阿里云账号有DataV试用版本资格,请您先领取试用版本。
如果您的阿里云账号没有DataV试用版本资格,请您开通公共云版本或本地部署版本。其中,公共云版本中的个人版不支持Hologres数据源接入,请勿开通此版本。公共云版本或本地部署版本的费用问题,详情请参见计费方式。
若您已开通DataV,请您跳过此步骤。
在左侧导航栏中,选择数据准备 > 数据源。
在数据源页面,单击新建数据源。
在添加数据源面板中,根据如下说明配置参数信息新增Hologres数据源,并单击确定。
参数
说明
类型
实时数仓Hologres
网络
内网
华东2
VPC ID
登录Hologres控制台,在实例列表页面,单击目标实例ID,在实例详情页面的网络信息区域,获取指定VPC的VPC ID。
VPC实例ID
登录Hologres控制台,在实例列表页面,单击目标实例ID,在实例详情页面的网络信息区域,获取指定VPC的VPC实例ID。
名称
自定义名称。
域名
登录Hologres控制台,在实例列表页面,单击目标实例ID,在实例详情页面的网络信息区域,获取指定VPC的VPC域名,填写时需要去掉:80。
用户名
输入创建的AccessKey ID。
密码
输入创建的AccessKey Secret。
端口
登录Hologres控制台,在实例列表页面,单击目标实例ID,在实例详情页面的网络信息区域,获取指定VPC的VPC域名中获取端⼝。例如:80。
数据库
输入上述已创建的Hologres数据库名称,本实验以
holo_tutorial
为例。在左侧导航栏,单击未分组。
在未分组页面,单击创建PC端看板。
在创建看板页面,选择使用Hologres实时分析GitHub事件数据模板,单击创建看板。
在创建看板对话框中,输入看板名称后,单击创建看板。
在已创建的看板页面中,依次双击画布中的数字,并在右侧数据源页签中,数据源类型选择实时数仓Hologress,选择已添加的Hologres数据源。
该看板一共有15处地方的数据源需要修改为Hologres数据源。
所有数字涉及的数据源都选择完成后,单击看板右上⻆的预览,即可获取实时更新的数据大屏预览链 接(正式发布需要升级DataV⾼级版本)。最终效果如下图所示。
清理资源
在完成实验后,如果无需继续使用资源,请根据以下步骤,先删除相关资源后,再结束实操,否则资源会持续运行产生费用。
删除实时数仓Hologres。
登录Hologres控制台。
在页面右上角,地域切换至华东2(上海),然后在左侧导航栏中,单击实例列表。
在实例列表页面,找到创建的Hologres实例,单击右侧运行状态下的停机。
Hologres实例停机后,单击右侧运行状态下的删除。
删除实时同步任务、数据源、资源组和工作空间。
登录DataWorks控制台。
在页面右上角,地域切换至华东2(上海),然后在左侧导航栏中,单击工作空间列表。
在工作空间列表页面,找到目标工作空间,选择其右侧操作列下的快速进入 > 数据集成。
在数据集成页面,找到目标同步任务,单击其右侧操作列下的停止。
任务停止以后,选择其右侧操作列下的更多 > 删除。
在工作空间列表页面,找到目标工作空间,单击其右侧操作列下的管理。
在左侧导航栏中,选择数据源 > 数据源列表。
在数据源页面,分别单击Hologre和MySQL数据源右侧操作列下的删除。
在DataWorks控制台左侧导航栏中,单击资源组列表,找到您创建的资源组,选择其右侧操作列下的
> 退订。
在退订对话框中,单击确认。
在工作空间列表页面,找到目标工作空间,单击其右侧操作列下的删除。
在删除工作空间对话框中,勾选我确认该DataWorks空间及其所包含的所有实体将被永久删除,且不可恢复和我确认该DataWorks空间对应的AI工作空间将被永久删除,且不可恢复,单击确认。
删除MaxCompute项目。
在页面上方的菜单栏中,地域切换至华东2(上海)。在项目管理页面,找到创建DataWorks时绑定的MaxCompute项目,单击其右侧操作列下的删除。
在删除项目对话框中,勾选你确认要继续执行删除MaxCompute项目的操作吗,单击确定。
删除公网NAT和弹性公网IP。
登录公网NAT网关。
在页面上方的菜单栏中,地域切换至华东2(上海)。
在公网NAT网关页面,找到创建的NAT网关,选择其右侧操作列下的
图标 > 删除。
在删除网关对话框中,勾选强制删除(删除NAT网关及其包含资源),单击确定。
在左侧导航栏中,选择公网访问 > 弹性公网IP
在弹性公网IP页面,选择其右侧操作列下的
图标 > 释放。
删除VPC及交换机。
登录专有网络。
在页面上方的菜单栏中,地域切换至华东2(上海)。
在专有网络页面,找到您创建的VPC,单击其右侧操作列下的删除。
在删除专有网络对话框中,勾选强制删除,单击确定。
删除阿里云AccessKey。
前往AccessKey管理。
在不建议使用云账号AccessKey对话框,阅读创建主账号AccessKey的风险,如果必须要创建主账号AccessKey,则勾选我确认知晓云账号AccessKey安全风险,然后单击继续使用云账号AccessKey。
在AccessKey页面,找到目标AccessKey,单击右侧操作列下的禁用。
在禁用对话框中,单击禁用。
在AccessKey页面,找到目标AccessKey,单击右侧操作列下的删除。
在删除对话框中,输入当前AccessKey的ID,单击删除。
删除DataV数据源。
登录DataV控制台。
在左侧导航栏中,选择数据准备 > 数据源。
在数据源页面,找到创建的数据源并删除。
删除相关资源后,单击结束实操。在结束实操对话框中,单击确定。
在完成实验后,如果需要继续使用资源,您可跳过释放相关资源的操作,直接单击结束实操。在结束实操对话框中,单击确定。请随时关注账户扣费情况,避免发生欠费。