Skip to content

Conversation

nayanj98
Copy link
Collaborator

No description provided.

### Handling Incompatible Data Type Changes

For type changes not supported by Iceberg v2 (like STRING to INT), OLake offers two options:
For data type changes not supported by Iceberg v2:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not supported or supported ?

2. Narrowing Type Conversions like:
- BIGINT to INT
- DOUBLE to FLOAT
- TIMESTAMP to DATE
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i dont think timestamp to date is possible. Once check with tech

- BIGINT to INT
- DOUBLE to FLOAT
- TIMESTAMP to DATE
- DECIMAL(P, S) to DECIMAL(P', S) where P' < P
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

once confirm this as well

- DECIMAL(P, S) to DECIMAL(P', S) where P' < P

1. **Schema Data Type Changes Enabled with DLQ** ([coming soon](https://github.com/datazip-inc/olake/issues/265)):
When a source value’s data type has a smaller range or precision than the destination column’s type, OLake treats this as a narrowing conversion and handles it seamlessly. For example, if the destination column is defined as BIGINT but the incoming values are INT, OLake recognizes that every INT value falls within BIGINT’s range and simply stores the values without error. This validation step ensures that compatible, smaller-range types are accepted even when Iceberg v2 would flag a mismatch.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure if iceberg v2 will flag for a mismatch during this.

- Test schema changes in non-production environments first
- Document your schema and track changes over time
:::tip
All other incompatible type changes will be captured by OLake using a Dead Letter Queue column (DLQ) (feature coming soon).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any other data type change willbe handled in a dead letter queue column


### Scenario 6: Incompatible Type Change

When a column changes from STRING to INT type:, incompatible with Iceberg v2, sync fails.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why are we mentioning that it is incompatible with v2 and sync is failing. This is a doc where we are explaining how olake handles evolution and data type changes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants