第四篇: 用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月…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...
Chrome 浏览器前端与客户端双向通信实战
Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...
【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅
目录 前言 操作系统与驱动程序 是什么,为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中,我们在使用电子设备时,我们所输入执行的每一条指令最终大多都会作用到硬件上,比如下载一款软件最终会下载到硬盘上&am…...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...
6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙
Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...
