Redshift can store 16 MB strings in SUPER—but enabling it changes more than JSON ingestion
The new limit is opt-in, provisioned clusters must reboot, and VARCHAR(MAX) still means two different things depending on context.
Amazon Redshift now supports individual strings up to 16,000,000 bytes inside the SUPER data type, replacing the previous 65,535-byte ceiling when customers opt in. AWS says the larger limit applies to JSON, Parquet, text and CSV ingestion and to ELT operations, and that functions including JSON_PARSE, CONCAT and LISTAGG can accept and return strings up to the new ceiling. The launch is available in every region where Redshift runs, including AWS GovCloud (US). (AWS launch)
This is a cluster behavior switch, not a wider table column
The feature is controlled by the enable_large_strings_opt_in database parameter. Its default is “not set,” which preserves the cluster’s existing behavior; setting it to Yes raises the limit for strings in SUPER and for in-memory string operations, while No keeps the 65,535-byte limit. Provisioned clusters must reboot before a parameter change takes effect. Administrators can verify the active state with SELECT is_large_string_enabled();. (Redshift parameter reference)
The most important compatibility detail is VARCHAR(MAX). With the option enabled, VARCHAR(MAX) resolves to VARCHAR(16000000) in expression contexts such as casts, views, UDFs and stored procedures. But CREATE TABLE ... VARCHAR(MAX) still creates a VARCHAR(65535) column. A pipeline can therefore successfully manipulate a value in memory and still fail or truncate at a destination designed around the old table-column limit unless its schema is reviewed separately. (Redshift parameter reference)
Roll out with an explicit reversal plan
AWS documents one more operational wrinkle: after the parameter is explicitly set to Yes or No, it cannot be reset to the default “not set” state. Resetting it through ResetClusterParameterGroup preserves the original value rather than restoring the unset default. Teams should record the pre-change state, test representative ingestion and string-function workloads, inspect downstream column definitions, and decide in advance whether rollback means explicitly selecting No. (Redshift parameter reference)
The practical win is straightforward: lengthy documents such as contracts and terms can remain inside semi-structured records instead of requiring pre-load splitting or transformation. The operational lesson is equally straightforward: treat this as a database-behavior migration, not merely a larger JSON field. (AWS launch)
sources
comments · 0