rymurr opened a new issue #2288:
URL: https://github.com/apache/iceberg/issues/2288


   Hi All,
   
   As we have been adding more types of catalogs I have been thinking of how to 
move tables between catalogs. This could be to test a new catalog type on an 
existing iceberg table or to perform larger scale migrations.
   
   The technical aspect of this seems relatively straightforward:
   1) Create a `TableOperations` in target catalog
   2) call `TableOperations.commit(null, metadataFromSourceCatalog)`
   
   What I am struggling with is where this functionality should live. Some 
options:
   * as an action: this feels wrong as its not a big or long lived process
   * as a method on `Table`. This seems rather natural but it requires getting 
a Table first, probably by creating an empty table. Technically speaking this 
would expose an implementation of `PendingUpdate` that would take as input an 
existing table or an exsiting catalog and table identifier.
   * As a specialization of `createTable` on the `TableBuilder`, perhaps 
`createTableFrom` which would take an existing table from a different catalog 
as input.
   * As a completely separate util. Eg a static method or builder that takes 
(at least) an existing Table and a new Catalog as input. Its not clear which 
module this should live in though.
   
   Before doing the implementation I thought I would solicit opinions from the 
community. Which of the 4 do you think is best or is there something easier I 
missed?
   
   cc @jackye1995 


----------------------------------------------------------------
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.

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