Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Python] support table in iceberg python library #3227

Closed
jun-he opened this issue Oct 6, 2021 · 9 comments
Closed

[Python] support table in iceberg python library #3227

jun-he opened this issue Oct 6, 2021 · 9 comments

Comments

@jun-he
Copy link
Collaborator

jun-he commented Oct 6, 2021

No description provided.

@jun-he jun-he added the python label Oct 6, 2021
@jun-he jun-he added this to the Python 0.1.0 release milestone Oct 6, 2021
@danielcweeks danielcweeks added this to To do in [Priority 1] Python: Pythonic refactor via automation Oct 6, 2021
@xinbinhuang
Copy link
Contributor

@jun-he I want to take a stab at this if it doesn't have dependencies on other issues. Can you assign it to me?

@jun-he
Copy link
Collaborator Author

jun-he commented Nov 10, 2021

SG, thanks for the help. BTW, table depends on the partition spec and schema, which are ongoing work.

@xinbinhuang
Copy link
Contributor

SG, thanks for the help. BTW, table depends on the partition spec and schema, which are ongoing work.

Understood, I'm keeping an eye on those

@dhruv-pratap
Copy link
Contributor

dhruv-pratap commented May 18, 2022

@xinbinhuang I have some bandwidth available right now and I was thinking of picking up this issue. Are you cool if I can get going on this? CC @jun-he

@xinbinhuang
Copy link
Contributor

@dhruv-pratap feel free to pick it up!

@jun-he jun-he assigned dhruv-pratap and unassigned xinbinhuang May 18, 2022
@dhruv-pratap
Copy link
Contributor

This tracker is essentially an epic and needs to be broken down further into smaller pieces. We need to break this down into the below pieces to begin with:

  1. Define a TableBuilder API to create a Table without Transaction to begin with.
  2. Create a table using TableBuilder API without Transaction.
    a. With table identifier and schema
    b. With PartitionSpec
    c. With SortOrder
    d. With Location
    e. With Properties
  3. Load a table which returns the Table instance with the current table spec.
  4. Define Transaction API for performing multiple updates to a table in a transaction.
  5. Extend the TableBuilder API to start create/replace transactions.
  6. Create a table in transaction using Transaction API
  7. Replace a table in transaction using Transaction API
  8. Create or Replace a table in transaction using Transaction API

Class Diagrams:
TableBuilder

@Fokko
Copy link
Contributor

Fokko commented Jul 13, 2022

I'll pick this up if that's okay. I'm working on the REST Catalog, and need to implement this anyway

@dhruv-pratap
Copy link
Contributor

Hi @Fokko that should be okay, please go ahead. Apologies I couldn't get to this as some work related stuff came up at my end. I'll sync up with you once I circle back to this to see if there are any left overs from this item that I can pick-up. Thanks!

@Fokko
Copy link
Contributor

Fokko commented Sep 21, 2022

@dhruv-pratap 👍🏻 I think we can close this, we have a table structure: https://github.com/apache/iceberg/blob/master/python/pyiceberg/table/__init__.py#L32

@Fokko Fokko closed this as completed Sep 21, 2022
[Priority 1] Python: Pythonic refactor automation moved this from To do to Done Sep 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
No open projects
Development

No branches or pull requests

5 participants