首页 > 其他分享 >如何使用谷歌查询PyPI包下载信息

如何使用谷歌查询PyPI包下载信息

时间:2024-03-19 09:38:12浏览次数:28  
标签:谷歌 PyPI BigQuery 查询 信息 DATE 下载

Analyzing PyPI package downloads - Python Packaging User Guide

下面是英文官网原文,解释了为什么不能获取下载统计信息。

 翻译过后主要有以下几个原因:

1、使用CDN效率低:下载信息是动态变化的。包含在项目中的话,大量缓存会使得降低效率。

2、数据不精准:下载信息不可能准确无误,因为很多原因:

  1. pip的下载缓存
  2. 内部和非官方镜像下载,没法统计
  3. 没有托管在PyPI上的包
  4. 使用脚本不合规增加下载次数
  5. 已知的历史数据质量问问题

3、没有实际的用处:已知的历史数据质量问题

了解了PyPI为什么不显示下载统计信息之后,开始了解如何以及在哪里能找到统计信息。

作为替代,PyPI的下载日志会传输到谷歌查询 (Google BigQuery)。该代替方案中,有1TB的免费查询,之后得使用BigQuery的免费套餐(必须绑定信用卡,并且在免费查询之后就会扣除信用卡钱)才可以继续查询。

使用 Google Cloud 控制台查询公共数据集  |  BigQuery

或者跟着我一起学习如何使用BigQuery:

1、首先你得有一个谷歌账号

2、BigQuery – MindSpore – Google Cloud Console进入该地址

3、点击左上角菜单,点击API

4、搜索BigQuery,并且添加

5、点击探索器,添加按钮

 6、搜索数据源,输入公共数据集或者public data

7、开始查询数据,在快速开始手册中有很多例子,整体还是类似SQL语句,如果有过数据库的学习,应该不在话下

1 #standardSQL
2 SELECT
3   COUNT(*) AS num_downloads
4 FROM
5   `bigquery-public-data.pypi.file_downloads`
6 WHERE
7   file.project = 'pytest' -- Only query the LAST 30 days OF history
8   AND DATE(timestamp) BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
9   AND CURRENT_DATE()

查询下载次数,只需要更改file.project的值,就可以得到想要包30天内的下载次数

8、了解更多

如果想得到除了下载次数之外的细节信息,例如下载系统,下载版本,下载时间,甚至国家编号

可以打开bigquery-public-data数据库,找到pypi,其中有三张表

 就可以查看表中拥有的信息,但是有些细节查询后是为null的。

 如果更改数据表,记得更改查询语句中的FROM字段。

标签:谷歌,PyPI,BigQuery,查询,信息,DATE,下载
From: https://www.cnblogs.com/G-Sucker/p/18081344

相关文章

  • 月结各模块关闭情况查询SQL
    -----库存模块selectoap.status关闭状态,oap.period_name所属期间,oap.organization_id组织id,(selectnamefromhr_organization_unitsxwherex.organization_id=oap.organization_id)组织名称,oap.last_update_date执......
  • mysql索引(索引失效,遵循最左前缀,使用1.全值匹配 2.覆盖索引,失效:索引加函数,范围查询右边
    1.遵循联合索引最左列原则当表中创建了一个联合索引idx_name_age_position案例演示1.当我们在执行sql语句:以name为where条件时,我们可以用到索引EXPLAINSELECT*FROMemployeesWHEREname='LiLei';2.当我们在执行sql语句:以age为where条件时,索引就会失效......
  • MyBatisPlus怎么多表关联查询?
    在MyBatisPlus中进行多表关联查询通常需要自定义SQL语句,因为MyBatisPlus的默认方法主要是针对单表操作。你可以在Mapper接口中定义自定义查询方法,并使用@Select注解编写SQL语句。以下是一个简单的例子,假设我们有两个表user和order,我们想要查询用户及其订单信息:定义User和Or......
  • 查询优化-EXIST类型子连接提升
    瀚高数据库目录文档用途详细信息文档用途了解exist类型的子连接提升过程详细信息SQL:SELECTsnoFROMSTUDENTWHEREEXISTS(SELECTsnoFROMscoreWHEREsno>STUDENT.sno);一、执行计划:test=#explainSELECTsnoFROMSTUDENTWHEREEXISTS(SELECTsnoFR......
  • 关于事务处理过程中,查询事务相关表的处理方式
    关于事务处理过程中,查询事务相关表的处理方式DBServerProvider.SqlDapper与repository的区别及应用场景publicoverrideWebResponseContentAudit(object[]keys,int?auditStatus,stringauditReason){Toolstools=newTools();......
  • SQL 查询优化之 WHERE 和 LIMIT 使用索引详解
    奇怪的慢sql我们先来看2条sql第一条:第二条:表的索引及数据总情况: 索引:acct_id,create_time分别是单列索引,数据库总数据为500w。通过acct_id过滤出来的结果集在1w条左右。 查询结果:第一条要5.018s,第二条0.016s为什么会是这样的结果呢?第一,acct_id和create_time都有索引,不......
  • 查询端口号占用
    1.netstat-aon|findstr"8089"查询占用端口号的PID,这里为89842.tasklist|findstr"8984"通过PID查询是什么应用占用了该端口......
  • 使用JDBC查询数据库会一次性加载所有数据吗
    前几天有个小伙伴说他有个疑问:当我们发起一个查询的时候,数据库服务器是把所有结果集都准备好,然后一次性返回给应用程序服务吗(因为他们生产有个服务因为一个报表查询搞宕机了)。这样想的原因很简单,假设那个报表查询出来有几百万数据,然后一次性倾泻给应用程序了,应用没那么大内存空......
  • 手机网络连接性能API接口:查询手机网络连接性能状态
    手机网络连接性能是我们在使用手机时非常关注的一个方面。有时我们会遇到网络不稳定、网速慢等问题,而这些问题往往会影响我们的手机使用体验。因此,了解手机网络连接性能状态对于我们来说非常重要。 在这篇博文中,我将介绍如何使用手机网络连接性能API接口来查询手机网络连接性......
  • java 高效递归查询树 find_in_set 处理递归树
    建表语句DROPTABLEIFEXISTS`sys_dept`;CREATETABLE`sys_dept`(`id`bigint(20)NOTNULLAUTO_INCREMENTCOMMENT'部门id',`parent_id`bigint(20)DEFAULT'0'COMMENT'父部门id',`ancestors`varchar(256)DEFAULT''......