Github实时数据分析与可视化

本文涉及的产品
大数据开发治理平台DataWorks,Serverless资源组抵扣包300CU*H
简介: 基于Github Archive公开数据集,将项目、行为等20+种事件类型数据实时采集至Hologres进行分析,并搭建可视化大屏。

Github实时数据分析与可视化


1. 实验资源方式简介及开始实验

云起实验室实验资源方式介绍

云起实验室支持领取免费试用额度、个人账户资源两种实验资源方式。

领取免费试用额度

使用个人账号开通试用,平台仅提供手册参考。

所有实验操作将保留至您的账号,请谨慎操作。

在实验页面下方卡片会展示本实验支持的试用规格,可以选择你要试用的云产品资源进行开通。您在实验过程中,可以随时用右下角icon唤起试用卡片。阿里云支持试用的产品列表、权益及具体规则说明请参考开发者试用中心

说明:试用云产品开通在您的个人账号下,并占用您的试用权益。如试用超出免费试用额度,可能会产生一定费用。

个人账户资源

使用您个人的云资源进行操作,资源归属于个人。

所有实验操作将保留至您的账号,请谨慎操作。

平台仅提供手册参考,不会对资源做任何操作。

说明:使用个人账户资源,在创建资源时,可能会产生一定的费用,请您及时关注相关云产品资源的计费概述。

准备开始实验

在实验开始前,请您选择其中一种实验资源,单击确认开启实验


2. 领取免费试用资源

实验前必看!

如果您的阿里云账号只能领取部分免费试用产品,请您领取符合免费试用资格的产品,然后进入实验,不满足免费试用资格的产品将会使用个人账户资源进行创建,并会产生一定的费用,请您及时关注账户扣费。

为了避免资源浪费并造成账号扣费的情况,请严格按照本文提供的参数进行配置。在实验完成之后,请您及时删除或禁用压测任务。

在实验开始前,请您选择开通免费试用

准备新阿里云账号阿里云

说明:如果您已有阿里云账号,实名认证完成,并且已创建访问秘钥AccessKey,您可跳过此步骤。

2.1 进入阿里云官网,单击免费注册,创建阿里云账号。

2.2 对阿里云账号进行实名认证。

2.3 创建访问密钥AccessKey。

2.4 成功创建AccessKey后,返回AccessKey页面。您可以查看当前账号的AccessKey状态。详情请参见准备阿里云账号

创建专有网络VPC和交换机

3.1 登录专有网络管理控制台

3.2 在顶部菜单栏,选择华东2(上海)地域。

3.3 在左侧导航栏,单击专有网络

3.4 在专有网络页面,单击创建专有网络

3.5 在创建专有网络页面,配置1个专有网络(VPC)和1台交换机,交换机的可用区选择上海可用区E,然后单击确定。详情请参见创建专有网络和交换机

单击已创建的VPC实例ID,在资源管理页签添加安全组。详情请参见创建安全组

开通实时数仓Hologres免费试用。

4.1 在实验室页面下方,选择实时数仓Hologres,单击立即试用

4.2 在实时数仓Hologres面板,完成参数信息配置。本试用教程以表格中的参数信息为例,未提及参数保持默认值,勾选服务协议后,单击立即试用,并根据页面提示完成试用申请。

参数

示例值

地域

华东2(上海)

实例类型

通用型

计算资源

8核32GB(计算节点数量:1)

专有网络

选择已创建的VPC。

专有网络交换机

选择已创建的交换机。

实例名称

hologres_test

资源组

默认资源组

4.3 试用申请成功通过后,系统将会为您自动创建Hologres实例。前往实时数仓Hologres控制台,在实例列表页面,等待运行状态变为运行正常,即可正常使用。

开通云原生大数据计算服务MaxCompute免费试用。

5.1 在实验室页面下方,选择云原生大数据计算服务MaxCompute,单击立即试用

5.2 在云原生大数据计算服务MaxCompute面板,配置开通地域华东2(上海),其他参数保持默认,勾选服务协议,单击立即试用,并根据页面提示完成试用申请。

开通DataWorks免费试用。

6.1 在实验室页面下方,选择大数据开发治理平台,单击立即试用

6.2 在大数据开发治理平台DataWorks面板,地域可用区选择华东2(上海),勾选服务协议,单击立即试用,开通DataWorks按量付费。

6.3 在实验室页面下方,选择大数据开发治理平台,单击立即试用

6.4 在DataWorks独享数据集成资源组面板,设置资源名称资源备注资源组选择默认资源组,勾选服务协议,单击立即试用,申请DataWorks独享数据集成资源组免费试用。

开通DataV免费试用。

7.1 在实验室页面下方,选择数据可视化DataV,单击立即试用

7.2 在据可视化DataV面板,勾选服务协议,单击立即试用

领取完免费试用后,返回资源领取界面,单击我已开通,进入实验

说明:如果您的阿里云账号只能领取部分免费试用产品,请您领取符合免费试用资格的产品,然后进入实验,不满足免费试用资格的产品将会使用个人账户资源进行创建,并会产生一定的费用,请您及时关注账户扣费。


3. 创建资源

说明:

如果您选择的免费试用,并且在上一小节只能领取部分免费试用产品,不满足免费试用资格的产品请您根据如下步骤使用个人账户资源进行创建,并会产生一定的费用,请您及时关注账户扣费。

如果您选择的个人资源,请您根据如下操作,创建实验所需资源,并会产生一定的费用,请您及时关注账户扣费。

准备新阿里云账号

如果您已有阿里云账号,实名认证完成,并且已创建访问秘钥AccessKey,您可跳过此步骤。

进入阿里云官网,单击免费注册,创建阿里云账号。

对阿里云账号进行实名认证。

创建访问密钥AccessKey。

成功创建AccessKey后,返回AccessKey页面。您可以查看当前账号的AccessKey状态。详情请参见准备阿里云账号

创建专有网络VPC和交换机

登录专有网络管理控制台

在顶部菜单栏,选择华东2(上海)地域。

在左侧导航栏,单击专有网络

在专有网络页面,单击创建专有网络

创建专有网络页面,配置1个专有网络(VPC)和1台交换机,交换机的可用区选择上海可用区E,然后单击确定。详情请参见创建专有网络和交换机

单击已创建的VPC实例ID,在资源管理页签添加安全组。详情请参见创建安全组


创建实时数仓Hologres

说明:

如果您选择的免费试用,并且在上一步骤中领取了实时数仓Hologres免费试用,请您跳过本步骤,直接进行下一小节操作。

如果您选择的免费试用,但是您的阿里云主账号没有资格领取实时数仓Hologres的免费试用,请您根据如下操作,开通实时数仓Hologres,会产生一定的费用,具体计费详情,请参见计费概述

如果您选择的个人资源,请您根据如下操作,开通实时数仓Hologres,会产生一定的费用,具体计费详情,请参见计费概述。如果您已开通实时数仓Hologres,请您跳过本步骤,直接进行下一小节操作。

登录Hologres控制台,在实例列表页面,单击新增引擎实例

在实时数仓Hologres购买页面,完成参数信息配置。本试用教程以表格中的参数信息为例,未提及参数保持默认值,勾选服务协议后,单击立即购买

参数

示例值

地域

华东2(上海)

实例类型

通用型

计算资源

8核32GB(计算节点数量:1)

专有网络

选择已创建的VPC。

专有网络交换机

选择已创建的交换机。

实例名称

hologres_test

资源组

默认资源组

在购买完成页面,单击前往控制台

实例列表页面,等待运行状态变为运行正常,即可正常使用。

开通MaxCompute

如果您选择的免费试用,并且在上一步骤中领取了云原生大数据计算服务MaxCompute免费试用,请您跳过本步骤,直接进行下一小节操作。

如果您选择的免费试用,但是您的阿里云主账号没有资格领取云原生大数据计算服务MaxCompute的免费试用,请您根据如下操作,开通云原生大数据计算服务MaxCompute,会产生一定的费用,具体计费详情,请参见计费概述

如果您选择的个人资源,请您根据如下操作,开通云原生大数据计算服务MaxCompute,会产生一定的费用,具体计费详情,请参见计费概述。如果您已开通云原生大数据计算服务MaxCompute,请您跳过本步骤,直接进行下一小节操作。

全新的、此前未开通过MaxCompute的阿里云账号,可登录并前往阿里云MaxCompute产品首页,单击立即开通,根据界面提示配置地域信息为华东2(上海),开通并购买按量付费标准版的MaxCompute。

说明:首次开通MaxCompute时,默认开通的是按量付费标准版的MaxCompute,按量付费计费模式的版本,不使用时不收取费用,开通后如果使用,会根据使用量收取费用,各类计费项的计费详情请参见计算费用(按量计费)存储费用数据传输费用(公网下载)

创建DataWorks独享数据集成资源组

如果您选择的免费试用,并且在上一步骤中领取了大数据开发治理平台 DataWorks免费试用,请您跳过本步骤,直接进行下一小节操作。

如果您选择的免费试用,但是您的阿里云主账号没有资格领取大数据开发治理平台 DataWorks的免费试用,请您根据如下操作,开通大数据开发治理平台 DataWorks,会产生一定的费用,具体计费详情,请参见产品计费

如果您选择的个人资源,请您根据如下操作,开通大数据开发治理平台 DataWorks,会产生一定的费用,具体计费详情,请参见产品计费。如果您已开通大数据开发治理平台 DataWorks,请您跳过本步骤,直接进行下一小节操作。

进入DataWorks产品首页,单击立即开通

在购买页面,地域可用区选择华东2(上海),版本选择基础版独享资源选择独享数据集成资源,根据实际情况选择资源数量计费周期,设置资源名称资源备注,勾选服务协议,单击立即购买

登录DataWorks控制台

工作空间列表概览页,单击创建工作空间

配置工作空间基本信息。

参数说明如下:

参数

示例值

描述

工作空间名称

test

当前工作空间的唯一标识,创建后无法修改。

显示名

test

建议基于业务属性命名,便于标识工作空间用途。

生产、开发环境隔离

定义工作空间模式。

需隔离生产、开发环境,则创建的为标准模式的工作空间。

无需隔离生产、开发环境,则创建的为简单模式的工作空间。

您可参考必读:简单模式和标准模式的区别并结合业务需求确认,需创建哪种类型的工作空间。

空间管理员

默认阿里云主账号

定义该工作空间的管理员。

默认当前登录账号为该工作空间的管理员。您也可自行添加工作空间中的其他成员为管理员,协同管理该工作空间。空间管理员可为工作空间添加空间成员,详情请参见添加工作空间成员

资源组

默认资源组

选择阿里云资源管理中创建的资源组,默认选择默认资源组

若您的公司购买了多种阿里云资源,则可通过资源管理创建资源组进行云资源分组,并为资源组设置管理员,通过分组独立管理资源组内的所有资源。

调度PAI算法任务

hologres_test开启

如需进行周期性调度算法任务,则可启用该功能。详情请参见机器学习

描述

test

用于辅助标识工作空间的主要用途、相关信息。

单击提交,工作空间创建完成。

在左侧导航栏,单击资源组列表

独享资源组页签,找到您创建的独享数据集成资源组,单击右侧操作列下的修改归属工作空间

修改归属工作空间对话框中,在您创建的工作空间右侧,单击绑定

创建DataV免费试用

如果您选择的免费试用,并且在上一步骤中领取了DataV数据可视化免费试用,请您跳过本步骤,直接进行下一小节操作。

如果您选择的免费试用,但是您的阿里云主账号没有资格领取DataV数据可视化的免费试用,请您根据如下操作,开通DataV数据可视化,会产生一定的费用,具体计费详情,请参见计费方式

如果您选择的个人资源,请您根据如下操作,开通DataV数据可视化,会产生一定的费用,具体计费详情,请参见计费方式。如果您已开通DataV数据可视化,请您跳过本步骤,直接进行下一小节操作。

登录DataV控制台

阅读相关协议,并选中同意使用协议,单击立即开通

说明:如果已经开通服务,可直接在控制台上进行操作。

在服务开通页面,单击购买

在购买页面,选择产品版本购买时长

产品版本包括了企业版专业版尊享版,各版本的功能有所差异。可单击各版本页签查看版本功能,根据具体需求,选择合适的版本进行购买。

说明:企业版和专业版支持按年或按月购买,尊享版只支持按年购买。

单击立即购买


4. 导入实时数据

在Hologres中创建内部表用于后续写入数据。

初始化Hologres环境。

进入Hologres控制台-实例列表页面,单击目标实例名称,进入实例详情页面。

实例详情页面单击登录实例,进入HoloWeb。

元数据管理页面中单击数据库。

新建数据库对话框中配置如下参数,并单击确认

参数

说明

实例名

选择在哪个Hologres实例上创建数据库。默认展示当前已登录实例的名称,您也可以在下拉框中选择其他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编辑器页面,单击左上角的图标,打开临时Query查询页面。

新建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;


5. 实时同步数据至Hologres

数据库创建成功后,您需在数据库中创建对应的表。

网络打通。

需要将DataWorks独享数据集成资源组与创建的VPC进行绑定,保障网络连通性,才可进行数据同步。

前往授权页面,授予DataWorks进行云资源访问权限。

进入DataWorks资源组列表页面,单击目标独享数据集成资源组操作列的网络设置

专有网络绑定页签下,单击新增绑定,在弹出的新增专有网络绑定面板中,填写专有网络信息,并单击确定

参数

说明

资源组名称

默认为目标独享数据集成资源组的名称。

专有网络

选择上述已创建的VPC专有网络。

可用区

选择VPC专有网络所在的可用区。

交换机

选择上述已创建的交换机。

安全组

选择上述已创建的安全组。

独享资源组页签,找到您创建的独享数据集成资源组,单击右侧操作列下的修改归属工作空间

说明:如果您选择的免费试用,您需要在此步骤将独享数据集成资源组绑定到默认的工作空间。

修改归属工作空间对话框中,在您的工作空间右侧,单击绑定

创建实时同步任务。

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

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

参数

说明

新任务名称

自定义。本文以data_test为例。

选择数据源

来源端:选择MySQL。

目的端:选择Hologres。

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

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

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

参数

说明

数据源类型

选择连接串模式。

数据源名称

自定义。本文以mysqlData为例。

JDBC URL

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

用户名

workshop

密码

workshop#2017

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

认证选项

无认证。

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

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

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

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

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

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

参数

说明

数据源类型

阿里云实例模式。

数据源名称

自定义。本文以hologresData为例。

实例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进行实时数据分析。


6. 实时数据分析与可视化

实时数据分析

进入HoloWeb SQL编辑器,查询实时更新的过去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大屏,SQL样例可以查看附录。

实时数据可视化。

基于DataV自带模板,快速完成数据可视化大屏搭建。

前往DataV控制台,在左侧导航栏中选择数据准备 > 数据源

数据源页面,单击新建数据源

在弹出的添加数据源面板中,根据下表参数信息新增Hologres数据源,并单击确定

参数

说明

类型

实时数仓 Hologres

网络

内网

华东2

VPC ID

Hologres管控台-实例列表中单击目标实例名称,在实例详情页面的网络信息区域获取VPC ID。

VPC 实例 ID

Hologres管控台-实例列表中单击目标实例名称,在实例详情页面的网络信息区域获取VPC实例 ID。

名称

自定义命名。

域名

Hologres管控台-实例列表中单击目标实例名称,在实例详情页面的网络信息区域获取域名。

用户名

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

密码

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

端口

Hologres管控台-实例列表中单击目标实例名称,在实例详情页面的网络信息区域,获取指定VPC的域名列对应的端口。例如:80。

数据库

选择上述已创建的Hologres数据库名称。

前往DataV控制台,单击未分组页面的创建PC端看板,选择使用Hologres实时分析GitHub事件数据模板创建看板。

创建看板对话框输入看板名称后,单击创建看板

在已创建的看板页面中,单击数字,并在右侧数据源页签中,选择已添加的Hologres数据源。共计需要选择15处。

所有数字涉及的数据源都选择完成后,单击看板右上角的预览,即可获取实时更新的数据大屏预览链接(正式发布需要升级DataV高级版本)。最终效果如下:


7. (可选)历史离线数据分析

实时数仓Hologres与大数据计算服务MaxCompute深度融合,可以组成一体化的大数据查询与分析架构。在MaxCompute公共数据集中,存储了历史GitHub全量数据。如果想要做更长时间的数据分析,有两种方式:

使用外部表查询,在不导入数据的情况下,使用Hologres直接查询MaxCompute数据。

使用内部表查询,将历史数据通过0 ETL的形式快速导入Hologres,获得更快的查询速度。

注意:Github每日数据量约为300MB,Hologres免费试用存储额度为20GB,如果导入过多存量历史数据,将会收产生额外费用,外部表查询不受影响。

外部表查询MaxCompute数据。

创建MaxCompute外部表。

DROP FOREIGN TABLE IF EXISTS dwd_github_events_odps;
IMPORT FOREIGN SCHEMA "maxcompute_public_data#github_events" LIMIT to
(
    dwd_github_events_odps
) 
FROM SERVER odps_server INTO public OPTIONS(if_table_exist 'error',if_unsupported_type 'error');

通过外部表直接查询MaxCompute数据。例如查询昨日起最活跃项目:

SELECT
    repo_name,
    COUNT(*) AS events
FROM
    dwd_github_events_odps
WHERE
    ds >= (CURRENT_DATE - interval '1 day')::text
GROUP BY
    repo_name
ORDER BY
    events DESC
LIMIT 5;

0 ETL导入MaxCompute数据。

创建Hologres内部表。

DROP TABLE IF EXISTS gh_event_data;
BEGIN;
CREATE TABLE gh_event_data (
    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('public.gh_event_data', 'distribution_key', 'id');
CALL set_table_property('public.gh_event_data', 'event_time_column', 'created_at');
CALL set_table_property('public.gh_event_data', 'clustering_key', 'created_at');
COMMIT;

通过外部表导入数据至内部表。

INSERT INTO gh_event_data
SELECT
    *
FROM
    dwd_github_events_odps
WHERE
    ds >= (CURRENT_DATE - interval '1 day')::text;
-- 更新表的统计信息
ANALYZE gh_event_data;

通过内部表查询昨日起最活跃项目。

SELECT
    repo_name,
    COUNT(*) AS events
FROM
    gh_event_data
WHERE
    ds >= (CURRENT_DATE - interval '1 day')::text
GROUP BY
    repo_name
ORDER BY
    events DESC
LIMIT 5;


8. 附录

实验中包含数据大屏涉及到的所有SQL如下,需要将下面的分别换成实际的表名。

今日开发者和项目总数。

SELECT
    uniq (actor_id) actor_num,
    uniq (repo_id) repo_num
FROM
    <table_name>
WHERE
    created_at > date_trunc('day', now());

过去24小时最活跃项目。

SELECT
    repo_name,
    COUNT(*) AS events
FROM
    <table_name>
WHERE
    created_at >= now() - interval '1 day'
GROUP BY
    repo_name
ORDER BY
    events DESC
LIMIT 5;

过去24小时最活跃开发者。

SELECT
    actor_login,
    COUNT(*) AS events
FROM
    <table_name>
WHERE
    created_at >= now() - interval '1 day'
    and actor_login not like '%[bot]'
GROUP BY
    actor_login
ORDER BY
    events DESC
LIMIT 5;

今日公开事件总数。

select count(*) from <table_name> where created_at >= date_trunc('day', now());

过去24小时星标项目排行。

SELECT
    repo_id,
    repo_name,
    COUNT(actor_login) total
FROM
    <table_name>
WHERE
    type = 'WatchEvent'
    AND created_at > now() - interval '1 day'
GROUP BY
    repo_id,
    repo_name
ORDER BY
    total DESC
LIMIT 10;
WITH agg_language AS (
    SELECT
        CASE
        LANGUAGE
        WHEN 'TypeScript' THEN
            'TypeScript'
        WHEN 'JavaScript' THEN
            'JavaScript'
        WHEN 'Python' THEN
            'Python'
        WHEN 'Go' THEN
            'Go'
        WHEN 'Java' THEN
            'Java'
        WHEN 'HTML' THEN
            'HTML'
        WHEN 'C++' THEN
            'C++'
        WHEN 'C#' THEN
            'C#'
        WHEN 'PHP' THEN
            'PHP'
        WHEN 'Ruby' THEN
            'Ruby'
        ELSE
            'Others'
        END AS
        LANGUAGE,
        count(*) total
    FROM
        <table_name>
    WHERE
        created_at > now() - interval '1 hour'
        AND
        LANGUAGE IS
        NOT NULL
    GROUP BY
        LANGUAGE
    ORDER BY
        total DESC
)
SELECT
    LANGUAGE,
    sum(total) AS sum
FROM
    agg_language
GROUP BY
    LANGUAGE
ORDER BY
    sum DESC;

实时事件展示。

SELECT
    cast(created_at as text),
    actor_login,
    type,
    repo_name
FROM
    <table_name>
ORDER BY
    created_at DESC
LIMIT 5;


9. 完成

完成以上操作后,您已经成功完成了Hologres数据查询操作。查询命令执行成功后,在临时Query查询页面下弹出结果页签,显示如下查询数据结果。

查询实时更新的过去24小时GitHub最活跃项目结果示例:

通过外部表直接查询MaxCompute数据(查询昨日起最活跃项目)结果示例:

通过内部表查询昨日起最活跃项目。


10. 清理及后续

清理

在体验完成本教程后,如果后续您不再使用的话,请及时释放相关资源。

欢迎加入实时数仓Hologres交流群(钉钉群号:32314975)交流。

释放Hologres实例

登录Hologres管理控制台,在实例列表页面释放目标Hologres实例,详情请参见删除实例

释放交换机

登录专有网络管理控制台,在交换机页面,找到目标交换机,然后在操作列单击删除,按照界面提示释放实例。

释放专有网络VPC

登录专有网络管理控制台,在专有网络页面,找到目标VPC,然后在操作列单击删除,按照界面提示释放实例。

删除DataWorks中删除同步任务和数据源

登录DataWorks管理控制台-同步任务页面,找到目标任务,在操作列单击更多 > 删除,按照界面提示删除同步任务。

登录DataWorks管理控制台-数据源页面,找到目标数据源,在操作列单击图标,按照界面提示删除数据源。

删除DataV数据源

登录DataV管理控制台,在数据源页面,找到目标数据源并删除。

实验链接:https://developer.aliyun.com/adc/scenario/b8433375a84a48c19865d7e313a6740e

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
一站式大数据开发治理平台DataWorks初级课程
DataWorks 从 2009 年开始,十ー年里一直支持阿里巴巴集团内部数据中台的建设,2019 年双 11 稳定支撑每日千万级的任务调度。每天阿里巴巴内部有数万名数据和算法工程师正在使用DataWorks,承了阿里巴巴 99%的据业务构建。本课程主要介绍了阿里巴巴大数据技术发展历程与 DataWorks 几大模块的基本能力。 课程目标 &nbsp;通过讲师的详细讲解与实际演示,学员可以一边学习一边进行实际操作,可以深入了解DataWorks各大模块的使用方式和具体功能,让学员对DataWorks数据集成、开发、分析、运维、安全、治理等方面有深刻的了解,加深对阿里云大数据产品体系的理解与认识。 适合人群 &nbsp;企业数据仓库开发人员 &nbsp;大数据平台开发人员 &nbsp;数据分析师 &nbsp;大数据运维人员 &nbsp;对于大数据平台、数据中台产品感兴趣的开发者
相关文章
|
1月前
|
数据采集 数据可视化 数据挖掘
基于Python的数据分析与可视化实战
本文将引导读者通过Python进行数据分析和可视化,从基础的数据操作到高级的数据可视化技巧。我们将使用Pandas库处理数据,并利用Matplotlib和Seaborn库创建直观的图表。文章不仅提供代码示例,还将解释每个步骤的重要性和目的,帮助读者理解背后的逻辑。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供有价值的见解和技能。
109 0
|
12天前
|
数据采集 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第33天】本文将介绍如何使用Python编程语言进行数据分析和可视化。我们将从数据清洗开始,然后进行数据探索性分析,最后使用matplotlib和seaborn库进行数据可视化。通过阅读本文,你将学会如何运用Python进行数据处理和可视化展示。
|
1月前
|
数据采集 数据可视化 数据挖掘
使用Python进行数据处理与可视化——以气温数据分析为例
【10月更文挑战第12天】使用Python进行数据处理与可视化——以气温数据分析为例
190 0
|
1月前
|
数据采集 数据可视化 数据挖掘
Python 数据分析实战:使用 Pandas 进行数据清洗与可视化
【10月更文挑战第3天】Python 数据分析实战:使用 Pandas 进行数据清洗与可视化
91 0
|
1月前
|
机器学习/深度学习 数据采集 数据可视化
如何理解数据分析及数据的预处理,分析建模,可视化
如何理解数据分析及数据的预处理,分析建模,可视化
49 0
|
2月前
|
机器学习/深度学习 存储 数据可视化
数据分析和可视化
数据分析和可视化
|
2月前
|
数据采集 传感器 数据可视化
利用Python进行数据分析与可视化
【9月更文挑战第11天】在数字化时代,数据已成为企业决策和科学研究的关键。本文将引导读者了解如何使用Python这一强大的工具进行数据分析和可视化,帮助初学者理解数据处理的流程,并掌握基本的可视化技术。通过实际案例,我们将展示如何从原始数据中提取信息,进行清洗、处理,最终以图形方式展现结果,使复杂的数据变得直观易懂。
|
3月前
|
存储 编解码 数据可视化
Visium HD空间数据分析、可视化以及整合 (2)
Visium HD空间数据分析、可视化以及整合 (2)
82 3
Visium HD空间数据分析、可视化以及整合 (2)
|
3月前
|
数据可视化 数据挖掘 Python
"揭秘Visium HD黑科技:空间数据分析大揭秘,可视化与整合的艺术之旅!"
【8月更文挑战第20天】近年来,空间转录组技术,特别是Visium HD技术,因其高分辨率与高通量特性,在单细胞生物学领域受到广泛关注。本文通过Python演示了Visium HD数据的全流程分析:从数据准备(读取表达矩阵和空间坐标)、空间数据分析(计算基因表达统计量)、数据可视化(绘制基因表达热图和空间点分布图),到多样本数据整合,为读者提供了实用的分析指南,助力深入探索空间转录组学的奥秘。
84 4
|
3月前
|
数据采集 数据可视化 算法
GitHub星标68K!Python数据分析入门手册带你从数据获取到可视化
Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python 无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用 Python 便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。