samredai commented on issue #3245:
URL: https://github.com/apache/iceberg/issues/3245#issuecomment-1031682350


   Here are some additional notes/details/questions to guide this issue. I've 
also included a diagram of the java implementation.
   
   - Catalog abstraction
     - Operations
       - List tables
       - Create a table
       - Drop a table
       - Replace table
       - Load table (returns an instance of the main table class that users 
will interact with)
       - Rename a table
       - Check that a table exists (or maybe this is done in load table. Python 
users will be familiar with `try catalog.load_table() except 
MissingTableException`)
   - Table identifier (maybe not needed?)
     - In python, a table identifier could just be a string and the main Table 
class itself could also serve as the table identifier. `Table(“foo.bar.baz”, 
catalog=Catalog(...))` or `Table(namespace=”foo”, database=”bar”, table=”baz”, 
catalog=Catalog(...))`. Loading the table from the catalog would then be 
`Table.load()`.
     - “Loading a table” from the catalog could easily be confused with loading 
the actual data. Since we’ll have both of these functionalities in a single 
library, should we have a more explicit class name here so it’s not confused 
with whatever the particular in-memory table format is that’s being used, i.e. 
pyarrow.Table, pandas.DataFrame, numpy.ndarray, etc.? Some options:
       - IcebergTable
       - TableMetadata
       - TableInfo
   - Namespace: Does this need to be a class? Can the `catalog.listNamespaces` 
method just take a string as an argument?
   - Should the JDBC catalog implementation be ranked higher in priority than 
the hive catalog?
   
   Java implementation:
   
   
![catalog](https://user-images.githubusercontent.com/43911210/152832960-77afbccd-02f3-456e-8863-bd8988d02afe.png)
   
   


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