This is an automated email from the ASF dual-hosted git repository. github-bot pushed a commit to branch asf-site in repository https://gitbox.apache.org/repos/asf/polaris.git
The following commit(s) were added to refs/heads/asf-site by this push: new 51ea96d19 deploy: 3d2a42aa1ecf1d1a4e43de8387b665451ea24bb6 51ea96d19 is described below commit 51ea96d1978ae8c658fd457f83b3c322c71f312c Author: singhpk234 <singhpk...@users.noreply.github.com> AuthorDate: Tue May 13 23:52:50 2025 +0000 deploy: 3d2a42aa1ecf1d1a4e43de8387b665451ea24bb6 --- .../system/data-compaction/2025-02-03.json | 39 +++++++++++++++++ .../system/metadata-compaction/2025-02-03.json | 37 ++++++++++++++++ .../system/orphan-file-removal/2025-02-03.json | 50 ++++++++++++++++++++++ .../system/snapshot-expiry/2025-02-03.json | 39 +++++++++++++++++ 4 files changed, 165 insertions(+) diff --git a/schemas/policies/system/data-compaction/2025-02-03.json b/schemas/policies/system/data-compaction/2025-02-03.json new file mode 100644 index 000000000..f222d7c19 --- /dev/null +++ b/schemas/policies/system/data-compaction/2025-02-03.json @@ -0,0 +1,39 @@ +{ + "license": "Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)", + "$id": "https://polaris.apache.org/schemas/policies/system/data-compaction/2025-02-03.json", + "title": "Data Compaction Policy", + "description": "Inheritable Polaris policy schema for Iceberg table data compaction", + "type": "object", + "properties": { + "version": { + "type": "string", + "const": "2025-02-03", + "description": "Schema version" + }, + "enable": { + "type": "boolean", + "description": "Enable or disable data compaction." + }, + "config": { + "type": "object", + "description": "A map containing custom configuration properties. Please note that interoperability is not guaranteed.", + "additionalProperties": { + "type": ["string", "number", "boolean"] + } + } + }, + "required": ["enable"], + "additionalProperties": false, + "examples": [ + { + "version": "2025-02-03", + "enable": true, + "config": { + "target_file_size_bytes": 134217728, + "compaction_strategy": "bin-pack", + "max-concurrent-file-group-rewrites": 5, + "key1": "value1" + } + } + ] +} diff --git a/schemas/policies/system/metadata-compaction/2025-02-03.json b/schemas/policies/system/metadata-compaction/2025-02-03.json new file mode 100644 index 000000000..d99dc396c --- /dev/null +++ b/schemas/policies/system/metadata-compaction/2025-02-03.json @@ -0,0 +1,37 @@ +{ + "license": "Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)", + "$id": "https://polaris.apache.org/schemas/policies/system/metadata-compaction/2025-02-03.json", + "title": "Metadata Compaction Policy", + "description": "Inheritable Polaris policy schema for Iceberg table metadata compaction", + "type": "object", + "properties": { + "version": { + "type": "string", + "const": "2025-02-03", + "description": "Schema version" + }, + "enable": { + "type": "boolean", + "description": "Enable or disable metadata compaction." + }, + "config": { + "type": "object", + "description": "A map containing custom configuration properties. Please note that interoperability is not guaranteed.", + "additionalProperties": { + "type": ["string", "number", "boolean"] + } + } + }, + "required": ["enable"], + "additionalProperties": false, + "examples": [ + { + "version": "2025-02-03", + "enable": true, + "config": { + "spec_id": 1, + "key1": "value1" + } + } + ] +} diff --git a/schemas/policies/system/orphan-file-removal/2025-02-03.json b/schemas/policies/system/orphan-file-removal/2025-02-03.json new file mode 100644 index 000000000..f7b00d1e4 --- /dev/null +++ b/schemas/policies/system/orphan-file-removal/2025-02-03.json @@ -0,0 +1,50 @@ +{ + "license": "Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)", + "$id": "https://polaris.apache.org/schemas/policies/system/orphan-file-removal/2025-02-03.json", + "title": "Orphan File Removal Policy", + "description": "Inheritable Polaris policy schema for Iceberg table orphan file removal", + "type": "object", + "properties": { + "version": { + "type": "string", + "const": "2025-02-03", + "description": "Schema version" + }, + "enable": { + "type": "boolean", + "description": "Enable or disable orphan file removal." + }, + "max_orphan_file_age_in_days": { + "type": "number", + "description": "Specifies the maximum age (in days) for orphaned files before they are eligible for removal." + }, + "locations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Specifies a list of custom directories to search for files instead of the default table location. Use with caution—if set to a broad location (e.g., s3://my-bucket instead of s3://my-bucket/my-table-location), all unreferenced files in that path may be permanently deleted, including files from other tables. Following best practices, tables should be stored in separate locations to avoid accidental data loss." + }, + "config": { + "type": "object", + "description": "A map containing custom configuration properties. Note that interoperability is not guaranteed.", + "additionalProperties": { + "type": ["string", "number", "boolean"] + } + } + }, + "required": ["enable"], + "additionalProperties": false, + "examples": [ + { + "version": "2025-02-03", + "enable": true, + "max_orphan_file_age_in_days": 30, + "locations": ["s3://my-bucket/my-table-location"], + "config": { + "prefix_mismatch_mode": "ignore", + "key1": "value1" + } + } + ] +} diff --git a/schemas/policies/system/snapshot-expiry/2025-02-03.json b/schemas/policies/system/snapshot-expiry/2025-02-03.json new file mode 100644 index 000000000..488e45b31 --- /dev/null +++ b/schemas/policies/system/snapshot-expiry/2025-02-03.json @@ -0,0 +1,39 @@ +{ + "license": "Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)", + "$id": "https://polaris.apache.org/schemas/policies/system/snapshot-expiry/2025-02-03.json", + "title": "Snapshot Expiry Policy", + "description": "Inheritable Polaris policy schema for managing Iceberg table snapshot expiry. This policy allows a table (or its parent) to indicate that snapshot expiry is enabled. It also defines how snapshots should be expired. Engines or clients can use this policy to safely remove expired snapshots and delete associated files, helping maintain a clean and efficient table state.", + "type": "object", + "properties": { + "version": { + "type": "string", + "const": "2025-02-03", + "description": "Schema version" + }, + "enable": { + "type": "boolean", + "description": "Enable or disable snapshot expiry." + }, + "config": { + "type": "object", + "description": "A map containing custom configuration properties. Please note that interoperability is not guaranteed.", + "additionalProperties": { + "type": ["string", "number", "boolean"] + } + } + }, + "required": ["enable"], + "additionalProperties": false, + "examples": [ + { + "version": "2025-02-03", + "enable": true, + "config": { + "min_snapshot_to_keep": 1, + "max_snapshot_age_days": 2, + "max_ref_age_days": 3, + "key1": "value1" + } + } + ] +}