-
Notifications
You must be signed in to change notification settings - Fork 23
Open
Description
Overview
Let's use Apache Iceberg REST Catalog API as a full list of the APIs that needs to implement.
Note that we will not cover all APIs in the spec. For example, some operations need to rewrite data files, which should be done by query engines such as Apache Spark or Hive.
Namespace
-
GET /namespacesList namespaces -
POST /namespacesCreate a namespace -
GET /namespaces/{namespace}Load the metadata properties -
HEAD /namespaces/{namespace}Check if a namespace exists -
DELETE /namespaces/{namespace}Drop a namespace from the catalog. Namespace must be empty. -
POST /namespaces/{namespace}/propertiesSet or remove properties on a namespace
Table
-
GET /namespaces/{namespace}/tablesList all table identifiers underneath a given namespace -
POST /namespaces/{namespace}/tablesCreate a table in the given namespace -
GET /namespaces/{namespace}/tables/{table}Load a table from the catalog -
DELETE /namespaces/{namespace}/tables/{table}Drop a table from the catalog -
HEAD /namespaces/{namespace}/tables/{table}Check if a table exists -
GET /namespaces/{namespace}/tables/{table}/credentialsLoad vended credentials for a table from the catalog -
POST /tables/renameRename a table from its current name to a new name
Table Scan
WON'T DO. Those are designed for query engines to optimize scan queries.
POST /namespaces/{namespace}/tables/{table}/planSubmit a scan for planningGET /namespaces/{namespace}/tables/{table}/plan/{plan-id}Fetches the result of scan planning for a plan-idDELETE /namespaces/{namespace}/tables/{table}/plan/{plan-id}Cancels scan planning for a plan-idPOST /namespaces/{namespace}/tables/{table}/tasksFetches result tasks for a plan task
Table Write
WON'T DO. These are designed for query engines to write new data or changes.
POST /namespaces/{namespace}/registerRegister a table in the given namespace using given metadata file locationPOST /namespaces/{namespace}/tables/{table}/metricsSend a metrics report to this endpoint to be processed by the backendPOST /transactions/commitCommit updates to multiple tables in an atomic operation
Table Updates
POST /namespaces/{namespace}/tables/{table} Commit updates to a table
This API includes multiple actions:
- Metadata
- AssignUUIDUpdate
- UpgradeFormatVersionUpdate
- SetLocationUpdate
- SetPropertiesUpdate
- RemovePropertiesUpdate
- EnableRowLineageUpdate
- Schema WON'T DO.
- AddSchemaUpdate
- SetCurrentSchemaUpdate
- RemoveSchemasUpdate
- Partition Spec WON'T DO.
- AddPartitionSpecUpdate
- SetDefaultSpecUpdate
- RemovePartitionSpecsUpdate
- Sort Order WON'T DO.
- AddSortOrderUpdate
- SetDefaultSortOrderUpdate
- Snapshot & Refs
- AddSnapshotUpdate WON'T DO.
- SetSnapshotRefUpdate
- RemoveSnapshotsUpdate
- RemoveSnapshotRefUpdate
- Statistics WON'T DO.
- SetStatisticsUpdate
- RemoveStatisticsUpdate
- SetPartitionStatisticsUpdate
- RemovePartitionStatisticsUpdate
- View
- AddViewVersionUpdate
- SetCurrentViewVersionUpdate
View
-
GET /namespaces/{namespace}/viewsList all view identifiers underneath a given namespace -
GET /namespaces/{namespace}/views/{view}Load a view from the catalog -
DELETE /namespaces/{namespace}/views/{view}Drop a view from the catalog -
HEAD /namespaces/{namespace}/views/{view}Check if a view exists -
POST /views/renameRename a view from its current name to a new name
View Edit
WON'T DO. These are designed for query engines to CREATE VIEW
POST /namespaces/{namespace}/viewsCreate a view in the given namespacePOST /namespaces/{namespace}/views/{view}Replace a view
Misc.
-
GET /v1/configList all catalog configuration settings - Authorizations (OAuth2)
- BearerAuth
chenzl25
Metadata
Metadata
Assignees
Labels
No labels