MongoDB聚合管道在数据科学中的应用

数据科学和机器学习领域,掌握多种工具对于处理各种任务至关重要。没有数据,这两个领域就无法存在。因此,了解如何存储、操作、摄取和导入数据对于任何相关领域的从业者来说都是至关重要的。

MongoDB中的聚合管道

今天,将探讨在MongoDB数据库中使用NoSQL数据时可用的一个非常强大的功能——聚合管道。这些管道在实践良好的MLOps实践、自动化数据操作和导入数据以供网络使用方面发挥了重要作用。

MLOps的步骤分为四个通用类别:

  1. 范围定义:定义项目、目标用户以及如何进行项目的计划。
  2. 数据:定义数据并建立基线,标记和组织数据,特征提取,数据验证等。
  3. 建模:选择和训练模型,对其进行错误分析。
  4. 部署:在生产环境中部署,监控和维护系统。

因此,就这些定义的阶段而言,本文的范围将位于数据类别,这使得MLOps的整个过程更加系统化、快速和灵活。

聚合的含义

根据正式定义,聚合是一个通过组合几个独立元素来形成或计算元素的过程。因此,在MongoDB中,可以在彼此之上添加各种函数作为独立元素,并形成一个更精细和复杂的函数,该函数可以轻松地以单步完成工作。

在MongoDB Compass中使用聚合管道

在本文中,将向展示如何在MongoDBCompass中使用这些聚合管道,以及如何在Python代码中使用这些管道。如果不了解MongoDB Compass以及如何与Python一起使用,请查看为此目的撰写的另一篇文章。

1. 打开数据库中的集合

以为例,选择了MongoDB本地服务器中“local”数据集中已经存在的startup_log集合。点击startup_log以打开集合。

2. 开始使用聚合管道

点击后,将看到这样的界面,其中所有这些左侧窗口是为聚合的每个元素编写代码的地方,右侧是一旦原始数据执行窗口中提到的任务后将检索到的输出。让看看实际操作。

可以根据需要添加尽可能多的阶段,只需点击前一个阶段下方的“添加阶段”按钮。在图片中看到的第一行是完整原始数据,作为水平对齐的记录。

现在,可以看到每个阶段都有一个绿色按钮,这个开关按钮用于激活或停用管道中的某个特定阶段。如果需要,这对于调试非常有用。按钮左侧的下拉菜单是为每个阶段选择功能的地方。让看看如何操作。

为什么不对数据集执行一个简单的投影功能,只从每个记录中提取‘pid’属性呢?

为了展示它们的多功能性,让创建另一个阶段,并创建一个属性,该属性的值将是属性(startTime)作为字符串(原始数据中以日期时间格式存在)。

完成管道后,不要忘记保存管道,以便以后使用,而不必一次又一次地创建。

点击下图中提到的图标,将看到所有保存的管道。只需将鼠标悬停在希望再次使用的管道名称上,然后将看到一个打开按钮。看看实际操作。

如果不知道如何在Python中使用MongoDB,请查看这篇文章。以下是完成任务的代码。

import pymongo database = pymongo.MongoClient().local.startup_log data = database.aggregate(list( # 聚合管道代码 ))

可以看到上面的图片中的‘database’变量是指向‘startup_log’的集合。

即使在所有这些之后,还剩下一小步。看到的聚合结果是一个PyMongo游标,它有助于遍历从管道检索到的值。因此,要将结果数据保存在DataFrame中,只需用Pandas.DataFrame包装游标即可。

import pandas as pd dataset = pd.DataFrame(data) data.head()

现在,已经使用单个自动化管道过滤和处理了数据。这难道不感觉很强大吗?对来说确实如此,完全喜欢使用它们,希望也喜欢。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485