簡體   English   中英

雪花 - 每次合並時會自動創建哪種類型的舞台表?

[英]Snowflake - which type of stage table is created automatically on each Merge into?

我想將 Spark DataFrame 寫入雪花表。 我正在為 Spark 使用Snowflake 連接器,並將通過 MERGE 將“查詢”選項傳遞給如下語句:

merge_query =  "merge into target_table using stage_table 
        on target_table.id = stage_table.id
        when matched then 
        update set target_table.description = stage_table.description"

df.write
    .format(SNOWFLAKE_SOURCE_NAME)
    .options(sfOptions)
    .option("query", "merge_query")
    .mode(SaveMode.Overwrite)
    .save()

我沒有任何外部源表,並且想找到一種方法來每次都覆蓋階段數據,然后將其合並到目標表中。 但我不太明白在這種情況下我應該使用哪種類型的舞台。 Snowflake 表階段的文檔沒有指定使用 MERGE INTO 時適合的類型。 我需要像 Snowflake 自動創建的臨時舞台表之類的東西。

對於上面的例子, stage_table會自動創建嗎? 如果我不想顯式創建任何階段表,它應該如何命名?

現在有自動創建任何表的方法。 您可以在程序中創建一個臨時表,然后將數據加載到該表中並進行合並。 臨時表僅對 session 可用,並且將在 session 結束時自動刪除(這意味着一旦您的工作結束)。 Session 表對任何其他會話不可見。 您可以如下創建臨時表

CREATE TEMPORARY TABLE <STG_TABLE_NAME>(FILED 1 VARCHAR, ...)

希望這對你有用。

暫無
暫無

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

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