用Python生成MongoDB的测试数据”width=出于测试目的,特别是如果您正在处理一个使用数据库技术存储信息的项目,那么您可能需要数据来测试您的项目。在这种情况下,你有两个选择:

  • 找到一个好的数据集(Kaggle)或
  • 使用图书馆,比如骗子

通过这篇文章,您将学习如何使用Faker为MongoDB生成测试数据。

需求

依赖关系

在创建将为项目生成数据的Python脚本之前,请确保安装了所有依赖项。

您可以创建文件内容如下:

一旦你创建了这个文件,运行以下命令:

或者如果你使用Anaconda,创建一个environment.yml文件:

您可以更改Python版本,因为该脚本已被证明适用于这些版本的Python: 3.7、3.8、3.9、3.10和3.11。

运行如下语句配置项目环境:

用Faker伪造数据

骗子是一个Python库,可用于通过包中定义的属性生成假数据。

上面的代码将打印10个名称,并且在每次调用方法时名称()时,它将产生一个随机值。的名称()是生成器的属性。这个库的每个属性都称为a假的。里面有很多供应商

Faker库中可用的一些提供者和属性包括:

你可以找到更多的信息捆绑社区文档中的提供者。

创建Pandas数据框架

在了解了Faker及其特性后,a模块目录需要创建,在该目录中,我们将创建一个名为dataframe.py。这个模块稍后将被导入到我们的主脚本中,这里是我们定义生成数据的方法的地方。

实现多处理是为了优化脚本的执行时间,但这将在后面解释。首先,你需要导入所需的库:

  • 熊猫。使用Faker生成的数据在导入数据库之前将存储在Pandas DataFrame中。
  • tqdm ()。需要添加一个进度条来显示DataFrame创建的进度。
  • 骗子()。这是伪造者库中的生成器。
  • cpu_count ()。这是一个方法多处理模块,该模块将返回可用内核数。

骗子()创建并初始化一个faker生成器,该生成器可以通过访问属性生成数据。

num_cores是一个变量,用于存储调用cpu_count ()方法。

然后我们定义create_dataframe ()函数,地点:

  • x是一个变量,它将决定创建DataFrame的for循环的迭代次数。
  • 数据是一个空的DataFrame,稍后将用Faker生成的数据来实现。
  • 熊猫DataFrame.loc属性通过标签提供对一组行和列的访问。在每次迭代中,一行数据被添加到DataFrame中,该属性允许为每一列赋值。

调用此函数后创建的DataFrame将有以下列:

连接到数据库

在插入之前用Faker生成的数据之前,我们需要建立一个到数据库的连接,为此需要使用PyMongo将使用库。

从PyMongo导入MongoClient ()方法。

别忘了更换用户密码本地主机,港口(27017),并将此代码保存在模块目录并将其命名为base.py。

什么是多处理?

多处理是一个Python模块,可用于利用运行脚本的计算机中可用的CPU内核。在Python中,单cpu使用是由全局解释器锁,它只允许一个线程在任何给定的时间携带Python解释器,更多信息请参阅这篇博文

假设您正在生成60,000条记录,在单个核心中运行脚本所花费的时间将超出您的预期,因为每个记录都是在循环中逐个生成的。通过实现多处理,整个过程除以核数,所以如果你的CPU有16个核,每个核将产生4000条记录,这是因为只有15个核将被使用,因为我们需要留下一个核来避免计算机冻结。

为了更好地理解如何在Python中实现多处理,我推荐以下教程:

生成数据

所需的所有模块现在都已准备好导入到主脚本中,因此是时候创建mongodb.py脚本。首先,导入所需的库:

从多处理,池()cpu_count ()是必需的。的Python多处理池类允许你在Python中创建和管理进程池。

然后,导入之前创建的模块:

现在我们创建的多处理池配置为使用所有可用的CPU内核减去一个。每个核心将调用create_dataframe ()函数并创建一个包含4000条记录的DataFrame,并且在每次调用函数结束后,所有创建的DataFrame将被连接成一个单一的DataFrame。

登录到MongoDB服务器后,我们得到数据库和数据将存储在其中的集合。

最后,我们将通过调用insert_many将DataFrame插入到MongoDB中()方法。所有数据将存储在一个名为员工

运行以下语句填充数据库:

使用多处理创建数据帧”width=

使用多处理创建数据帧

生成包含60,000条记录的DataFrame只需要几秒钟的时间,这就是实现多处理的原因。

PMM的CPU利用率”width=

Percona监控和管理中的CPU利用雷竞技下载官网率raybet雷竞技竞猜在线官网

脚本完成后,您可以检查数据库中的数据。

函数的作用是:返回员工表格

方法中显示记录员工表:

这篇博客文章中显示的代码可以在我的GitHub帐户上找到数据生成器存储库。

订阅
通知的
客人”src=