新功能:日志服务IPython/Jupyter Notebook扩展发布

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 日志服务发布IPython/Jupyter Notebook扩展,可以轻松地使用Python对海量数据进行深度加工(ETL)、交互式分析(通过SQL、DataFrame)、机器学习与可视化等。

背景

IPython/Jupyter很流行

Jupyter的前身是IPython Notebook,而IPython Notebook的前身是IPython。如下可以看到起发展轨迹

image

IPython/Jupyter非常流行,从三个方面可以看到:

  • 数据科学领域Python愈来愈流行已经是既定事实,根据数据科学与机器学习社区Kaggle 2018年调查,超过92%的人员会使用Python,而IPython/Jupyter也已经是不争的Python科学生态入口,使用Python做数据分析的人都会选择IPython/Jupyter作为工具平台。
  • IPython/Jupyter Notebook不只是Python独有,作为开放平台,已经支持超过50种语言,例如Go、Java等。
  • 各大云厂商都提供了对于Notebook的支持,SaaS生态中也有许多Notebook的有用工具,例如GithubNBViewer等。

image

日志服务对IPython/Jupyter支持

阿里云的日志服务(log service)是针对日志类数据的一站式服务,无需开发就能快捷完成海量日志数据的采集、消费、投递以及查询分析等功能。通过日志服务对IPython/Jupyter扩展的支持,可以轻松地使用Python对海量数据进行深度加工(ETL)、交互式分析(通过SQL、DataFrame)、机器学习与可视化等:

image

功能概述

支持环境

支持Python2/3下的:

  • IPython Shell
  • Jupyter Notebook (IPython Notebook)
  • Jupyter Lab

安装

快速安装

Jupyter Notebook:

1. pip install aliyun-log-python-sdk>=0.6.43 pandas odps ipywidgets -U

配置DataFrame增强交互的配置(仅适用于Notebook):

1. jupyter --path
进入data的第一个目录(或者第二个也可以),
例如C:\Users\Administrator\AppData\Roaming\jupyter
在里面构建一个子目录(如果没有的话):nbextensions

2. python -c "import odps;print(odps);"
根据输出找到odps模块所在目录,进入子目录static > ui ,例如:C:\ProgramData\Anaconda3\Lib\site-packages\odps\static\ui

3. 复制#2中的target目录到#1中,并修改target目录为pyodps
例如: C:\ProgramData\Anaconda3\Lib\site-packages\odps\static\ui\target ==> C:\Users\Administrator\AppData\Roaming\jupyter\nbextensions\pyodps

4. 启动Jupyter前验证下
jupyter nbextension enable --py --sys-prefix widgetsnbextension
jupyter nbextension enable pyodps/main

IPython Shell/Jupyter Lab:

1. pip install aliyun-log-python-sdk>=0.6.43 pandas -U

virtualenv下安装(举例)

2. virtualenv sls

# Jupyter Notebook:
3. pip install aliyun-log-python-sdk>=0.6.43 pandas odps ipywidgets -U

# IPython Shell/Jupyter Lab
3. pip install aliyun-log-python-sdk>=0.6.43 pandas -U

4. python -m ipykernel install --user --name=sls

更多安装问题可以参考这里

配置

img

加载magic命令

%load_ext aliyun.log.ext.jupyter_magic

配置参数如下:

%manage_log <服务入口> <秘钥ID> <秘钥值> <日志项目名> <日志库名>

在Jupyter Notebook下,也可以无参数传入,通过GUI配置:

%manage_log

关于服务入口、秘钥等,可以进一步参考配置

配置保存位置

将存储AK、Endpoint、Project、Logstore在~/.aliyunlogcli, 使用的块名是__jupyter_magic__

[__jupyter_magic__]
access-id=
access-key=
region-endpoint=
project=
logstore=

支持场景

1. 查询与统计

快速查询与统计(过去15分钟)

img

%log SLS查询分析语句

关于查询、扩展语法(SQL92标准),可以进一步参考查询与统计

一般查询域统计(配置时间)

img

第一行用from_time ~ to_time这样的格式操作。
注意: 两个%

%%log -1day ~ now
* |
select date_format(date_trunc('hour', __time__), '%H:%i') as dt,
        count(1)%100 as pv,
        round(sum(if(status < 400, 1, 0))*100.0/count(1), 1) AS ratio
        group by date_trunc('hour', __time__)
        order by dt limit 1000

Note:如果只有查询的部分,会自动拉取时间范围内所有日志(自动分页)

具体时间格式的支持,可以参考这里

2. 全量数据拉取

img

如果原始数据没有索引,无法使用查询统计时,或者不需要条件过滤时,可以使用拉取命令。

%fetch 2019-1-31 10:0:0+8:00 ~ 2019-1-31 10:00:10+8:00

Note:

  1. 时间范围是服务器接受日志的时间,不同于日志自身的时间。
  2. 拉取过程中,取消的话,已经拉取的数据会放到log_df_part中。

3. Dataframe操作

img

查询返回值通过log_df进行操作。是一个Pandas的标准DataFrame

操作示例:

%matplotlib inline
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (12, 9)
import seaborn as sns

%log host: www.a?.mock* | select body_bytes_sent, host limit 100000

log_df['body_bytes_sent'] = log_df['body_bytes_sent'].astype(int)
sns.boxenplot(x='host', y='body_bytes_sent', data=log_df);

关于DataFrame操作,可以参考Pandas DataFrame

4. Dataframe可视化增强

Jupyter Notebook下扩展了DataFrame的操作,表格进行了分页,也可以动态选择饼图、柱状图、线图、点图等可视化。

img

相关链接

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
7月前
|
数据采集 数据可视化 数据挖掘
交互式数据分析:使用Jupyter Notebooks和IPython提高生产力
【4月更文挑战第12天】Jupyter Notebooks和IPython是交互式数据分析的强大工具,提供了一个集成环境,支持多种编程语言,提升效率并减少错误。它们具有交互式编程、丰富库支持、可扩展性和协作功能。基本流程包括数据导入(如使用Pandas从CSV加载)、预处理、分析(利用Pandas、NumPy、Matplotlib等)、模型选择与训练(如Scikit-learn的RandomForestClassifier)以及模型评估和优化。
186 2
|
6月前
|
数据采集 机器学习/深度学习 数据可视化
使用Jupyter Notebook进行数据分析:入门与实践
【6月更文挑战第5天】Jupyter Notebook是数据科学家青睐的交互式计算环境,用于创建包含代码、方程、可视化和文本的文档。本文介绍了其基本用法和安装配置,通过一个数据分析案例展示了如何使用Notebook进行数据加载、清洗、预处理、探索、可视化以及建模。Notebook支持多种语言,提供直观的交互体验,便于结果呈现和分享。它是高效数据分析的得力工具,初学者可通过本文案例开始探索。
|
4月前
|
Python
Jupyter Notebook又一利器nbterm,在终端玩notebook!
Jupyter Notebook又一利器nbterm,在终端玩notebook!
|
4月前
|
XML Java Maven
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
这篇文章是Spring5框架的入门到实战教程,介绍了Spring5的新功能——整合日志框架Log4j2,包括Spring5对日志框架的通用封装、如何在项目中引入Log4j2、编写Log4j2的XML配置文件,并通过测试类展示了如何使用Log4j2进行日志记录。
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
|
4月前
|
数据可视化 JavaScript 开发工具
推荐7个有用的Jupyter扩展
推荐7个有用的Jupyter扩展
|
6月前
|
文字识别 异构计算 Python
关于云端Jupyter Notebook的使用过程与感想
在自学Python时,由于家庭电脑使用冲突和设备老旧,转向云端平台。体验了多个服务:1. 魔搭modelscope(最喜欢,赠送资源丰富,社区活跃),2. Colaboratory(免费GPU,但有时重启,建议用阿里云),3. Deepnote(免费环境有限,但GPT-4代码生成功能强大),4. 飞桨aistudio(适合PaddlePaddle用户),5. ModelArts(曾有免费实例,现难找)。综合来看,阿里云的稳定性与服务更优,尤其是魔搭的自动代码修正功能。对于AIGC,推荐魔搭和付费版PAI-DSW。欢迎分享更多云端Jupyter平台体验。
307 1
|
5月前
|
数据采集 机器学习/深度学习 数据可视化
Jupyter Notebooks和IPython是交互式数据分析利器,提升效率。Jupyter是开源Web应用
【7月更文挑战第5天】Jupyter Notebooks和IPython是交互式数据分析利器,提升效率。Jupyter是开源Web应用,支持多语言,结合IPython的交互式解释器,便于编程和科学计算。两者提供即时反馈、丰富库支持、跨语言功能及协作共享。基本流程包括:数据导入(使用Pandas)、预处理、分析(借助Pandas、NumPy、Matplotlib)、模型训练(如随机森林)和评估。
52 0
|
6月前
|
Python 数据挖掘 数据可视化
Python数据分析——Pandas与Jupyter Notebook
【6月更文挑战第1天】 本文探讨了如何使用Python的Pandas库和Jupyter Notebook进行数据分析。首先,介绍了安装和设置步骤,然后展示了如何使用Pandas的DataFrame进行数据加载、清洗和基本分析。接着,通过Jupyter Notebook的交互式环境,演示了数据分析和可视化,包括直方图的创建。文章还涉及数据清洗,如处理缺失值,并展示了如何进行高级数据分析,如数据分组和聚合。此外,还提供了将分析结果导出到文件的方法。通过销售数据的完整案例,详细说明了从加载数据到可视化和结果导出的全过程。最后,讨论了进一步的分析和可视化技巧,如销售额趋势、产品销售排名和区域分布,以及
231 2
|
6月前
|
Java Spring 容器
Spring5系列学习文章分享---第六篇(框架新功能系列+整合日志+ @Nullable注解 + JUnit5整合)
Spring5系列学习文章分享---第六篇(框架新功能系列+整合日志+ @Nullable注解 + JUnit5整合)
39 0
|
7月前
|
JSON 数据可视化 数据挖掘
适合数据分析的ide---Jupyter Notebook的安装使用
适合数据分析的ide---Jupyter Notebook的安装使用
120 2

相关产品

  • 日志服务