课时1:Github实时数据分析与可视化(二)

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 课时1:Github实时数据分析与可视化

Github实时数据分析与可视化训练营:课时1:Github实时数据分析与可视化

课程地址:https://developer.aliyun.com/trainingcamp/12458c0a699747a6a1c239ef6818954b


六、(可选)历史离线数据分析

接下来是一个可选项,刚才做的都是实时的分析。但是Hologress其实跟阿里云的MaxCompute产品是有比较深度的融合的。我们可以做离线实时一体化的大数据查询分析和架构。以前可能离线实时都会用到好多产品,数据可能会也会搬来搬去。今天通过这套架构,会相对而言比较方便。这里提供了两种的分析形式。我们在MaxCompute中存放了GitHub历史的量数据,有近一两年的如果想做更长时间分析,那就需要把MaxCompute数据要么直接做外表查询,要么导入Hologress里面来所以我们这提供了两种方式。

第一种就是外表查询,不需要导入数据,直接用Hologress来查MaxCompute的数据。这样只会消耗后Holo计算相关的资源,其实并不会用到你存储的资源。

第二种的是使用内部表,就是把MaxCompute的数据导入到Hologress。这种导入也非常快,是相当于0ETL就能够把数据从MaxCompute导过来。这种方式的话它优势是查询速度更快一点但是这里就会有一个注意事项因为github每日的数据量是300兆,然后大家领取的Hologress免费额度是二十几。如果你导入过多的存量历史数据,就会如果超过20G那就会产生额外的费用。这个具体费用大家可以看一下,文档都是按量付费的。如果做外表查询的话,其实不会受影响的。因为已经开通了Holo实例,只会按CU时来收费。

接下来简单介绍一下外表查询。建一个在Hologress建一个MaxCompute的外部表。

DROP FOREIGN TABLE IF EXISTS dwd_github_events_odps;

IMPORT FOREIGN SCHEMA"maxcomputepublicdata#github events" LIMIT to

(

dwd_github_events_odps

)

FROM SERVER odps_server INTO public OPTIONS(if_table_exist 'error",if_unsuppa

建完之后直接TSC口就能够查询。这里面我们不涉及任何的数据导入导出。

SELECT

repo_name .

COUNT(*) AS events

FROM

dwd githubevents odps

WHERE

ds >= (CURRENT_DATE - interval "1 day")::text

GROUP BY

repo_name

ORDER BY

events DESC

LIMIT 5;

第二种也是创建内部表。创建完通过SQL就能够非常快速的把MaxCompute的数据导过来而且导入的速度非常快。

INSERT INTO gh_event_data

SELECT

 *

FROM

dwd github events odps

WHERE

ds >= (CURRENT_DATE - interval '1 day")::text;

---更新表的统计信息

ANALYZE gh_event_data;

然后就可以直接运行SQL口,和上面都是一样的,但是这个速度会更快一点一会给大家演示一下。

SELECT

repo_mame.

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;

 

七、附录

附录里是大屏中分析所用到的SQL如果感兴趣想要自己去运行的话,可以把table 名称给替换一下。因为刚才在Hologress 创建的实时表和通过离线创建的这些表,表名称会不一样把table 名称改一下就可以。直接在Hologress的查询编辑器里面运行这些SQL就可以自己完成分析,然后也可以自己写SQL去做。

SELECT

cast(created_at as text).

actor_login

type,

repo_name

FROM


ORDER BY

created at DESC

LIMIT 5;

 

八、完成

这个是一些示,在holo里面插的一些示意效果,大家可以参考。

image.png


九、清理及后续

最后这比较重要的是如果你不需要用的话,可以在Hologress管控台把Hologress实例给停机或就释放掉。因为刚才说到Hologress是5000CU时,如果不停机的话,它会一直在运行。8code我们可以运行六百多个小时有时候可能做完实验没有是停止或者释放的话,那它一直在运行,然后运行到最后CU10消耗完了可能就会付费。所以如果大家做完实验不需要使用,你可以先给它暂停。暂停是不记CU10的消耗的,或者说你后续不用了也可以直接把它释放掉,这样避免会产生一些额外的付费,这个是注意事项。

 

十、示例演示

接下来把几个核心步骤给演示一下像第一步导入实时数据,其实就是在实例列表然后点进去之后进入holo gress,会自己会新建一个数据库,大家按照自己去建就行了。

image.png

image.png

建建表语句也是一样的可以看到刚才那个建好的表在这个编辑器运行之后,就会建好这个表相关的信息这一步比较简单

实时同步稍微讲一下,一个是绑定,让大家进列表资源组列表会可以看到购买的资源组信息。在这个网络设置里面,可以把自己VPC先绑定上,不然到时候创建同步任务的时候会报错。

 

image.png

开始真正创建同步任务的时候可以进入首页之后,创建同步任务,输入名称。然后数据源选择mysql 到progress,然后整库全增量。然后新建数据源把数据源信息填进去这里我已经新建好了,所以我直接选择就行了。资源组是刚才购买的资源组然后新建holo gress数据源也是一样的,按照教程把信息填进去。

image.png

已经建好了基本上我们这样就创建成功了一个连接,连接之后,它会做一个联通性测试。如果刚才没有绑这个VBC,这个测试就会失败。所以大家一定要把VBC绑定一下,设一下安全组。

image.png

然后把表勾选过来。

image.png

勾选过来后,批量刷新一下映射

image.png

这一步就是刚才说到很重要的需要把目标表名schema和目标表的修改一下修改成在holo gress中创建的schema名称和目标表的名称。如果忘了的话就可以直接去刚才导入实时数据的时候看一下,就把粘贴到schema的名称,然后把这个表粘贴到表名称就可以了。基本上这样就完成了配置,然后点击启动就

 

image.png

这个我之前已经创建好任务,可以给大家看一下。如果创建完成之后,提交运行,它大概运行5到10分钟,会把历史七天的数据全量迁移过来。

image.png

可以看到历史的全量七天的大概有一亿多条已经写入了然后实时数据是在做同步的,数据正在不断的写入到holo gress当中。这样基本上我们就可以把数据实时同步到hello gress。这一步我们也就完成了。

实时分析也比较简单。样例SQL可以看一下。比如如果数据同步成功了,运行一下压力,SQL马上就能够把数据结果给跑出来。

如果大家自己想要分析可以看一下这个表的原数据信息点一下这个表,这些字段名称,字段所代表的信息其实都可以看到。

数据预览大概看到前200条左右的信息,可以看一下大概都是什么样的数据和字段。比如个action是一些create,然后open的action信息,这样方便大家自己去写SQL来分析一下结果。

因为这个数据源是实时更新接下来我们会到dad v的控制台。然后大家可以看一下,在控制台首先是要添加数据源,这个数据源我已经添加好了

大家新建的时候,按照教程把holo gress相关的信息填进去就。然后我们会有一个模板,点创建PC,可以看到样例的模板。你可以直接用模板来创建。

创建完成之后基本上就是这样。这个是之前已经建好的一个信息,然后刷新一下。

image.png

这样开始模板内置的信息都是写死的那接下来操作就是把数据源更新一下。

image.png

刚刚打开它应该会显示的是一个静态数据。但是当你把它变成实时数仓的时候,它就会自动出默认的SQL。这个SQL也不需要填,但需要只需要把上面选上就可以了。选完之后保存不需要点击,你直接退出来就保存,把每一个数字去更新一下。这个数据源大概有15个地方,就需要自己去把数据源更新一下。只要更新完这些数据就能够实时显示和查出来。

然后你只要点一下预览,基本上实时的大屏就已经完成了。可以看到这些上面所有的数据都是在实时的更新和滚动的。到这里实时数据分析和可视化的步骤基本上就完成了。

忘了介绍一下因为这个data  v 也是试用版的。如果大家需要正式发布使用可以购去购买data V的正式版本。

接下来最后一步,离线的数据分析,刚才说了会有两种,一种是外部表查询,一种是内部表查询的形式。这个我可以给大家简单演示一下大家可以看到我们在这儿新建一张MaxCompute 的外部表。

外部表创建成功之后,可以直接运行来做查询。这里会需要稍微等一下,因为这个数据没有导入到Hologress,基本上是直接读取在MaxCompute中的数据那MaxCompute 的基本上都是离线数仓的数据。也可以把离线数仓和实时数仓来做离线实时一体化的分析。可以看到这样现在就跑出来这个结果了。

image.png

结果已经弹出来了刚才前后有一分钟不到的样子接下来可以看一下如果把这个表导入到内部大概需要多久。同样的是我们创建表之后,直接导入mysql 数据。这个导入非常快,我们做了优化。因为我们MaxCompute的holo gress是奔着一体化去的,所以优化完成之后,其实数据导入相对而言是比较快的。刚才少运行一行稍等一下。

image.png

导入数据之后,这时候我们再看一下同样一条SQL通过holo gress内部表的查询大概会有多快的速度。

可以看到几乎实时的就能够非常快的把数据查出来了。所以说两种方式的话就是各有优劣。可以看到就外部表我们数据没导入,不占holo gress的存储。购买holo gress的实例之后,只需要用实例的费用就可以了。内部表导入之后可能速度会更快,然后还需要占存储相关的费用所以这两个部分就看大家自己的取舍,一个会更用的更简单,成本更低一点,速度稍微慢一点一个成本相对会更高一点,但是查询速度会更快一点。

这样基本上就把这个实验的步骤做完了。然后附录这些表明大家可以自己去运行。最后说一下清理刚才提到比较重要的就是holo gress是会持续在计费的。如果做完之后不用了,或者CU5000CU时消耗完了,那是会产生费用的那你需要在管控台不用的话,那你就把这个holo gress给停机掉就不会做收费了这个需要大家注意一下,因为很有可能大家用着真的可能会忘记停机或者释放实力,后面会产生一定费用的。

image.png

基本上整个实验大概就是这样的介绍希望大家可以领取这些免费的资源,自己尝试一下分析一下。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
2月前
|
数据采集 数据可视化 数据挖掘
基于Python的数据分析与可视化实战
本文将引导读者通过Python进行数据分析和可视化,从基础的数据操作到高级的数据可视化技巧。我们将使用Pandas库处理数据,并利用Matplotlib和Seaborn库创建直观的图表。文章不仅提供代码示例,还将解释每个步骤的重要性和目的,帮助读者理解背后的逻辑。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供有价值的见解和技能。
225 0
|
9天前
|
分布式计算 DataWorks Serverless
通过函数计算节点实现GitHub实时数据分析与结果发送
开发人员在基于GitHub开源项目进行开发时会产生海量事件,GitHub会记录每次事件的类型、详情、开发者和代码仓库等信息,并开放其中的公开事件。DataWorks提供“Github十大热门编程语言”模板,通过对GitHub中公开数据集进行加工和分析,并将分析结果以邮箱的方式发送给指定用户。运行本案例后,您将得到Github中Top10编程语言每小时被提交的次数与排行。
43 10
|
1月前
|
存储 数据可视化 数据挖掘
使用Python进行数据分析和可视化
本文将引导你理解如何使用Python进行数据分析和可视化。我们将从基础的数据结构开始,逐步深入到数据处理和分析的方法,最后通过实际的代码示例来展示如何创建直观的数据可视化。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。让我们一起探索数据的世界,发现隐藏在数字背后的故事!
|
1月前
|
运维 数据挖掘 网络安全
场景实践 | 基于Flink+Hologres搭建GitHub实时数据分析
基于Flink和Hologres构建的实时数仓方案在数据开发运维体验、成本与收益等方面均表现出色。同时,该产品还具有与其他产品联动组合的可能性,能够为企业提供更全面、更智能的数据处理和分析解决方案。
|
1月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第42天】本文将介绍如何使用Python进行数据分析和可视化。我们将从数据导入、清洗、探索性分析、建模预测,以及结果的可视化展示等方面展开讲解。通过这篇文章,你将了解到Python在数据处理和分析中的强大功能,以及如何利用这些工具来提升你的工作效率。
|
1月前
|
数据采集 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第33天】本文将介绍如何使用Python编程语言进行数据分析和可视化。我们将从数据清洗开始,然后进行数据探索性分析,最后使用matplotlib和seaborn库进行数据可视化。通过阅读本文,你将学会如何运用Python进行数据处理和可视化展示。
|
2月前
|
数据采集 数据可视化 数据挖掘
使用Python进行数据处理与可视化——以气温数据分析为例
【10月更文挑战第12天】使用Python进行数据处理与可视化——以气温数据分析为例
348 0
|
2月前
|
数据采集 数据可视化 数据挖掘
Python 数据分析实战:使用 Pandas 进行数据清洗与可视化
【10月更文挑战第3天】Python 数据分析实战:使用 Pandas 进行数据清洗与可视化
155 0
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
如何理解数据分析及数据的预处理,分析建模,可视化
如何理解数据分析及数据的预处理,分析建模,可视化
64 0
|
3月前
|
机器学习/深度学习 存储 数据可视化
数据分析和可视化
数据分析和可视化