簡體   English   中英

從 GCS 導入 csv 文件並使用 Dataflow 進行轉換,然后使用 Airflow 傳感器接收到 BigQuery

[英]Import csv files from GCS and transform using Dataflow then sink to BigQuery using Airflow sensors

我是 Cloud Composer 的新手。 My use case is: There are several files type in GCS like json, csv, txt,.. but I only want to select csv file, use Dataflow in Python to transform them (such as rename fields,...), then write它到 BigQuery。 主要要求是使用 Airflow 傳感器在將新的 csv 文件導入 GCS 時觸發它們。

有誰知道如何使用Cloud Composer 編寫它-Airflow 傳感器(此處沒有雲 function):GCS(僅 csv 文件)-數據流-BigQuery

對於Airflow傳感器,可以使用google cloud airflow sensor for GCS來檢測GCS文件夾中是否有新文件。

對於處理部分,您可以使用ReadFromText並確保只選擇 CSV 文件。 如果您只需要處理新的 CSV 文件,則可以將傳感器檢測到的新文件列表作為參數傳遞給數據流作業。

對於 composer 的數據流作業,我建議在 flex 模板中構建您的作業,然后您可以使用DataflowStartFlexTemplateOperator從 composer 觸發 flex 模板。 下面是一個關於如何使用它的例子:

my_dataflow_job = DataflowStartFlexTemplateOperator(
        location="europe-west1",
        task_id="my-task-id",
        body={
            "launchParameter": {
                "containerSpecGcsPath": "gcs_path_to_the_flex_template_json_path",
                "jobName": "my-job-name",
                "environment": {
                    "serviceAccountEmail": "xxx",
                },
                "parameters": {
                    "key": "val",
                    "key" : "val"
                },
            }
        },
    )

對於 BigQuery 的保存部分,它應該是您數據流工作的一部分

暫無
暫無

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

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