我将开始研究从CSV和数据湖中获取到BigQuery的GCP数据,我正在寻求您的建议,我可以使用哪些技术或架构。
我是GCP的新手,但我对数据工程技术有很好的理解,因为我正在为认证做准备。
我尝试使用转换成管道的数据流简单地加载BigQuery,然后调度器在特定的时间运行管道。我遇到的问题是如何将已处理的CSV文件移动到其他桶中?我可以调用函数来移动文件吗?
您所提供的任何建议或文件都将受到高度赞赏。
提前谢谢你。
你好,CarlRoy
发布于 2022-10-21 21:23:08
这个问题是一般性的,但我会尽力帮助你解释这些问题。
它们是应用数据摄取体系结构的许多方法。
解决方案1/ DAG与Airflow Cloud Composer和的业务流程
您可以使用数据管道调度器,如Airflow和Google Cloud中的Cloud Composer。气流使用DAG系统,Cloud Composer使用GKE集群。Airflow具有链接管道中所有任务的响应能力。
ETL示例(提取、转换、加载) :
check_csv_file_exist_input_bucket >>
run_dataflow_job >>
move_treaten_files_to_other_bucket你的Dataflow工作:
BigqueryDataflow runner是无服务器的,它基于Apache Beam模型。Dataflow采用自动标度,Beam提出了一种统一的批处理和流模型。它可以用于小、中、大文件,也可以用于长时间运行的作业(超过一个小时)。Beam是由Java、Python和GO sdk共同提出的。
在本例中,应用转换,然后将结果保存到Bigquery
ELT示例(提取、加载、转换) :
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与的业务流程
而不是Airflow和Cloud Composer,您可以使用Cloud Workflows。Cloud Workflows和Airflow一样是一个流水线调度器,但是服务是无服务器的。
Airflow部件中前面的所有示例都是带有Cloud Workflows的验证。
有时,如果您的文件不是很大,并且没有长时间运行的作业(不到一个小时),您还可以考虑使用Cloud Function V2或Cloud Run。
所有技术都有优缺点,您必须选择最适合您的用例的服务。
我和大家分享了我写的一篇文章,其中展示了Dataflow、Airflow和Bigquery的一个用例:
https://stackoverflow.com/questions/74156491
复制相似问题