簡體   English   中英

一步一步設置aws ETL膠水pyspark作業指南

[英]Guide to setup aws ETL glue pyspark job by step by step

我是 AWS 管道的初學者。

輸入我每天從 ERP 接收 S3 存儲桶RAW_input中的csvs表,時間可以更改。 例如- ERP1_folder包含erp1_sales.csverp1_customer.csvERP2_folder相同。

轉換然后我們需要應用tested query (SQLsfiles are in S3)並應用mapping + structure cleaning (Glue Jobs) ,例如對存儲桶中的each表進行 int 更改、數據格式更改等,並在所需的destination設置output

目的地: Output 的queries預計在 redshift redshift tables中。 (我們已經為它准備好了集群和數據庫)。

Req我想設置一個 pyspark 粘合作業,當任何文件上傳到 S3 存儲桶時自動觸發。

問題

  1. 只有 Glue 工作才能完成input s3 trigger + mapping + cleaning等所有工作嗎?
  2. 我是否還需要在此過程中開發aws lambda function 來trigger膠水作業?
  3. job為每個selected table分配query trigger聽起來是一項艱巨的工作。
  4. 注意: AWS膠水中的clusters是手動創建的,我不知道它是否是唯一的方法。
  5. 任何參考/pyspark 的 github 代碼都會有所幫助

我不能擁有用戶secret access keys ,因此我只能通過訪問角色和策略在 AWS 服務內工作。 無需 CI/CD 解決方案

僅當您需要一些解釋時才請相關評論。

我試過:但我更喜歡在 S3 中循環遍歷不同的 Athena SQL 文件而不是類似的 ERP。 例如 erp000.sql 運行 erp000.csv 並將數據發送到 redshift

from pyspark.context import SparkContext
from awsglue.context import GlueContext
from pyspark.sql import SQLContext

sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session

# EXTRACT: Reading parquet data
df = spark.read.format("csv").load('s3://<bucket_name>/<file_path>/<file_name>.csv')

# TRANSFORM: some transformation
df = df.distinct()

# LOAD: write data to Redshift
df.write.format("jdbc").\
    option("url", "jdbc:redshift://<host>:5439/<database>").\
    option("dbtable", "<table_schema>.<table_name>").\
    option("user", "<username>").\
    option("password", "<password>").\
    mode('overwrite').save()
    
print("Data Loaded to Redshift")

我將嘗試直接回答您的問題:

只有Glue作業才能完成輸入s3觸發器+映射+清洗等所有工作嗎?

觸發器按需或在特定時間啟動 ETL 作業執行。

我是否還需要在此過程中開發 aws lambda function 來觸發膠水作業?

沒有

按作業為每個選定表分配查詢觸發器聽起來是一項艱巨的工作。

最終表格到位后,您可以創建 Glue 作業,它可以按計划、觸發器或按需運行。 作業是執行 ETL 任務的業務邏輯。 因此,您根據選擇的表創建作業,而不是每個表的作業。

AWS 膠水中的集群是手動創建的,我不知道它是否是唯一的方法。

AWS Glue 只是一個無服務器 ETL 工具,您不需要管理集群,也不需要手動創建集群。

任何參考/pyspark 的 github 代碼都會有所幫助

https://aws.amazon.com/glue/getting-started/ https://docs.aws.amazon.com/glue/index.html https://docs.aws.amazon.com/glue/latest/dg /觸發作業.html

暫無
暫無

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

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