首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GCP数据摄取体系结构

GCP数据摄取体系结构
EN

Stack Overflow用户
提问于 2022-10-21 16:17:02
回答 1查看 101关注 0票数 1

我将开始研究从CSV和数据湖中获取到BigQuery的GCP数据,我正在寻求您的建议,我可以使用哪些技术或架构。

我是GCP的新手,但我对数据工程技术有很好的理解,因为我正在为认证做准备。

我尝试使用转换成管道的数据流简单地加载BigQuery,然后调度器在特定的时间运行管道。我遇到的问题是如何将已处理的CSV文件移动到其他桶中?我可以调用函数来移动文件吗?

您所提供的任何建议或文件都将受到高度赞赏。

提前谢谢你。

你好,CarlRoy

EN

回答 1

Stack Overflow用户

发布于 2022-10-21 21:23:08

这个问题是一般性的,但我会尽力帮助你解释这些问题。

它们是应用数据摄取体系结构的许多方法。

解决方案1/ DAG与Airflow Cloud Composer的业务流程

您可以使用数据管道调度器,如AirflowGoogle Cloud中的Cloud Composer。气流使用DAG系统,Cloud Composer使用GKE集群。Airflow具有链接管道中所有任务的响应能力。

ETL示例(提取、转换、加载) :

代码语言:javascript
复制
check_csv_file_exist_input_bucket >> 
run_dataflow_job >> 
move_treaten_files_to_other_bucket

云作曲家文档

气流医生

你的Dataflow工作:

  • 从输入桶读取CSV文件
  • 应用业务规则、聚合和转换
  • 将结果写入Bigquery

Dataflow runner是无服务器的,它基于Apache Beam模型。Dataflow采用自动标度,Beam提出了一种统一的批处理和流模型。它可以用于小、中、大文件,也可以用于长时间运行的作业(超过一个小时)。Beam是由JavaPythonGO sdk共同提出的。

数据流文档

束流医生

在本例中,应用转换,然后将结果保存到Bigquery

ELT示例(提取、加载、转换) :

代码语言:javascript
复制
load_csv_inputs_file_bucket_to_staging_table_bigquery >> 
run_task_sql_transformation >> 
run_task_sql_insertion_final_table >> 
move_treaten_files_to_other_bucket

在本例中,首先将文件加载到Bigquery的暂存表中。然后用SQL进行转换。最后,在最后一个表中将结果写在Bigquery上。

Cloud Workflows -解决方案2/ DAG与的业务流程

而不是AirflowCloud Composer,您可以使用Cloud WorkflowsCloud WorkflowsAirflow一样是一个流水线调度器,但是服务是无服务器的。

云工作流文档

Airflow部件中前面的所有示例都是带有Cloud Workflows的验证。

有时,如果您的文件不是很大,并且没有长时间运行的作业(不到一个小时),您还可以考虑使用Cloud Function V2Cloud Run

所有技术都有优缺点,您必须选择最适合您的用例的服务。

我和大家分享了我写的一篇文章,其中展示了DataflowAirflowBigquery的一个用例:

用气流和数据流消除Bigquery批处理管道中的重复

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74156491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档