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

第八篇: 通过使用Google BigQuery进行数据批量和自动化处理

使用Python进行Google BigQuery数据批量和自动化处理

在大数据分析的日常工作中,定期更新、查询和处理数据是一项必不可少的任务。Google BigQuery结合Python脚本,可大幅简化这一过程。本文将介绍如何通过Python自动查询和更新BigQuery中的降水量数据,适用于需要定期获取最新信息的数据分析场景。

我们将基于Google的公共数据集中的天气降水量数据集来进行实际演示,并实现一个Python脚本自动化数据更新的示例。

数据集选择及准备

Google提供了众多免费的公共数据集,其中的“NOAA Global Surface Summary of the Day Weather Data”包含各地的历史天气信息,包括降水量。这个数据集适合我们演示批量查询和更新流程。

  1. 连接BigQuery并检查表结构:

    • 首先,确保Python已安装Google Cloud BigQuery库。使用以下命令安装BigQuery客户端库:

      pip install google-cloud-bigquery
      
    • 在脚本中导入bigquery库并设置连接。以下是基本的连接代码:

      from google.cloud import bigquery
      
      # 初始化BigQuery客户端
      client = bigquery.Client()
      
  2. 查询降水量数据

    假设我们希望获取某地最近一个月的每日降水量,可以使用SQL查询。例如,假设我们查询的是数据集中“日降水量”和“观测日期”等字段。

SELECT 
    date,
    stn,
    prcp
FROM 
    `bigquery-public-data.noaa_gsod.gsod2024` 
WHERE 
    stn = '388270'  -- 例如:某观测站
    AND prcp <> 0
    AND date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
ORDER BY 
    date

查询结果示例:

date	stn	prcp
2024-10-15	388270	99.99
2024-10-16	388270	0.12
2024-10-22	388270	99.99
2024-10-23	388270	0.24
2024-10-25	388270	0.16
2024-10-26	388270	0.47
2024-10-27	388270	99.99
  1. 在Python中自动化运行查询

    现在我们可以在Python中设置一个自动化脚本,每月初执行一次上面的查询,以获取过去一个月的降水量数据。下面的Python代码演示了如何实现自动化查询,并将查询结果存储为CSV文件。

    from google.cloud import bigquery
    import pandas as pd
    import datetime
    
    # 初始化BigQuery客户端
    client = bigquery.Client()
    
    # 编写SQL查询
    query = """
    SELECT 
     date,
     stn,
     prcp
     FROM 
         `bigquery-public-data.noaa_gsod.gsod2024` 
     WHERE 
         stn = '388270'  -- 例如:纽约某观测站
         AND prcp <> 0
         AND date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
     ORDER BY 
         date
    
    """
    
    # 执行查询并将结果存储为DataFrame
    query_job = client.query(query)  # Make an API request
    results = query_job.result().to_dataframe()  # 将结果转换为DataFrame
    
    # 保存结果到CSV
    results.to_csv("monthly_precipitation_data.csv", index=False)
    print("Data saved to monthly_precipitation_data.csv")
    

    以上脚本会将过去30天的降水量数据保存为CSV文件,每次执行时可自动更新。

    为了实现定期更新,可以将该Python脚本配置为每月自动运行一次,获取最新数据。这里我们推荐使用 cron(Linux系统)或 Task Scheduler(Windows系统),设置定期执行脚本的任务。

    在Linux上,可以添加以下cron任务,设置脚本在每月1日的凌晨运行一次:

bash
复制代码
0 0 1 * * /usr/bin/python3 /path/to/your_script.py

通过BigQuery定时任务自动化更新

Google BigQuery提供的定时任务可以让我们在云端定期运行查询并更新数据集。此方法适用于企业应用中需要更高频次的数据更新。以下是设置BigQuery定时查询的步骤:

  1. 创建定时查询:

    • 登录Google Cloud Console,转到BigQuery页面。
    • 在查询编辑器中输入SQL语句。
    • 点击“保存查询”,并选择“设置定时查询”。
  2. 配置频率和目标:

    • 设置定时任务的运行频率(例如,每天运行)。
    • 指定查询结果的存储位置,例如将结果保存到新的BigQuery表或导出到Google Cloud Storage。
      在这里插入图片描述

实际应用场景

自动化数据查询在很多实际应用中都能提升工作效率,以下是几个应用示例:

  1. 气象监测: 定期监控某地的降水量变化,生成月度降水报告。
  2. 农业分析: 结合降水量数据和土壤信息,评估作物的生长环境,辅助农业决策。
  3. 环境监控: 自动跟踪不同地区的降水数据,帮助相关部门应对极端天气事件。

通过以上内容,我们学习了如何利用Python和BigQuery对大数据进行自动化查询和批量处理,简化数据更新流程。希望本文为您提供了有用的工具和方法。


http://www.kler.cn/a/379728.html

相关文章:

  • antd-design-vue1.7.8浏览器中使用
  • 数据结构大作业——家谱管理系统(超详细!完整代码!)
  • DeepSeek:性能强劲的开源模型
  • 【MATLAB源码-第204期】基于matlab的语音降噪算法对比仿真,谱减法、维纳滤波法、自适应滤波法;参数可调。
  • unity游戏开发之--人物打怪爆材料--拾进背包的实现思路
  • 如何实现PHP安全过滤
  • AI赋能财务管理,AI技术助力企业自动化处理财务数据
  • .NET 开发人员实用NuGet 包,加快开发速度
  • 【深度学习】多分类任务评估指标sklearn和torchmetrics对比
  • 策略模式(C++)三分钟读懂
  • Naive UI 选择器 Select 的:render-option怎么使用(Vue3 + TS)(鼠标悬停该条数据的时候展示全部内容)
  • Java项目实战II基于Java+Spring Boot+MySQL的编程训练系统(源码+数据库+文档)
  • Windows密码的网络认证---基于挑战响应认证的NTLM协议
  • asynDriver-6-端口驱动
  • MQTT自动发送消息工具(自动化测试MQTT)
  • R语言贝叶斯:INLA下的贝叶斯回归、生存分析、随机游走、广义可加模型、极端数据的贝叶斯分析
  • 黑马官网最新2024前端就业课V8.5笔记---CSS篇(2)
  • 家常菜点餐|基于java和小程序的家庭大厨家常菜点餐系统设计与实现(源码+数据库+文档)
  • Socket篇(网络通信)
  • SQL与数据库
  • C++设计模式结构型模式———组合模式
  • 【系统架构设计师】2022年真题论文: 论区块链技术及应用(包括解题思路和素材)
  • Vue:模板 MVVM