当前位置: 首页 > news >正文

第四篇: 用Python和SQL在BigQuery中进行基础数据查询

用Python和SQL在BigQuery中进行基础数据查询

在大数据分析领域,Google BigQuery 提供了一种快速且经济高效的数据处理方式。对于想要使用SQL查询大规模数据的读者来说,BigQuery的公共数据集资源丰富、操作简便,是学习和实践SQL基础操作的理想平台。

以下是一个通过Python和BigQuery进行基础SQL查询的实际案例,我们将使用Google的一个公共数据集,并以一个简单的查询示例来演示SQL在BigQuery中的应用,涵盖查询、过滤、排序和聚合操作。

1. 准备工作:选择数据集

在BigQuery中,有多个免费的公共数据集可供选择。这里我们选择了一个大家容易理解的公共数据集——Google Analytics的ecommerce数据集。该数据集包含电商网站的访问记录,包括访问者的地理位置、设备类型、访问时间以及产品销售情况等信息,非常适合用来进行电商数据分析。

示例:电商产品销售分析

假设我们是一家在线零售商,我们想要了解不同国家的销售情况,并分析销售额较高的市场。这个分析有助于公司决定将更多营销资源投入到哪些国家市场中。

2. 使用SQL进行基础查询

我们将从数据集中选择所需的字段并进行简单查询。以下是一个基本SQL查询:

SELECT geoNetwork.country AS country,SUM(totals.transactionRevenue) AS total_revenue
FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20170801`
WHERE totals.transactionRevenue IS NOT NULL
GROUP BY country
ORDER BY total_revenue DESC
LIMIT 10;
查询解释
  • geoNetwork.country: 查询国家字段,以便知道每个交易来自哪个国家。
  • totals.transactionRevenue: 使用总收入字段来计算每个国家的总销售额。
  • WHERE totals.transactionRevenue IS NOT NULL: 排除没有销售额的记录,使得查询只关注实际交易。
  • GROUP BY country: 按国家分组,统计每个国家的总销售额。
  • ORDER BY total_revenue DESC: 按总销售额从高到低排序,以便查看销售额最高的国家。

3. 在Python中执行查询

接下来,我们将通过Python代码在BigQuery中执行此查询,并提取结果以进行进一步分析。我们将使用Google的BigQuery Python客户端库来实现这一目标。以下是Python代码示例:

from google.cloud import bigquery# 创建BigQuery客户端
client = bigquery.Client()# 定义查询
query = """SELECT geoNetwork.country AS country,SUM(totals.transactionRevenue) AS total_revenueFROM `bigquery-public-data.google_analytics_sample.ga_sessions_20170801`WHERE totals.transactionRevenue IS NOT NULLGROUP BY countryORDER BY total_revenue DESCLIMIT 10;
"""# 执行查询
query_job = client.query(query)
results = query_job.result()# 输出结果
for row in results:print(f"{row.country}: {row.total_revenue}")

代码运行结果示例:

United States: 8301950000
Finland: 2990000Process finished with exit code 0

4. 分析和解释结果

运行查询后,我们可以看到每个国家的总销售额。通过这些数据,我们可以得出一些商业见解:

  • 识别高价值市场:在销售额最高的几个国家中,可以发现潜在的高收益市场,并优先考虑投入资源。
  • 优化广告投放:基于这些数据,公司可以在销售额较高的国家增加广告预算,从而提升整体收益。
  • 区域趋势分析:分析不同国家的消费模式,帮助制定个性化的市场策略。

5. 小结

本文介绍了如何使用BigQuery和SQL进行电商数据分析,展示了通过简单的SQL查询、数据过滤、排序和聚合来获取商业洞见的基本方法。这种分析可以应用于更多实际场景,例如用户行为分析、广告投放效果评估等。对于数据科学家和数据工程师来说,BigQuery是一种非常实用的工具,它让处理大规模数据变得更为简便和高效。

相关文章:

第四篇: 用Python和SQL在BigQuery中进行基础数据查询

用Python和SQL在BigQuery中进行基础数据查询 在大数据分析领域,Google BigQuery 提供了一种快速且经济高效的数据处理方式。对于想要使用SQL查询大规模数据的读者来说,BigQuery的公共数据集资源丰富、操作简便,是学习和实践SQL基础操作的理想…...

OpenCV中使用EdgeDrawing模块查找圆

从OpenCV4.5.2开始,Contrib模块中封装了开源库ED_Lib用于查找图像中的直线、线段、椭圆和圆。Github地址: https://github.com/CihanTopal/ED_Lib 算法原理简介: 边缘绘制(ED)算法是一种解决边缘检测问题的主动方法…...

C++在游戏领域的主要应用

1、C简介 C是一种通用的程序设计语言,其设计就是为了使认真的程序员工作得更愉快。除了一些小细节之外,C是C程序设计语言的一个超集。C提供了C所提供的各种功能还为定义新类型提供了灵活而有效的功能。程序员可以通过定义新类型,使这些类型与…...

基于SpringBoot的“CSGO赛事管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“CSGO赛事管理系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统首页界面图 赛事信息界面图 赛事通知界面…...

Web Broker(Web服务应用程序)入门教程(2)

1. Web 调度器(Web Dispatcher) 如果您使用的是 Web 模块,它就充当 Web 调度器的角色。如果您使用的是现成的数据模块,则必须向该数据模块中添加一个单一的调度器组件(Web.HTTPApp.TWebDispatcher)。调度器维护着一个动作项集合,这些动作项知道如何处理特定类型的请求消息…...

redis:list列表命令和内部编码

个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C》《Linux》《网络》 《redis学习笔记》 文章目录 前言命令LPUSH 和 LPUSHXLRANGERPUSH 和 RPUSHXLPOP 和 RPOPLINDEXLINSERTLLENLREMLTRIMLSET阻塞版命令BLPOP 和 BRPOP 内部编码总结 前言 列…...

.Net Core Configuration用法

//在应用程序的任何地方注入 IConfiguration 来访问配置数据。ASP.NET Core 默认会加载 appsettings.json 文件 IConfiguration _configuration builder.Configuration; string connectionString _configuration["ConnectionStrings:SqlServerConnection"]; Hel…...

分享一些企业选择管理顾问公司的成功经验

为了在激烈的市场竞争中脱颖而出,许多企业开始寻求外部专业力量的支持,其中,企业管理顾问公司以其专业的知识、丰富的经验和独到的见解,成为了众多企业的得力助手。本文将分享一些企业在选择企业管理顾问公司过程中的成功经验&…...

「Qt Widget中文示例指南」如何实现窗口嵌入?

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 本文中的示例主要演…...

企业CRM选型必看:2024年最佳CRM系统排行

企业用户在选择CRM系统时,不仅要考虑系统的功能性、可定制性,还要考虑其与现有工具的集成能力以及价格。此外,在2024年,越来越多的企业用户会把CRM厂商的AI能力列入考察范畴。 本文分析整理2024年最佳CRM系统排行榜,从…...

SQL入门的基础知识

思考 无论是干任何语言或者其他方向的开发,都会和我们的SQL去进行打交道 总结 学习SQL的原因:后面的实战案例需要用SQL,SQL是开发人员的必备技能 现在只需要学到满足后续案例需要,即简单增删改查,做一个入门即可 1.…...

JS渗透(安全)

JS逆向 基本了解 作用域: 相关数据值 调用堆栈: 由下到上就是代码的执行顺序 常见分析调试流程: 1、代码全局搜索 2、文件流程断点 3、代码标签断点 4、XHR提交断点 某通js逆向结合burp插件jsEncrypter 申通快递会员中心-登录 查看登录包…...

淘宝扭蛋机小程序,功能优势分析

随着潮玩文化的影响,扭蛋机作为潮玩的鼻祖,又再次成为了大众的“宠儿”。扭蛋机通过与多种IP结合,创造出各种元素的商品,为大众带来娱乐、收藏的新方式。我国潮玩市场规模正在大幅度的增长,将达到千亿元,发…...

Redis 数据备份与恢复

Redis 数据备份与恢复 引言 Redis 作为一种高性能的键值存储数据库,在许多应用场景中扮演着重要的角色。然而,数据的安全性是任何数据库系统都需要关注的问题。为了确保数据的安全和完整性,定期进行数据备份和掌握恢复策略是至关重要的。本文将详细介绍 Redis 数据备份与恢…...

CentOS9 Stream 设置禁用IPV6

CentOS9 Stream 设置禁用IPV6 方法 1: 修改 sysctl 配置方法 2: 使用 NetworkManager方法 3: 禁用内核参数验证 IPv6 是否禁用 在 CentOS 9 Stream 中,您可以通过以下步骤禁用 IPv6: 方法 1: 修改 sysctl 配置 编辑 sysctl 配置文件: 打开 /…...

C语言 | Leetcode C语言题解之第530题二叉搜索树的最小绝对差

题目: 题解: void dfs(struct TreeNode* root, int* pre, int* ans) {if (root NULL) {return;}dfs(root->left, pre, ans);if (*pre -1) {*pre root->val;} else {*ans fmin(*ans, root->val - (*pre));*pre root->val;}dfs(root->…...

【系统设计】高效的分布式系统:使用 Spring Boot 和 Kafka 实现 Saga 模式

在现代分布式系统中,管理跨多个服务的长事务至关重要。传统的分布式事务解决方案往往面临性能瓶颈和复杂性问题,而 Saga 模式 作为一种灵活高效的解决方案,逐渐受到开发者的青睐。本文将探讨如何利用 Spring Boot 和 Kafka 实现 Saga 模式&am…...

蓝桥杯 python day01 第一题

1. 确定字符串是否包含唯一字符 确定字符串是否包含唯一字符 题目描述 实现一个算法来识别一个字符串的字符是否是唯一的(忽略字母大小写)。 若唯一,则输出YES,否则输出NO。 输入描述 输入一行字符串,长度不超过…...

10款好用的win10录屏软件带你体验专业录屏。

其实win10系统的设备上有自带的录屏功能,还有powerpoint里面也有录屏工具可以使用。如果有朋友觉得里面的功能并不能够满足自己的录屏需求的话,可以用专门的录屏软件来完成。比如我最近找到的这4款工具,录制的视频效果好,操作还方…...

2025浙江省考报名流程详细教程

2025年浙江省考报名马上就要开始了,有想要参加浙江省考的同学,可以提前看一下报名流程,和报名照要求。 报名时间:11月6日9时一11月11日17时 南核时间:11月6日9时一11月13日17时 缴费时间:11月14日9时一11月…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

WEB3全栈开发——面试专业技能点P7前端与链上集成

一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染&#xff08;SSR&#xff09;与静态网站生成&#xff08;SSG&#xff09; 框架&#xff0c;由 Vercel 开发。它简化了构建生产级 React 应用的过程&#xff0c;并内置了很多特性&#xff1a; ✅ 文件系…...

MeshGPT 笔记

[2311.15475] MeshGPT: Generating Triangle Meshes with Decoder-Only Transformers https://library.scholarcy.com/try 真正意义上的AI生成三维模型MESHGPT来袭&#xff01;_哔哩哔哩_bilibili GitHub - lucidrains/meshgpt-pytorch: Implementation of MeshGPT, SOTA Me…...

理想汽车5月交付40856辆,同比增长16.7%

6月1日&#xff0c;理想汽车官方宣布&#xff0c;5月交付新车40856辆&#xff0c;同比增长16.7%。截至2025年5月31日&#xff0c;理想汽车历史累计交付量为1301531辆。 官方表示&#xff0c;理想L系列智能焕新版在5月正式发布&#xff0c;全系产品力有显著的提升&#xff0c;每…...

运行vue项目报错 errors and 0 warnings potentially fixable with the `--fix` option.

报错 找到package.json文件 找到这个修改成 "lint": "eslint --fix --ext .js,.vue src" 为elsint有配置结尾换行符&#xff0c;最后运行&#xff1a;npm run lint --fix...

21-Oracle 23 ai-Automatic SQL Plan Management(SPM)

小伙伴们&#xff0c;有没有迁移数据库完毕后或是突然某一天在同一个实例上同样的SQL&#xff0c; 性能不一样了、业务反馈卡顿、业务超时等各种匪夷所思的现状。 于是SPM定位开始&#xff0c;OCM考试中SPM必考。 其他的AWR、ASH、SQLHC、SQLT、SQL profile等换作下一个话题…...