

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

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

# Amazon Redshift 中的半結構化資料
<a name="super-overview"></a>

透過使用 Amazon Redshift 中的*半結構化資料支援*，您就可以在 Amazon Redshift 資料倉儲中擷取和儲存半結構化資料。使用 SUPER 資料類型和 PartiQL 語言，Amazon Redshift 擴展了資料倉儲功能，以與 SQL 和 NoSQL 資料來源整合。如此一來，Amazon Redshift 就能對 JSON 等關聯式和半結構化儲存資料進行有效的分析。如需 Amazon Redshift 與 PartiQL 整合的相關資訊，請參閱 [PartiQL - 適用於 Amazon Redshift 的 SQL 相容查詢語言](super-partiql.md)。

Amazon Redshift 提供兩種形式的半結構化資料支援：SUPER 資料類型和 Amazon Redshift Spectrum。

您可以透過將半結構化資料擷取至 Amazon Redshift 並以 SUPER 資料類型儲存的方式，來查詢半結構化資料，或使用 Amazon Redshift Spectrum 查詢儲存在 Amazon S3 中的資料。

## 使用半結構化資料的最佳實務
<a name="super-best-practices"></a>

使用半結構化資料時，請考慮下列最佳實務。
+  建議您在使用 SUPER 資料時，將 `enable_case_sensitive_super_attribute` 和 `enable_case_sensitive_identifier` 組態選項設定為 true。如需詳細資訊，請參閱[enable\_case\_sensitive\_super\_attribute](r_enable_case_sensitive_super_attribute.md)及[enable\_case\_sensitive\_identifier](r_enable_case_sensitive_identifier.md)。
+  使用 COPY 命令從 Amazon S3 儲存貯體將資料載入 Amazon Redshift SUPER 欄。
+  使用 PartiQL 動態輸入和寬鬆的語義來對 SUPER 資料值執行臨機查詢，而不需在查詢之前施加結構描述。如需動態輸入的相關資訊，請參閱 [動態類型](query-super.md#dynamic-typing-lax-processing)。如需寬鬆語義的相關資訊，請參閱 [寬鬆的語義](query-super.md#lax-semantics)。
+  如果您打算經常查詢資料，請使用 PartiQL 將無結構和半結構化資料分解成具體化視觀表。當您對分解資料執行分析時，Amazon Redshift 具體化視觀表的單欄式組織可提供更好的效能。此外，需要擷取資料的傳統結構描述的使用者和商業智慧 (BI) 工具可以使用檢視 (無論是具體化或虛擬化) 做為傳統的資料結構描述呈現方式。

  在 PartiQL 具體化視觀表將 JSON 或 SUPER 中的資料擷取到傳統的資料欄式具體化視觀表之後，您可以查詢具體化視觀表。如需具體化視觀表的相關資訊，請參閱 [Amazon Redshift 中的具體化視觀表](materialized-view-overview.md)。如需 SUPER 資料類型如何與具體化視觀表搭配運作的相關資訊，請參閱[SUPER 資料類型和具體化視觀表](r_SUPER_MV.md)。

## SUPER 資料類型使用的概念
<a name="super-overview-concepts"></a>

接下來，您可以找到一些 Amazon Redshift SUPER 資料類型概念。

**了解 Amazon Redshift 中的 SUPER 資料類型是什麼** - *SUPER* 資料類型是一種 Amazon Redshift 資料類型，可儲存無結構描述陣列和包含 Amazon Redshift 純量以及可能巢狀陣列和結構的結構。SUPER 資料類型原本即可儲存不同格式的半結構化資料，例如 JSON 或來自文件導向來源的資料。您可以新增 SUPER 欄來儲存半結構化資料，並撰寫存取 SUPER 欄的查詢，以及一般的純量欄。如需 SUPER 資料類型的相關資訊，請參閱 [SUPER 類型](r_SUPER_type.md)。

**將無結構描述 JSON 擷取到 SUPER** - 透過靈活的半結構化 SUPER 資料類型，Amazon Redshift 可以接收無結構描述 JSON 並將其擷取到 SUPER 資料類型的欄。例如，您可以使用 COPY 命令，將 JSON 值 `[10.5, “first”]` 擷取至 SUPER 資料類型欄。欄會保留 SUPER 值 `[10.5, ‘first’]`。您也可以使用 [JSON\_PARSE 函數](JSON_PARSE.md) 擷取 JSON。預設情況下，COPY 和 `json_parse` 都使用嚴格的剖析語義來擷取 JSON。您還可以使用資料庫資料本身來建構 SUPER 值，包括陣列和結構。

在擷取彈性結構的無結構描述 JSON 時，SUPER 欄不需要修改結構描述。例如，在分析點擊流時，您最初將具有屬性「IP」和「時間」的「點擊」結構儲存在 SUPER 欄中。您可以在不變更結構描述的情況下新增屬性「customer id」，以擷取此類變更。

SUPER 資料類型所使用的原生格式是二進位格式，與文字形式的 JSON 值相比，它所需的空間較少。如此可在查詢時加快 SUPER 值的擷取和執行期處理速度。

**使用 PartiQL 查詢 SUPER 資料** – PartiQL 是 SQL-92 的回溯相容延伸，許多 AWS 服務目前使用。透過使用 PartiQL，熟悉的 SQL 建構模組可以順暢地結合對傳統表格式 SQL 資料和 SUPER 的半結構化資料的存取。您可以執行物件和陣列導覽以及解除巢狀化陣列。PartiQL 擴展了標準 SQL 語言，以宣告方式表達和處理巢狀和多值資料。

PartiQL 是 SQL 的擴充功能，其中 SUPER 欄的巢狀和無結構描述資料是一流的公民。PartiQL 不要求在查詢編譯時對所有查詢運算式進行類型檢查。這種方法可讓包含 SUPER 資料類型的查詢運算式，在存取 SUPER 欄內的實際資料類型時，在查詢執行期間以動態方式輸入。此外，PartiQL 在寬鬆模式下運作，其中類型不一致不會導致失敗，但會傳回 null。無結構描述和寬鬆查詢處理的組合使得 PartiQL 非常適合擷取、載入、轉換 (ELT) 應用程式，您的 SQL 查詢會評估擷取至 SUPER 欄的 JSON 資料。

如需適用於 Amazon Redshift 的 PartiQL 的詳細資訊，請參閱 [PartiQL - 適用於 Amazon Redshift 的 SQL 相容查詢語言](super-partiql.md)。如需動態輸入的相關資訊，請參閱 [動態類型](query-super.md#dynamic-typing-lax-processing)。如需寬鬆查詢處理的相關資訊，請參閱 [寬鬆的語義](query-super.md#lax-semantics)。

**與 Redshift Spectrum 整合** - 當透過 JSON、Parquet 和其他具有巢狀資料的格式執行 Redshift Spectrum 查詢時，Amazon Redshift 支援 PartiQL 的多個面向。Redshift Spectrum 僅支援具有結構描述的巢狀資料。例如，您可以使用 Redshift Spectrum 宣告您的 JSON 資料在結構描述 `ARRAY<STRUCT<a:INTEGER, b:DECIMAL(5,2)>>` 中具有 `nested_schemaful_example` 屬性。此屬性的結構描述決定了資料永遠包含陣列，其中包含整數 *a* 和小數 *b* 的結構。如果資料變更為包含更多屬性，類型也會變更。相反地，SUPER 資料類型不需要結構描述。您可以使用具有不同屬性或類型的結構元素來儲存陣列。此外，值可以儲存在陣列之外。

## 使用 SUPER 類型資料的考量事項
<a name="super-overview-considerations"></a>

使用 SUPER 資料時，請考慮以下事項：
+ 使用 JDBC 驅動器 2.x 版、ODBC 驅動器 2.x 版，或 Amazon Redshift Python 驅動器 2.0.872 或更新版本。不支援 ODBC 驅動器 1.x 版。

  如需 JDBC 驅動器的相關資訊，請參閱《Amazon Redshift 管理指南》**中的[設定適用於 Amazon Redshift 的 JDBC 驅動器 2.x 版的連線](https://docs.aws.amazon.com/redshift/latest/mgmt/jdbc20-install.html)。

  如需 ODBC 驅動器的相關資訊，請參閱《Amazon Redshift 管理指南》**中的[設定適用於 Amazon Redshift 的 ODBC 驅動器 2.x 版的連線](https://docs.aws.amazon.com/redshift/latest/mgmt/odbc20-install.html)。

  如需 Python 驅動器的相關資訊，請參閱《Amazon Redshift 管理指南》**中的 [Amazon Redshift Python 連接器](https://docs.aws.amazon.com/redshift/latest/mgmt/python-redshift-driver.html)。

如需 SUPER 組態的相關資訊，請參閱[SUPER 組態](super-configurations.md)。