apache / gravitino

World's most powerful open data catalog for building a high-performance, geo-distributed and federated metadata lake.
https://gravitino.apache.org
Apache License 2.0
955 stars 302 forks source link

[Subtask] Add Table APIs in Gravitino Python client #2254

Open xunliu opened 7 months ago

xunliu commented 7 months ago

Describe the subtask

Add these Python function interfaces into Gravitino Python client, reference to the document for the API descriptions.

listTables(...): https://datastrato.ai/docs/0.4.0/api/rest/list-tables loadTable(...): https://datastrato.ai/docs/0.4.0/api/rest/load-table createTable(...): https://datastrato.ai/docs/0.4.0/api/rest/create-table alterTable(...): https://datastrato.ai/docs/0.4.0/api/rest/alter-table dropTable(...): https://datastrato.ai/docs/0.4.0/api/rest/drop-table

We can reference the Gravitino JAVA client implementation, RelationalCatalog.java

Parent issue

2113

Lanznx commented 2 months ago

@xunliu I'm interesting in this issue, can I take this?

xunliu commented 2 months ago

hi @Lanznx Thank you for your interest in this issue, I assigned to you.

Lanznx commented 2 months ago

After reviewing the java client and current python client, below is the planned structure and purpose of each file. Could someone please review these and provide feedback? If that's ok, I will begin implementing the task.

Lanznx commented 2 months ago

After discussion with Tim Wang, I found that there are some things missing (columns, indexes, sort_orders, ...) Current plan will be implement the required elements first. (ref: https://datastrato.ai/docs/0.5.1/api/rest/create-table) To keep the task as small as possible, I will only provide interfaces for those optional elements in the first PR.

So here's the updated Full Version planned structure (but in the first PR will only provide required part) :