SUPER 類型 - Amazon Redshift

自 2025 年 11 月 1 日起,Amazon Redshift 將不再支援建立新的 Python UDFs。如果您想要使用 Python UDFs,請在該日期之前建立 UDFs。現有的 Python UDFs將繼續如常運作。如需詳細資訊,請參閱部落格文章

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

SUPER 類型

使用 SUPER 資料類型將半結構化資料或文件儲存為值。雖然 Amazon Redshift 能夠使用 VARCHAR 儲存這類值,但我們建議您改用 SUPER 資料類型。

半結構化資料不符合 SQL 資料庫中使用的關聯式資料模型的剛性和表格式結構。它包含參考資料中不同實體的標籤。它們可以包含複雜值,例如陣列、巢狀結構,以及與序列化格式相關聯的其他複雜結構,例如 JSON。SUPER 資料類型是一組無結構描述陣列和結構值,包含 Amazon Redshift 的所有其他純量類型。

SUPER 資料類型支援個別 SUPER 物件最多 16 MB 的資料。如需 SUPER 資料類型的相關資訊,包括在資料表中的實作範例,請參閱Amazon Redshift 中的半結構化資料

Amazon Redshift 提供內建支援,可使用 COPY 命令擷取下列半結構化資料格式:

  • JSON

  • ARRAY

  • TEXT

  • CSV

大於 1MB 的 SUPER 物件只能從下列檔案格式中擷取:

  • Parquet

  • JSON

  • TEXT

  • CSV

SUPER 資料類型具有下列屬性:

  • Amazon Redshift 純量值:

    • Null

    • 布林值

    • 數字,例如 smallint、integer、bigint、decimal 或浮點數 (例如 float4 或 float8)

    • 字串值,如 varchar 或 char

  • 複雜值:

    • 值的陣列,包括純量或複雜

    • 一種結構,也稱為元組或物件,它是屬性名稱和值 (純量或複雜) 的映射

這兩種類型的複雜值中的任何一種都包含它們自己的純量或複雜值,而沒有任何正規性限制。

SUPER 資料類型的預設壓縮編碼為 ZSTD。如需壓縮編碼的詳細資訊,請參閱 壓縮編碼

SUPER 資料類型支援以無結構描述形式保留半結構化資料。儘管階層式資料模型可能會發生變化,但舊版本的資料可以共存於同一 SUPER 欄中。

Amazon Redshift 使用 PartiQL 啟用陣列和結構的導覽功能。Amazon Redshift 也會使用 PartiQL 語法來迭代 SUPER 陣列。如需詳細資訊,請參閱PartiQL – Amazon Redshift 的 SQL 相容查詢語言

Amazon Redshift 會使用動態類型來處理無結構描述的 SUPER 資料,無需在查詢中使用資料類型之前先宣告資料類型。如需詳細資訊,請參閱動態類型

您可以將動態資料遮罩政策套用至 SUPER 類型資料欄路徑上的純量值。如需動態資料遮罩的詳細資訊,請參閱 動態資料遮罩。如需將動態資料遮罩與 SUPER 資料類型搭配使用的詳細資訊,請參閱 搭配 SUPER 資料類型路徑使用動態資料遮罩

建議您在使用 SUPER 資料時,將r_enable_case_sensitive_super_attribute組態選項設定為 true。如需詳細資訊,請參閱enable_case_sensitive_super_attribute