Pandas+ SLS SQL:融合灵活性和高性能的数据透视

本文涉及的产品
对象存储 OSS,标准 - 本地冗余存储 20GB 3个月
文件存储 NAS,50GB 3个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: Pandas是一个十分强大的python数据分析工具,也是各种数据建模的标准工具。Pandas擅长处理数字型数据和时间序列数据。Pandas的第一大优势在于,封装了一些复杂的代码实现过程,只需要调用接口就行了,避免了编写大量的代码。Pandas的第二大优势在于灵活性,可以实现自动化批量化处理复杂的逻辑,这些工作是Excel等工具是无法完成的。因而Pandas介于Excel和自主编写程序之间,兼具灵活性和简洁性的数据分析工具。

Pandas是什么

Pandas是一个十分强大的python数据分析工具,也是各种数据建模的标准工具。Pandas擅长处理数字型数据和时间序列数据。Pandas的第一大优势在于,封装了一些复杂的代码实现过程,只需要调用接口就行了,避免了编写大量的代码。Pandas的第二大优势在于灵活性,可以实现自动化批量化处理复杂的逻辑,这些工作是Excel等工具是无法完成的。因而Pandas介于Excel和自主编写程序之间,兼具灵活性和简洁性的数据分析工具。


在输入上,Pandas支持读取多种格式的文件,包括csv、orc、xml、json,也支持读取分布式文件系统HDFS,此外还支持通过jdbc协议读取mysql或兼容mysql协议的数仓。输入的数据会转换成内存中的数据结构DataFrame,之后的数据分析就是围绕着DataFrame进行。


在输出上,pandas可以实现非常震撼的可视化效果,对接众多赏心悦目的可视化库,可以实现动态数据交互效果。

pandas毕竟是一种python脚本语言,性能上一般,只能处理少量数据,跟现代化的数仓的计算能力差别是比较大的。但是如此灵活的pandas分析,能否和数仓相结合,赋予数仓更灵活的数据分析能力,同时获得大规模数据的分析能力呢?

SQL语言的优势和缺点


SQL是目前使用最为广泛的数据分析语言,SQL自从1980年代在IBM研发出来之后,立即成为各种数据分析系统的标准语言。究其原因,SQL是一种声明式语法,用户只需要声明想要的结果,不必指定获取结果的过程。这种方式有两个好处,一方面,如何以最高性能最小代价获得计算结果,需要编写复杂的算法,乃至了解机器的硬件特性,这需要专门的数据库内核工程师才能做到;对于数据分析师而言,这个要求有点过于复杂。因而声明式语法,解放了数据分析师的工作量,降低了数据分析门槛,扩大了SQL的受众。另一方面,没有指定运行过程,则给了数据库内核工程师们更大的自由度去生成最佳的执行计划。这是SQL的优势。


SQL的理论基础来自于关系代数,任何一个操作的对象都是关系,任何操作的结果也是一个关系。关系+操作生成一个新的关系。任何时刻,用户都可以看到一个关系实体。这套极强的理论基础,可以让一个SQL语句无限扩展,在任意时刻都能获得一个关系,再附加一个操作,变成另外一个关系。


由于SQL是基于关系代数和关系模型,关系模型中的关系这个实体,我们可以把它想象成一个二维的表格包含多行多列,行数无限制,而列数则是有限制的。行数是动态的,可以是0行,也可以是无限行。列数则是静态的,不可变更的,不管有无数据,都是固定的列数输出。静态列的这种方法,也限制了SQL在一些场景的应用。两个典型的场景是矩阵转置或者生成透视表(交叉表)。这两种场景下,列的个数都是动态的。因而SQL需要部分借助于编程才能实现完整的数据分析。


SLS SQL的优势



SQL只是一个语法表现成,是用户和数仓系统交互的语言。而数仓的真正强大之处在于它的内核。SLS日志数仓,采用SQL为语法接口,借助于云原生的分布式架构,可以实现query级别的弹性分析能力,可以实现单次分析千亿条数据的能力。


Pandas具备分析灵活性,SLS具备强大的SQL分析能力。两者融合,既能享受SLS强大的SQL分析能力,又能借助Pandas的灵活的数据分析和分析库。那么两者怎么结合呢?


Pandas连接SLS 做融合分析


Pandas支持jdbc接口读取数据,SLS也支持jdbc协议。因而Pandas可以通过jdbc协议连接SLS。对于分析任务中的比较重的计算,通过SQL传递给SLS计算;对于比较灵活的分析、SQL完成不了的分析,则在Pandas上做二次分析和可视化。例如构建透视表或者交叉表:先通过SQ L完成两个维度的交叉计算,这个过程往往计算量比较大;再通过Pandas完成行列转换,展示成二维表。


一个例子:


import numpy as np

import pandas as pd

import pymysql


# sql 命令

slshost=""

username=""

password=""

dbname=""  # project is database

sql_cmd = "select method,status ,count(1) as pv from access_log group by method, status limit 1000"

con = pymysql.connect(host=slshost, port=10005,user=username, password=password, database=dbname, charset='utf8', use_unicode=True)

data = pd.read_sql(sql_cmd, con)

tab=pd.pivot_table(data,values="pv",index="status",columns="method" )

print(tab)


例子中的SQL,分析nginx访问日志,计算method和status两个维度的pv。再调用pandas的pivot_table函数构建透视表。


执行结果如下图:


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
1月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
283 0
|
2月前
|
SQL 传感器 人工智能
生成更智能,调试更轻松,SLS SQL Copilot 焕新登场!
阿里云日志服务(SLS)推出智能分析助手 SLS SQL Copilot,融合 AI 技术与日志分析最佳实践,将自然语言转换为 SQL 查询,降低使用门槛,提升查询效率。其具备原生集成、智能语义理解与高效执行能力,助力用户快速洞察日志数据价值,实现智能化日志分析新体验。
186 1
|
2月前
|
SQL 人工智能 监控
SLS Copilot 实践:基于 SLS 灵活构建 LLM 应用的数据基础设施
本文将分享我们在构建 SLS SQL Copilot 过程中的工程实践,展示如何基于阿里云 SLS 打造一套完整的 LLM 应用数据基础设施。
547 51
|
2月前
|
SQL 传感器 人工智能
生成更智能,调试更轻松,SLS SQL Copilot 焕新登场!
本文是阿里云日志服务(SLS)首次对外系统性地揭秘 SLS SQL Copilot 背后的产品理念、架构设计与核心技术积淀。我们将带你深入了解,这一智能分析助手如何从用户真实需求出发,融合前沿 AI 能力与 SLS 十余年日志分析最佳实践,打造出面向未来的智能化日志分析体验。
253 28
|
6月前
|
数据采集 安全 数据挖掘
Pandas数据合并:10种高效连接技巧与常见问题
在数据分析中,数据合并是常见且关键的步骤。本文针对合并来自多个来源的数据集时可能遇到的问题,如列丢失、重复记录等,提供系统解决方案。基于对超1000个复杂数据集的分析经验,总结了10种关键技术,涵盖Pandas库中`merge`和`join`函数的使用方法。内容包括基本合并、左连接、右连接、外连接、基于索引连接、多键合并、数据拼接、交叉连接、后缀管理和合并验证等场景。通过实际案例与技术原理解析,帮助用户高效准确地完成数据整合任务,提升数据分析效率。
561 13
Pandas数据合并:10种高效连接技巧与常见问题
|
2月前
|
数据采集 运维 监控
不重启、不重写、不停机:SLS 软删除如何实现真正的“无感数据急救”?
SLS 全新推出的「软删除」功能,以接近索引查询的性能,解决了数据应急删除与脏数据治理的痛点。2 分钟掌握这一数据管理神器。
200 22
|
1月前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
138 6
|
3月前
|
存储 缓存 Apache
StarRocks+Paimon 落地阿里日志采集:万亿级实时数据秒级查询
A+流量分析平台是阿里集团统一的全域流量数据分析平台,致力于通过埋点、采集、计算构建流量数据闭环,助力业务提升流量转化。面对万亿级日志数据带来的写入与查询挑战,平台采用Flink+Paimon+StarRocks技术方案,实现高吞吐写入与秒级查询,优化存储成本与扩展性,提升日志分析效率。
421 1
|
6月前
|
存储 缓存 Apache
StarRocks+Paimon 落地阿里日志采集:万亿级实时数据秒级查询
本文介绍了阿里集团A+流量分析平台的日志查询优化方案,针对万亿级日志数据的写入与查询挑战,提出基于Flink、Paimon和StarRocks的技术架构。通过Paimon存储日志数据,结合StarRocks高效计算能力,实现秒级查询性能。具体包括分桶表设计、数据缓存优化及文件大小控制等措施,解决高并发、大数据量下的查询效率问题。最终,日志查询耗时从分钟级降至秒级,显著提升业务响应速度,并为未来更低存储成本、更高性能及更多业务场景覆盖奠定基础。

相关产品

  • 日志服务