Open
Description
I always get the natural key / surrogate key terminology mixed up, but they're important concepts and we should make it easy for Delta Lake users to manage different types of keys.
We'll want functionality that makes it easy to determine if the md5 hash of multiple columns forms a unique identifier for each row in the dataset. I think this is referred to as a natural key.
A surrogate key is not derived from application data and is something like a UUID. I think we should make it easy to add a UUID column to a Delta table.
I'd like to avoid adding public interface methods that use the terms "natural" and "surrogate". I would like to make this functionality easily accessible for the Delta Lake community. Open to thoughts on good interfaces.