7-day Redshift log cap lifted in August 2026, with no default retention policy

Redshift system tables can now outlive 7 days via S3 Tables, but the default retention is indefinite and billed at $0.0265 per GB-month.

Read time
11 min
Word count
1.7K
Sections
11
FAQs
7
Share
Amazon Redshift system table retention via S3 Tables, August 2026
On this page · 11 sections
  1. What AWS actually shipped
  2. The contradiction that costs money
  3. What it costs when nobody sets an expiry
  4. Which seven days, exactly
  5. The things that are genuinely hard to undo
  6. The privacy problem nobody flagged
  7. What to do this week
  8. What is still unknown
  9. FAQ
  10. How eCorpIT can help
  11. References

Summary. On 20 August 2026 AWS announced long-term retention for Amazon Redshift system tables, writing roughly 28 SYS_* views into Amazon S3 Tables in Apache Iceberg format. The announcement says AWS "manages partitioning, compaction, and retention." The Redshift management guide says the opposite: "Redshift does not define a retention policy for the data it delivers to S3 Tables," and "if you do not configure an expiration policy, data is kept indefinitely." Delivery is free. Storage is not, at $0.0265 per GB-month for the first 50 TB, plus $0.025 per 1,000 objects monitored and $0.002 per 1,000 objects compacted. Eight of the supported views return no data at all below patch P203.

What AWS actually shipped

The AWS What's New post, dated 20 August 2026, describes a native integration that lets you "configure your Redshift system table data retention beyond the current 7-day limit to meet your compliance, auditing, and observability requirements." Before this, the documented path was manual: the Redshift developer guide still tells readers that "you have to periodically copy log data to other tables or unload it to Amazon S3 to keep log data that's more than 7 days old."

Teams did exactly that. The awslabs/amazon-redshift-utils repository has carried a System Table Persistence utility since a 2016 copyright header, now at version 1.6, which creates seven history tables, runs UNLOAD statements to S3 and then issues delete from history.<table> where ... to prune what it copied. That utility is the operational overhead AWS says it is removing.

When you enable the feature, Redshift creates an S3 table bucket named aws-redshift in your account and begins writing. Per the Big Data blog post published the same day, "the feature supports over 25 system views at launch." The management guide enumerates 28.

The contradiction that costs money

Three AWS surfaces describe retention. Two of them are wrong.

Source What it says about retention Published
What's New announcement AWS "manages partitioning, compaction, and retention" 20 Aug 2026
Big Data blog "AWS handles partitioning, compression, and retention management automatically" 20 Aug 2026
Redshift management guide "Redshift does not define a retention policy for the data it delivers to S3 Tables" undated
Redshift management guide "If you do not configure an expiration policy, data is kept indefinitely" undated
S3 Tables user guide Compaction "occurs on an automated schedule" and "will incur additional costs" undated

A feature sold as long-term retention ships with no retention. If you enable it and configure nothing else, you have replaced a bounded 7-day window with an unbounded, growing Iceberg dataset that bills monthly and never stops. The record expiration policy is yours to set, through the S3 Tables API, and nothing in the enablement path forces you to set it.

The second contradiction is smaller but will catch people: the announcement enumerates 29 named Regions, while the management guide says the feature is available "in all AWS commercial Regions where Redshift and S3 Tables are supported." Canada West (Calgary) and Asia Pacific (New Zealand) appear in neither list.

What it costs when nobody sets an expiry

Delivery is genuinely free. The management guide is explicit: "Writing system table data to S3 Tables is free. You are charged for standard S3 Tables storage and maintenance for the retained data, and for the query engine you use to read the data." The charges live in S3 pricing, and there are four of them, not one.

Charge Rate (US East, Aug 2026) Applies when
S3 Tables Standard storage $0.0265 per GB-month, first 50 TB Always, and forever without an expiry policy
Object monitoring $0.025 per 1,000 objects Per object stored in table buckets
Compaction (binpack) $0.002 per 1,000 objects and $0.005 per GB processed Enabled by default on every table
PUT / GET requests $0.005 and $0.0004 per 1,000 requests On write and on every query

Compaction is the line item that surprises finance. The S3 user guide states plainly that "if you want to prevent charges associated with compaction you can manually disable it for a table using the PutTableMaintenanceConfiguration API operation," with a default target file size of 512 MB configurable between 64 MB and 512 MB. The Redshift guide lists the same compaction as a benefit "handled automatically by S3 Tables." Both are true. Only one of them appears on the invoice.

Snapshot maintenance carries its own defaults you did not choose: MinimumSnapshots is 1, MaximumSnapshotAge is 120 hours, unreferencedDays is 3 days and nonCurrentDays is 10 days. The S3 guide warns that "deletes of noncurrent objects are permanent with no way to recover these objects. To view or recover objects that has been marked as noncurrent you must contact AWS Support."

Which seven days, exactly

The announcement says the "current 7-day limit." The only AWS page that states a seven-day figure for system tables is the STL documentation: "STL system views retain seven days of log history. Log retention is guaranteed for all cluster sizes and node types." But STL views are not in the supported set. Every one of the 28 supported views is a SYS_* view, and the monitoring views documentation states no retention period at all. The nearest published figure sits on a console page describing a "seven-day query history."

The practical consequence is that you cannot reason about what you are gaining from the announcement alone. You have to open the supported-view list and check each one against what your dashboards actually read.

Eight views are worse than that. SYS_CHILD_QUERY_TEXT, SYS_COPY_REPLACEMENTS, SYS_EXTERNAL_QUERY_ERROR, SYS_PROCEDURE_MESSAGES, SYS_QUERY_DETAIL, SYS_QUERY_EXPLAIN, SYS_SPATIAL_SIMPLIFY and SYS_UNLOAD_DETAIL "require patch P203 or later." Below that patch, the guide says, "the tables are created with the correct schema but contain no data until the data warehouse is updated to P203 or later." Empty tables with correct schemas are the worst possible failure mode for an audit trail, because every dashboard and every compliance query returns zero rows and no error.

The things that are genuinely hard to undo

Two design decisions deserve attention before anyone enables this in production.

The encryption key is permanent. "You cannot change the key after S3 Tables are created. To change the key, disable the feature, drop the S3 Tables using the S3 Tables API (this permanently deletes retained data), and then re-enable the feature with the new key." A key rotation policy that assumes you can re-key in place will destroy the archive it was meant to protect.

There is no backfill, in any direction. "Switching deployment patterns, disabling and re-enabling, or removing and re-adding a system table does not backfill historical data." Turn it off for a week to control cost and that week is gone permanently, which is the exact gap an auditor will ask about.

Querying is also not free of setup. The S3 Tables query documentation requires that "before querying S3 Tables from Amazon Redshift, you must integrate S3 Tables with AWS Glue Data Catalog," and that you "must create a resource link in AWS Glue Data Catalog." Reading across more than one warehouse needs a UNION, per the AWS blog. If you are already choosing between open table formats, the Apache Iceberg and Delta Lake trade-offs apply here too, because the archive is Iceberg whether you wanted Iceberg or not.

The privacy problem nobody flagged

The management guide notes that "some system tables (such as SYS_QUERY_TEXT and SYS_PROCEDURE_MESSAGES) can capture literal values from your queries and stored procedures." The developer guide is blunter about the older equivalents: "STL_QUERY and STL_QUERY_TEXT contain the full text of INSERT, UPDATE, and DELETE statements, which might contain sensitive user-generated data."

Under a 7-day window, that exposure aged out on its own. Under indefinite retention it does not. Any personal data that appears as a literal in a query is now in an Iceberg table that persists until someone sets an expiry policy, and deleting a single subject's data from a compacted Iceberg archive is a materially harder job than waiting a week.

Indian teams should treat this as a Digital Personal Data Protection Act 2023 question, not a cost question. Enabling indefinite retention on views that capture query literals creates a new storage location for personal data with its own erasure obligations. The safe default is to set a record expiration policy at enablement time, sized to the retention period your policy actually requires, and to exclude the literal-capturing views unless you have a specific reason to keep them.

What to do this week

Set the expiration policy in the same change that enables the feature, never after. Confirm your warehouse is on patch P203 or later before you trust any of the eight affected views. Decide on compaction deliberately, because it is on by default and billed by objects and bytes processed. Choose the encryption key as though you can never change it, because you cannot. And exclude SYS_QUERY_TEXT and SYS_PROCEDURE_MESSAGES unless you have reviewed what literals your workload writes into them.

The real cost here is not the storage rate. It is that a bounded, self-cleaning 7-day window has been replaced by an unbounded one, and the announcement says the opposite. Teams tightening AWS spend will recognise the pattern from AWS Cost Anomaly Detection's own docs conflict, and the underlying storage rates are the same ones covered in S3 and cross-cloud storage pricing. For Indian teams running this alongside a broader spend review, it belongs in the same pass as cloud FinOps for Indian teams.

What is still unknown

AWS has not published a per-view estimate of daily bytes written, so nobody can size the bill in advance without enabling the feature and measuring. The two AWS pages describing when snapshot management fails also disagree: one says setting history.expire.max-snapshot-age-ms as an Iceberg table property breaks snapshot management "regardless of the configured value," while the considerations page says it breaks only when the configured retention is longer than the value set through PutTableMaintenanceConfiguration. Until that is reconciled, do not set Iceberg history properties on these tables by hand.

FAQ

How eCorpIT can help

Our senior engineering teams size and configure Redshift observability archives so retention, compaction and encryption decisions are made once, deliberately, rather than discovered on an invoice. We design data platforms aligned with DPDP Act 2023 requirements, including expiry policies on views that capture query literals. eCorpIT is CMMI Level 5, MSME Certified and ISO 27001:2022 certified. Talk to us through /contact-us/ or read more about our data engineering services.

References

  1. Amazon Redshift introduces long-term system table retention with Amazon S3 Tables integration - AWS What's New, 20 August 2026.
  1. Long-term system tables retention in Amazon Redshift with Amazon S3 Tables - AWS Big Data Blog, 20 August 2026.
  1. System table retention with S3 Tables - Amazon Redshift Management Guide.
  1. STL views for logging - Amazon Redshift Developer Guide.
  1. System tables and views reference - Amazon Redshift Developer Guide.
  1. Query Amazon S3 Tables from Amazon Redshift - Amazon Redshift Developer Guide.
  1. Amazon S3 pricing - Amazon Web Services.
  1. S3 Tables maintenance - Amazon S3 User Guide.
  1. S3 table bucket maintenance - Amazon S3 User Guide.
  1. S3 Tables considerations and limitations - Amazon S3 User Guide.
  1. Database audit logging - Amazon Redshift Management Guide.
  1. Monitoring views - Amazon Redshift Developer Guide.
  1. amazon-redshift-utils System Table Persistence - awslabs, GitHub.

Last updated: 21 August 2026.

Frequently asked

Quick answers.

01 Does AWS manage retention for Redshift system tables in S3 Tables?
No. The What's New post says AWS manages retention, but the Redshift management guide states that Redshift does not define a retention policy for data it delivers to S3 Tables. If you do not configure a record expiration policy through S3 Tables yourself, the guide says data is kept indefinitely and billed monthly.
02 What does long-term Redshift system table retention cost?
Delivery from Redshift to S3 Tables is free. You pay S3 Tables Standard storage at $0.0265 per GB-month for the first 50 TB, object monitoring at $0.025 per 1,000 objects, binpack compaction at $0.002 per 1,000 objects plus $0.005 per GB processed, and standard PUT and GET request charges on top.
03 Which system views does the feature support?
The Redshift management guide enumerates 28 SYS_* views, while the AWS Big Data blog says "over 25 system views at launch." STL views are not included. Eight of the 28 require patch P203 or later, and below that patch they are created with correct schemas but contain no data.
04 Can I change the encryption key later?
No. The management guide states you cannot change the key after the S3 Tables are created. Changing it requires disabling the feature, dropping the S3 Tables through the S3 Tables API, which permanently deletes all retained data, and then re-enabling the feature with the new key.
05 Will disabling the feature temporarily lose data?
Yes, permanently. AWS documentation states that switching deployment patterns, disabling and re-enabling, or removing and re-adding a system table does not backfill historical data. Any period during which the feature is off produces a permanent gap in the archive that cannot be recovered afterwards.
06 What do I need before I can query the retained data?
You must integrate the S3 table bucket with AWS Glue Data Catalog and create a resource link there before querying from Redshift. One documented query method additionally requires federated access to Spectrum enabled on the cluster. Querying data from more than one warehouse requires a UNION operation across them.
07 Does this create a data protection problem?
It can. AWS documents that some system tables, including SYS_QUERY_TEXT and SYS_PROCEDURE_MESSAGES, capture literal values from queries and stored procedures. Under the previous 7-day window those literals aged out automatically. Under indefinite retention they persist, which creates new erasure obligations under India's DPDP Act 2023.

About the author

Manu Shukla

Founder & Director

Founder of eCorpIT. Hands-on engineer leading senior-only delivery for AI apps, custom software, and cloud systems for global clients.

Subscribe

One engineering note a week. No fluff, no spam.

Senior-architect playbooks on AI agents, mobile apps, cloud, security, data, and marketing — delivered every Wednesday.

Past the reading

Read enough. Let's build something.

A senior architect responds in 24 working hours with scope, indicative cost, and a timeline. NDA before any technical conversation.