DataWorks基于阿里云ODPS/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。作为阿里巴巴数据中台的建设者,DataWorks从2009年起不断沉淀阿里巴巴大数据建设方法论,同时与数万名政务/金融/零售/互联网/能源/制造等客户携手,助力产业数字化升级。
Hologres是阿里云自研一站式实时数仓,统一数据平台架构,支持海量结构化/半结构化数据的实时写入、实时更新、实时加工、实时分析,支持标准SQL(兼容PostgreSQL协议),无缝对接主流BI工具,支持OLAP查询、即席分析、在线服务、向量计算多个场景,分析性能打破TPC-H世界记录,与MaxCompute、Flink、DataWorks深度融合,提供离在线一体化全栈数仓解决方案。
一、方案概述
本方案基于阿里云实时数仓Hologres和DataWorks数据集成,通过简单的产品操作即可完成数据库RDS实时同步数据到Hologres,并通过Hologres强大的查询分析性能,完成一站式高性能的OLAP数据分析。
方案部署
1、创建专有网络VPC和交换机
为确保后续任务的网络连通,请务必保证Hologres与DataWorks资源组使用同⼀个VPC。
在创建专有网络页面,您可查看到创建的专有网络VPC和交换机的ID、实例名称等信息。
2、试用实时数仓Hologres。新用户可以有3个月免费试用期。
在实时数仓Hologres面板,根据如下参数说明进行配置,未提及的参数保持默认即可,单击立即试用。
大概需要5-10分钟,在实例列表页面,等待运行状态变为运行正常,即可正常使用。
3、开通DataWorks
创建工作空间列表。注意需要类似XXXX_123这种格式,即字母、数字、下划线都用到才可以。
在资源组列表页面,等待目标资源组的状态变为运行中,即可正常使用资源组。
4、创建公网NAT
首次使用NAT网关时,在创建公网NAT网关页面关联角色创建区域,单击创建关联角色。角色创建成功后即可创建NAT网关。
返回如下页面,表示您已创建成功,可以查看到创建的弹性公网IP、NAT网关等资源的资源ID。
5、创建Hologres表
在实例列表页面,但是实例ID。
在实例详情页面,单击登录实例,进入HoloWeb。
在顶部菜单栏中,单击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;
执行结束
6、实时同步数据至Hologres
在管理中心页面,在下拉框中选择默认⼯作空间,单击进入管理中心。
在左侧导航栏中,选择数据源 > 数据源列表。
创建MySQL数据源。
配置完成后,在连接配置区域,找到您创建的资源组,单击其右侧的测试连通性。
创建Hologres数据源。
创建实时同步任务。
在数据集成页面,在创建同步任务中,选择来源与去向数据源,单击开始创建。
来源:选择MySQL。去向:选择Hologres
在基本信息区域中,配置任务信息。 新任务名称:data_test。 同步类型:选择整库实时。
在网络与资源配置区域中,配置任务网络连通。
实时同步任务设置。在选择要同步的库表区域的源端库表中,勾选github_public_event表,然后右移。
在目标表映射区域,勾选github_public_event表,单击批量刷新映射。基于上述已创建的Hologres内部表,将目标Schema名改为hologres_dataset_github_event,目标表名改为hologres_github_event,单击完成配置。
在任务列表页面,单击启动。
在任务详情页面,您可查看到任务的执行情况,请耐心等待任务执行完成。
进度如下:
7、实时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;
查看同步的相关监控数据
8、清除资源
删除实时数仓Hologres。
删除实时同步任务、数据源、资源组和工作空间。
在数据集成页面,找到目标同步任务,单击其右侧操作列下的停止。
任务停止以后,选择其右侧操作列下的更多 > 删除。
在工作空间列表页面,找到目标工作空间,单击其右侧操作列下的管理。
在数据源页面,分别单击Hologre和MySQL数据源右侧操作列下的删除。
在DataWorks控制台左侧导航栏中,单击资源组列表,找到您创建的资源组
删除工作空间列表
删除公网NAT和弹性公网IP。
删除VPC及交换机。
三、体验总结
在本方案中,DataWorks作为阿里云提供的大数据开发治理平台,其产品在多个方面如任务开发便捷性、任务运行速度、产品使用门槛等,通常都能满足大部分企业的数据处理需求,特别是在与Hologres等阿里云自研产品结合使用时,能够发挥出更高的效能。以下是对这些方面的具体分析:
任务开发便捷性:
- DataWorks提供了丰富的数据开发组件和模板,简化了数据处理的流程。
- 支持拖拽式的界面操作,降低了数据开发的技术门槛。
- 集成了多种数据源和数据目标,方便数据的接入和输出。
因此,从任务开发便捷性的角度来看,DataWorks能够很好地满足企业的需求。
任务运行速度:
- DataWorks基于阿里云的大数据引擎(如ODPS、EMR等)构建,能够充分利用云端的计算资源。
- 支持分布式计算和并行处理,提高了数据处理的效率。
- 与Hologres等高性能数仓产品的结合,能够进一步提升数据查询和分析的速度。
所以,在任务运行速度方面,DataWorks同样表现出色。
产品使用门槛:
- DataWorks提供了详尽的文档和教程,帮助用户快速上手。
- 支持多种身份认证和权限管理方式,确保了数据的安全性和合规性。
- 提供了丰富的API和SDK,方便用户进行二次开发和集成。
在产品使用门槛方面,DataWorks也做得相当不错,既适合初学者快速入门,也适合高级用户进行复杂的数据处理。
其他功能:
- DataWorks还提供了数据质量管理、数据资产管理、数据安全审计等功能,满足了企业对数据治理的全方位需求。
- 支持实时数据监控和告警,确保数据处理的稳定性和可靠性。
针对数据处理场景,DataWorks可以改进或增加的功能点如下:
- 更智能的数据处理:引入更多的AI和机器学习算法,实现数据的智能清洗、转换和分析,提高数据处理的效率和准确性。
- 更丰富的数据源支持:除了现有的数据源外,还可以进一步扩展对新兴数据源(如物联网设备、社交媒体等)的支持。
- 更灵活的任务调度:提供更丰富的任务调度策略和触发机制,以满足不同场景下的数据处理需求。
- 更强大的数据可视化:虽然DataWorks可以与主流BI工具无缝对接,但自身也可以提供更强大的数据可视化功能,方便用户进行直观的数据分析和展示。
- 更高效的团队协作:优化团队协作功能,如版本控制、任务分配、进度跟踪等,以提高团队的工作效率和协作效果。