从树莓派CSV文件到BigQuery表的数据流



我有一些由树莓pi生成的CSV文件,需要推送到bigquery表中。

目前,我们有一个使用bigquery的python脚本。LoadJobConfig用于批量上传,我手动运行它。目标是以一种简单的方式(或每15分钟(提供流式数据。

我探索了不同的解决方案:

  1. 使用气流运行python脚本(高复杂性和维护性(
  2. 数据流(我不熟悉它,但如果它能完成任务,我会使用它(
  3. 安排管道通过GitLab CI运行脚本(cron语法:*/15***(

您能帮助我并向我建议实时或每15分钟将CSV文件推送到bigquery表中的最佳方法吗?

好消息,您有很多选择!也许最简单的方法是自动化您当前拥有的python脚本,因为它可以满足您的需要。假设你在本地机器上手动运行它,你可以将它上传到谷歌云上的轻量级虚拟机,在虚拟机上使用CRON来自动运行它,我过去使用过这种方法,效果很好。

另一种选择是将Python代码部署到Google Cloud Function,这是一种让GCP运行代码而不必担心维护后端资源的方法。

点击此处了解有关云功能的更多信息:https://cloud.google.com/functions

第三个选项,取决于.csv文件的生成位置,也许您可以使用BigQuery Data Transfer服务来处理导入BigQuery的操作。

点击此处了解更多信息:https://cloud.google.com/bigquery/docs/dts-introduction

祝你好运!

添加到@Ben的答案中,您还可以实现Cloud Composer来编排此工作流。它建立在Apache Airflow上,您可以使用Airflow本地工具,如功能强大的Airflow web界面和命令行工具、Airflow调度器等,而无需担心您的基础设施和维护。

您可以将DAG实现为

  • 将CSV从本地上传到GCS,然后
  • GCS到BQ使用GCSToBigQueryOperator

有关Cloud Composer 的更多信息

最新更新