文档

RDS实时同步至Hologres

更新时间:

本文以GitHub公开事件数据为例,为您介绍使用Hologres+DataWorks数据集成构建实时数仓,并通过Hologres对接BI分析工具(本文以DataV为例)的基本步骤,实现海量数据的实时分析。

示例架构

image.png

其中:

  • 待处理数据:

    本实践使用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

  1. 进入DataWorks数据集成首页,单击创建我的数据同步

  2. 新建同步任务页面,根据下表配置任务名称和同步类型,未提及的参数保持默认。

    参数

    说明

    新任务名称

    自定义。

    选择数据源

    • 来源端:选择MySQL。

    • 目的端:选择Hologres。

  3. 网络与资源配置区域配置数据来源

    1. 单击数据来源右侧的新建数据源

    2. 新增MySQL数据源对话框中配置如下参数,未提及的参数保持默认。并单击完成

      参数

      说明

      数据源类型

      选择连接串模式。

      数据源名称

      自定义。

      JDBC URL

      jdbc:mysql://rm-bp1z69dodhh85z9qa.mysql.rds.aliyuncs.com:3306/github_events_share

      用户名

      workshop

      密码

      workshop#2017

      此密码仅为本教程示例,请勿在实际业务中使用。

      认证选项

      无认证。

    3. 网络与资源配置区域配置同步资源组

      选择DataWorks免费独享数据集成资源组。

      重要

      为保持公共数据源连接稳定,独享数据集成资源组与公共MySQL数据源创建连接后7天将进行释放,不影响独享数据集成资源组与您自己的MySQL创建的连接。

    4. 网络与资源配置区域配置数据去向

      1. 单击数据去向右侧的新建数据源

      2. 新增Hologres数据源对话框中配置如下参数,未提及的参数保持默认。并单击完成

        参数

        说明

        数据源类型

        阿里云实例模式。

        数据源名称

        自定义。

        实例ID

        进入实例列表页面单击目标实例,在实例详情页面,获取实例ID

        数据库名

        填写上述已创建的Hologres数据库名称。

        AccessKey ID

        进入AccessKey管理页面获取AccessKey ID。

        AccessKey Secret

        进入AccessKey管理页面获取AccessKey Secret。

        认证选项

        无认证。

    5. 单击网络与资源配置区域的测试所有连通性,保障网络连通。

    6. 实时同步任务设置。

      1. 测试连通性成功后,选择对应MySQL中的github表,勾选表并批量刷新映射。

        image.png

      2. 基于上述已创建的Hologres内部表,将目标Schema名改为hologres_dataset_github_event,目标表名改为hologres_github_event,单击完成配置image.png

      3. 任务列表页面,单击对应任务操作列的启动

        公共数据源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事件数据实时大屏。

  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. 单击右上角发布,完成大屏搭建。

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

  • 本页导读 (1)
文档反馈