本文以GitHub公开事件数据为例,为您介绍使用Hologres+DataWorks数据集成构建实时数仓,并通过Hologres对接BI分析工具(本文以DataV为例)的基本步骤,实现海量数据的实时分析。
示例架构
其中:
待处理数据:
本实践使用GitHub公开事件作为示例数据,更多关于数据集的介绍请参见业务与数据认知。
数据库:
本实践使用RDS MySQL数据库,通过DataWorks数据集成功能将数据库中数据同步至Hologres,您也可以选择其他数据库,DataWorks支持的数据源请参见支持的数据源及同步方案。
数据服务:
Hologres是兼容PostgreSQL协议的实时数仓引擎,支持海量数据实时写入与更新、实时数据写入即可查。
实时大屏:
本实践以DataV为例,为您展示搭建实时大屏后查看并分析数据的效果。
实践步骤
准备工作
本实践使用已存储在公共MySQL中的Github公共事件作为示例数据,因此您无需操作Github公共事件数据集成至数据库步骤,使用DataWorks数据集成功能将数据库中的示例数据同步至Hologres中进行分析。本实践需准备的环境如下所示。
准备Hologres环境
您需开通Hologres,创建并连接Hologres数据库,后续在Hologres数据库中执行命令读取数据。
您也可以申请Hologres的免费资源包,免费试用体验本教程的核心步骤。Hologres提供的免费资源包介绍及申请引导请参见新用户免费试用。
准备RDS MySQL环境
本实践已为您准备好MySQL公共环境,您可以直接使用MySQL公共环境验证本实践。如果您需要同步您的数据,需开通RDS MySQL数据库,详情请参见快速创建RDS MySQL实例。
准备DataWorks环境
您需要开通DataWorks并创建工作空间,详情请参见开通DataWorks服务和创建工作空间;同时购买DataWorks独享数据集成资源组,绑定至您创建的DataWorks工作空间并为独享数据集成资源组绑定专有网络(VPC),详情请参见新增和使用独享数据集成资源组。
您也可以进入DataWorks免费试用页面,申请DataWorks独享数据集成资源组免费试用。
(可选)准备大屏搭建产品:本文以DataV为例
本文以DataV为例,为您示例搭建大屏后的效果。
创建Hologres内部表
您需要在Hologres中先创建一个Hologres内部表并创建相应的索引,用于后续数据实时写入,示例代码如下。
-- 新建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;
通过DataWorks数据集成实时写入数据至Hologres
进入DataWorks数据集成首页,单击创建我的数据同步。
在新建同步任务页面,根据下表配置任务名称和同步类型,未提及的参数保持默认。
参数
说明
新任务名称
自定义。
选择数据源
来源端:选择MySQL。
目的端:选择Hologres。
在网络与资源配置区域配置数据来源。
单击数据来源右侧的新建数据源。
在新增MySQL数据源对话框中配置如下参数,未提及的参数保持默认。并单击完成。
参数
说明
数据源类型
选择连接串模式。
数据源名称
自定义。
JDBC URL
jdbc:mysql://rm-bp1z69dodhh85z9qa.mysql.rds.aliyuncs.com:3306/github_events_share
用户名
workshop
密码
workshop#2017
此密码仅为本教程示例,请勿在实际业务中使用。
认证选项
无认证。
在网络与资源配置区域配置同步资源组。
选择DataWorks免费独享数据集成资源组。
重要为保持公共数据源连接稳定,独享数据集成资源组与公共MySQL数据源创建连接后7天将进行释放,不影响独享数据集成资源组与您自己的MySQL创建的连接。
在网络与资源配置区域配置数据去向。
单击数据去向右侧的新建数据源。
在新增Hologres数据源对话框中配置如下参数,未提及的参数保持默认。并单击完成。
参数
说明
数据源类型
阿里云实例模式。
数据源名称
自定义。
实例ID
进入实例列表页面单击目标实例,在实例详情页面,获取实例ID。
数据库名
填写上述已创建的Hologres数据库名称。
AccessKey ID
进入AccessKey管理页面获取AccessKey ID。
AccessKey Secret
进入AccessKey管理页面获取AccessKey Secret。
认证选项
无认证。
单击网络与资源配置区域的测试所有连通性,保障网络连通。
实时同步任务设置。
测试连通性成功后,选择对应MySQL中的github表,勾选表并批量刷新映射。
基于上述已创建的Hologres内部表,将目标Schema名改为hologres_dataset_github_event,目标表名改为hologres_github_event,单击完成配置。
在任务列表页面,单击对应任务操作列的启动。
公共数据源MySQL中保留近7天数据,离线数据将会通过全量进行同步,实时数据将在全量初始化完成后,实时写入Hologres。
待数据同步成功后,前往Hologres进行实时数据分析。
查询实时数据
在Hologres中运行如下示例命令查询今日最活跃项目:
SELECT
repo_name,
COUNT(*) AS events
FROM
hologres_dataset_github_event.hologres_github_event
WHERE
created_at >= CURRENT_DATE
GROUP BY
repo_name
ORDER BY
events DESC
LIMIT 5;
返回结果示例如下:
repo_name events
--------------------------------------+---------
Hardwaregore/gimmie-commits 59672
happyfish2024/mins 12626
bullet-dev-team/demo-app-env-list 9002
bullet-dev-team/python-pyramid-public 8255
SSlam1234/StatSlamImagesCDN 6618
(可选)通过DataV搭建实时大屏
您可以通过DataV的数据大屏模板,基于Hologres数据源来快速搭建GitHub事件数据实时大屏。
创建Hologres数据源。
将数据所在的Hologres实例和数据库创建为DataV的数据源,详情请参见DataV。
创建可视化应用。
登录DataV控制台。
在工作台页面,单击创建PC端看板。
选择使用Hologres实时分析GitHub事件数据模板。
修改模板中相关组件的数据源。
以左上角的今日公开事件总数为例:
单击今日公开事件总数对应的数字框,点击右侧数据源,选择数据源类型为实时数仓Hologres。
选择已有数据源为您已创建的数据源。
如果您在Hologres中的表名和Schema与本实践相同,则不需修改SQL。
修改完成后,数据响应结果刷新,大屏中成功展示实时数据。
按照示例更新大屏中的数据源和表名,需更新组件及更新后效果如下图所示。
单击右上角发布,完成大屏搭建。
您也可以单击预览,预览实时更新的数据大屏。
- 本页导读 (1)