nqvuong1998 opened a new issue, #12297:
URL: https://github.com/apache/iceberg/issues/12297

   ### Feature Request / Improvement
   
   **Summary**:
   Apache Iceberg should support identity columns similar to Delta Lake. This 
feature would allow users to define identity columns in Iceberg tables, where 
unique values are automatically generated when not explicitly provided during 
writes.
   
   **Motivation**:
   Currently, Apache Iceberg does not provide built-in support for identity 
columns. In contrast, Delta Lake allows defining identity columns that generate 
unique values when users do not explicitly provide them. This feature 
simplifies the handling of primary keys and auto-incrementing IDs in use cases 
such as:
   
   - Maintaining unique row identifiers in tables without requiring external 
sequence management.
   
   - Enabling better support for incremental ingestion scenarios where records 
require unique IDs.
   
   - Reducing complexity for users transitioning from traditional databases 
that support auto-incrementing primary keys.
   
   **Proposed Implementation**:
   
   - Introduce a new table property (e.g., identity.column=true) to enable 
identity columns on specific fields.
   
   - Define syntax for identity column declaration during table creation (e.g., 
CREATE TABLE ... (id BIGINT IDENTITY, name STRING)).
   
   - Implement automatic value generation for identity columns when an explicit 
value is not provided.
   
   - Ensure compatibility with Iceberg’s partitioning, snapshot isolation, and 
metadata management.
   
   **Alternatives Considered**:
   
   - Using externally managed sequences or UUIDs, but these approaches 
introduce additional complexity and overhead.
   
   - Leveraging application-side logic to generate unique values, which is not 
as efficient as native support.
   
   ### Query engine
   
   None
   
   ### Willingness to contribute
   
   - [ ] I can contribute this improvement/feature independently
   - [ ] I would be willing to contribute this improvement/feature with 
guidance from the Iceberg community
   - [x] I cannot contribute this improvement/feature at this time


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to