簡體   English   中英

將流數據插入 Amazon Redshift 集群

[英]Inserting streaming data into an Amazon Redshift cluster

我正在嘗試將 sparkstream 數據直接插入 Amazon Redshift 集群,但無法找到正確的方法。

下面是我得到的代碼,但它首先插入到 S3,然后復制到 Redshift:。

#REDSHIFT_JDBC_URL = "jdbc:redshift://%s:5439/%s" % (REDSHIFT_SERVER, DATABASE)

df.write \
    .format("com.databricks.spark.redshift") \
    .option("url", REDSHIFT_JDBC_URL) \
    .option("dbtable", TABLE_NAME) \
    .option("tempdir", "s3n://%s:%s@%s" % (ACCESS_KEY, SECRET, S3_BUCKET_PATH)) \
    .mode("overwrite") \
    .save()

它會影響流式傳輸或插入性能嗎?

或者有其他方法可以做到嗎?

您正在使用的Spark的Redshift數據源通過將數據寫入S3上的臨時文件來將數據寫入Redshift,然后使用Redshift COPY命令將數據加載到Redshift中。 COPY命令要求數據在S3上的文件中,這是將數據加載到Redshift的最有效方式,因此您的代碼當前正在執行的操作似乎是正確的。

另請參閱: https : //databricks.com/blog/2015/10/19/introducing-redshift-data-source-for-spark.html

AWS Redshift 現在支持通過 Kinesis Data Streams 本地流式插入。 無需中間 S3 分期。 功能現已公開預覽

https://aws.amazon.com/about-aws/whats-new/2022/02/amazon-redshift-public-preview-streaming-ingestion-kinesis-data-streams/

暫無
暫無

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

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