簡體   English   中英

使用 python 標准方法將數據從 S3 加載到 AWS RDS Postgres?

[英]Using python, standard approach to load data from S3 to AWS RDS Postgres?

根據這些 AWS Amazon RDS 文檔,AWS 似乎提供了一個aws_s3 PostgreSQL 擴展,用於將數據從 S3 傳輸到 RDS 中的 Postgres。

我們正在使用氣流來編排我們的數據攝取管道,如果這里有一個 Python 解決方案就太好了。 我對 PostgreSQL 幾乎沒有經驗,而且我從未使用過任何 PostgreSQL 擴展,並且能夠使用 python 移動數據對我們有很大幫助。 目前,我們正在避免使用 AWS 工具,例如AWS Data PipelineAWS Glue ,而是使用 Python 和氣流構建我們自己的架構。

作為參考,我們的 GCP 架構使用 Python 將數據從 GCS 提取到 BigQuery 中具有以下內容:

from google.cloud import bigquery

# create BiqQuery client object + load job config
client = bigquery.Client()
job_config = bigquery.LoadJobConfig(
    schema=None, # autodetech for now
    source_format=bigquery.SourceFormat.NEWLINE_DELIMITED_JSON, # use ndjson
    write_disposition=bigquery.WriteDisposition.WRITE_APPEND, # append to existing
    autodetect=True
)
    
# and load into Bigquery
table_id = "our_gcp_project.our_model.our_table"
gcs_uri = "gs://our_bucket/path-to-our/file.json"
load_job = client.load_table_from_uri(gcs_uri, table_id, job_config=job_config) # location="US"  # Make an API request.
load_job.result()  # Waits for the job to complete

# check for success
destination_table = client.get_table(table_id)
print("Loaded {} rows.".format(destination_table.num_rows))

我們非常希望將此代碼從 GCS/BigQuery 移植到 S3/Postgres RDS,並希望朝着正確的方向開始。

您可以在 PostgreSQL 中選擇調用 Lambda 函數。

PostgreSQL-Lambda

Lambda 運行時可以設置為使用 Python,您可以使用 Boto3 庫從 Lambda 訪問 AWS 服務(如 S3)。

博托3

請注意 Lambda 的限制,例如最長 15 分鍾的運行時間和有效負載大小。

Lambda 限制

此外,在創建需要訪問數據庫的 Lambda 時,您需要創建一個層,其中包含可以分配給 Lambda 的驅動程序。

Lambda 層

暫無
暫無

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

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