簡體   English   中英

Google Cloud Platform數據ETL批處理:雲功能數據流

[英]Google Cloud Platform Data ETL Batch Processing: Cloud Function Dataflow

我以數據工程師的身份進入新公司,致力於構建Google雲平台(GCP)批處理ETL管道。 我團隊的數據科學家最近給我傳遞了一個數據模型(用python 3.6編寫的.py文件)。

數據模型具有一個主要函數,我可以調用該函數並獲取一個數據框作為輸出,我打算將此數據框附加到bigquery表中。 無論如何,我可以導入這個主要功能並將其使用apache beam(Dataflow)集成到管道中,而不必將數據模型重新編碼為PTransform嗎? 還是僅使用雲調度程序和雲功能來實現我想要的效果會更好?

我是數據流和apache Beam的入門者,因此,對您的幫助或指向指南的鏈接將不勝感激!

您可以利用BigQuery與Pandas的內置集成,而不必將其轉換為CSV文件並將其加載到BigQuery中(這是一個較長且可能成本更高的過程):

import pandas

df = pandas.DataFrame(
{
    'my_string': ['a', 'b', 'c'],
    'my_int64': [1, 2, 3],
    'my_float64': [4.0, 5.0, 6.0],
}
)
full_table_id = 'my_dataset.new_table'
project_id = 'my-project-id'

df.to_gbq(full_table_id, project_id=project_id)

在管道編排方面,我個人喜歡與Cloud Composer很好集成的Apache Airflow

編輯:查看有關df.to_gbq的大量文檔 ,以更好地控制如何加載數據框。

如果您有數據框,最簡單的方法是將其轉換為CSV ,然后將其加載到BigQuery中(加載作業)

不要忘記添加job_config.write_disposition = 'WRITE_APPEND'將數據添加到現有表中。 查看其他參數,即模式自動檢測,CSV分隔符,跳過前導行可以幫助您實現負載。

在由調度程序觸發的函數或“雲運行”中執行此操作。 效果很好!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM