Load a table from the catalog
get
{scheme}://{host}/{basePath}/v1/{prefix}/namespaces/{namespace}/tables/{table}
Load a table from the catalog.
The response contains both configuration and table metadata. The configuration, if non-empty is used as additional configuration for the table that overrides catalog configuration. For example, this configuration may change the FileIO implementation to be used for the table.
The response also contains the table's full metadata, matching the table metadata JSON file.
The catalog configuration may contain credentials that should be used for subsequent requests for the table. The configuration key "token" is used to pass an access token to be used as a bearer token for table requests. Otherwise, a token may be passed using a RFC 8693 token type as a configuration key. For example, "urn:ietf:params:oauth:token-type:jwt=".
Request
Path Parameters
-
namespace(required): string
A namespace identifier as a single string. Multipart namespace parts must be separated by the namespace separator as indicated via the /config override `namespace-separator`, which defaults to the unit separator `0x1F` byte (url encoded `%1F`). To be compatible with older clients, servers must use both the advertised separator and `0x1F` as valid separators when decoding namespaces. The `namespace-separator` should be provided in a url encoded form.Examples
-
prefix(required): string
An optional prefix in the path
-
table(required): string
A table nameExample:
sales
Query Parameters
-
referenced-by: string
A comma-separated list of fully qualified view names (namespace and view name) representing the view reference chain when an entity (table or view) is loaded via a view. The list should be ordered with the outermost view first, followed by any intermediate views it references, down to the view that directly references the entity. For a simple case where a view directly references the entity, the list contains a single view identifier. For nested views (a view referencing another view which references the entity), the list contains multiple view identifiers representing the complete dependency chain. The view identifier is a composite string of the format {namespace}{separator}{viewName}. The namespace-separator (defined in /config) acts as the delimiter. When parsing, the last occurrence of this separator identifies the boundary between the namespace and the view name. Multipart namespaces must follow the encoding rules of the parent parameter in the list namespaces endpoint. Multiple view identifiers are separated by commas. Servers should split the parameter value on comma characters to parse individual view identifiers. If view names contain commas, they must be url-encoded as %2C. Example with multiple views (where prod%1Fanalytics is a nested namespace which has a quarterly_view which references to monthly_view which then references the entity being loaded) - prod%1Fanalytics%1Fquarterly_view,prod%1Fanalytics%1Fmonthly_view
-
snapshots: string
The snapshots to return in the body of the metadata. Setting the value to `all` would return the full set of snapshots currently valid for the table. Setting the value to `refs` would load all snapshots referenced by branches or tags. Default if no param is provided is `all`.Allowed Values:
[ "all", "refs" ]
Header Parameters
-
If-None-Match: string
An optional header that allows the server to return 304 (Not Modified) if the metadata is current. The content is the value of the ETag received in a CreateTableResponse, LoadTableResponse or CommitTableResponse.
-
X-Iceberg-Access-Delegation: string
Optional signal to the server that the client supports delegated access via a comma-separated list of access mechanisms. The server may choose to supply access via any or none of the requested mechanisms. Specific properties and handling for `vended-credentials` is documented in the `LoadTableResult` schema section of this spec document. The protocol and specification for `remote-signing` is documented in the `s3-signer-open-api.yaml` OpenApi spec in the `aws` module.Example:
vended-credentials,remote-signing
There's no request body for this operation.
Back to TopResponse
Supported Media Types
- application/json
200 Response
Table metadata result when loading a table
Headers
-
ETag:
Identifies a unique version of the table metadata. Implementations that support ETags should produce unique tags for responses that return different metadata content but represent the same version of table metadata. For example, the `snapshots` query parameter may result in different metadata representations depending on whether `refs` or `all` is provided, therefore should have distinct ETags.
Root Schema : LoadTableResult
Type:
objectResult used when a table is successfully loaded.
The table metadata JSON is returned in the `metadata` field. The corresponding file location of table metadata should be returned in the `metadata-location` field, unless the metadata is not yet committed. For example, a create transaction may return metadata that is staged but not committed.
Clients can check whether metadata has changed by comparing metadata locations after the table has been created.
The `config` map returns table-specific configuration for the table's resources, including its HTTP client and FileIO. For example, config may contain a specific FileIO implementation class for the table depending on its underlying storage.
The following configurations should be respected by clients:
## General Configurations
- `token`: Authorization bearer token to use for table requests if OAuth2 security is enabled
- `scan-planning-mode`: Communicates to clients the supported planning mode. Clients should use this value to fail fast if the supported scanning mode is not available on the client. Valid values:
- `client`: Clients MUST use client-side scan planning
- `server`: Clients MUST use server-side scan planning via the `planTableScan` endpoint
## AWS Configurations
The following configurations should be respected when working with tables stored in AWS S3
- `client.region`: region to configure client for making requests to AWS
- `s3.access-key-id`: id for credentials that provide access to the data in S3
- `s3.secret-access-key`: secret for credentials that provide access to data in S3
- `s3.session-token`: if present, this value should be used for as the session token
- `s3.remote-signing-enabled`: if `true` remote signing should be performed as described in the `s3-signer-open-api.yaml` specification
- `s3.cross-region-access-enabled`: if `true`, S3 Cross-Region bucket access is enabled
## Storage Credentials
Credentials for ADLS / GCS / S3 / ... are provided through the `storage-credentials` field.
Clients must first check whether the respective credentials exist in the `storage-credentials` field before checking the `config` for credentials.
Show Source
-
config: object
config
Additional Properties Allowed: additionalProperties
-
metadata(required): object
TableMetadata
-
metadata-location: string
May be null if the table is staged as part of a transaction
-
storage-credentials: array
storage-credentials
Nested Schema : TableMetadata
Type:
Show Source
object-
current-schema-id: integer
-
current-snapshot-id: integer
(int64)
-
default-sort-order-id: integer
-
default-spec-id: integer
-
encryption-keys: array
encryption-keys
-
format-version(required): integer
Minimum Value:
1Maximum Value:3 -
last-column-id: integer
-
last-partition-id: integer
-
last-sequence-number: integer
(int64)
-
last-updated-ms: integer
(int64)
-
location: string
-
metadata-log: array
MetadataLog
-
next-row-id: integer
(int64)
A long higher than all assigned row IDs; the next snapshot's first-row-id.
-
partition-specs: array
partition-specs
-
partition-statistics: array
partition-statistics
-
properties: object
properties
Additional Properties Allowed: additionalProperties
-
refs: object
SnapshotReferences
Additional Properties Allowed: SnapshotReference
-
schemas: array
schemas
-
snapshot-log: array
SnapshotLog
-
snapshots: array
snapshots
-
sort-orders: array
sort-orders
-
statistics: array
statistics
-
table-uuid(required): string
Nested Schema : EncryptedKey
Type:
Show Source
object-
encrypted-by-id: string
-
encrypted-key-metadata(required): string
(byte)
-
key-id(required): string
-
properties: object
properties
Additional Properties Allowed: additionalProperties
Nested Schema : PartitionSpec
Type:
Show Source
object-
fields(required): array
fields
-
spec-id: integer
Read Only:
true
Nested Schema : PartitionField
Type:
Show Source
object-
field-id: integer
-
name(required): string
-
source-id(required): integer
-
transform(required): string
Example:
[ "identity", "year", "month", "day", "hour", "bucket[256]", "truncate[16]" ]
Nested Schema : SnapshotReference
Type:
Show Source
object-
max-ref-age-ms: integer
(int64)
-
max-snapshot-age-ms: integer
(int64)
-
min-snapshots-to-keep: integer
-
snapshot-id(required): integer
(int64)
-
type(required): string
Allowed Values:
[ "tag", "branch" ]
Nested Schema : Schema-allOf[1]
Type:
Show Source
object-
identifier-field-ids: array
identifier-field-ids
-
schema-id: integer
Read Only:
true
Nested Schema : PrimitiveTypeValue
Match One Schema
Show Source
-
boolean
Title:
BooleanTypeValueExample:true -
integer
Title:
IntegerTypeValueExample:42 -
integer(int64)
Title:
LongTypeValueExample:9223372036854776000 -
number(float)
Title:
FloatTypeValueExample:3.14 -
number(double)
Title:
DoubleTypeValueExample:123.456 -
string
Title:
DecimalTypeValueDecimal type values are serialized as strings. Decimals with a positive scale serialize as numeric plain text, while decimals with a negative scale use scientific notation and the exponent will be equal to the negated scale. For instance, a decimal with a positive scale is '123.4500', with zero scale is '2', and with a negative scale is '2E+20'Example:123.45 -
string
Title:
StringTypeValueExample:hello -
string(uuid)
Title:
UUIDTypeValueMinimum Length:36Maximum Length:36Pattern:^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$UUID type values are serialized as a 36-character lowercase string in standard UUID format as specified by RFC-4122Example:eb26bdb1-a1d8-4aa6-990e-da940875492c -
string(date)
Title:
DateTypeValueDate type values follow the 'YYYY-MM-DD' ISO-8601 standard date formatExample:2007-12-03 -
string
Title:
TimeTypeValueTime type values follow the 'HH:MM:SS.ssssss' ISO-8601 format with microsecond precisionExample:22:31:08.123456 -
string
Title:
TimestampTypeValueTimestamp type values follow the 'YYYY-MM-DDTHH:MM:SS.ssssss' ISO-8601 format with microsecond precisionExample:2007-12-03T10:15:30.123456 -
string
Title:
TimestampTzTypeValueTimestampTz type values follow the 'YYYY-MM-DDTHH:MM:SS.ssssss+00:00' ISO-8601 format with microsecond precision, and a timezone offset (+00:00 for UTC)Example:2007-12-03T10:15:30.123456+00:00 -
string
Title:
TimestampNanoTypeValueTimestamp_ns type values follow the 'YYYY-MM-DDTHH:MM:SS.sssssssss' ISO-8601 format with nanosecond precisionExample:2007-12-03T10:15:30.123456789 -
string
Title:
TimestampTzNanoTypeValueTimestamp_ns type values follow the 'YYYY-MM-DDTHH:MM:SS.sssssssss+00:00' ISO-8601 format with nanosecond precision, and a timezone offset (+00:00 for UTC)Example:2007-12-03T10:15:30.123456789+00:00 -
string
Title:
FixedTypeValueFixed length type values are stored and serialized as an uppercase hexadecimal string preserving the fixed lengthExample:78797A -
string
Title:
BinaryTypeValueBinary type values are stored and serialized as an uppercase hexadecimal stringExample:78797A
Nested Schema : Snapshot
Type:
Show Source
object-
added-rows: integer
(int64)
The upper bound of the number of rows with assigned row IDs
-
first-row-id: integer
(int64)
The first _row_id assigned to the first row in the first data file in the first manifest
-
manifest-list(required): string
Location of the snapshot's manifest list file
-
parent-snapshot-id: integer
(int64)
-
schema-id: integer
-
sequence-number: integer
(int64)
-
snapshot-id(required): integer
(int64)
-
summary(required): object
summary
Additional Properties Allowed: additionalProperties
-
timestamp-ms(required): integer
(int64)
Nested Schema : summary
Type:
objectAdditional Properties Allowed
Show Source
Show Source
-
operation(required): string
Allowed Values:
[ "append", "replace", "overwrite", "delete" ]
Nested Schema : SortOrder
Type:
Show Source
object-
fields(required): array
fields
-
order-id(required): integer
Read Only:
true
Nested Schema : SortField
Type:
Show Source
object-
direction(required): string
Allowed Values:
[ "asc", "desc" ] -
null-order(required): string
Allowed Values:
[ "nulls-first", "nulls-last" ] -
source-id(required): integer
-
transform(required): string
Example:
[ "identity", "year", "month", "day", "hour", "bucket[256]", "truncate[16]" ]
Nested Schema : StorageCredential
Type:
Show Source
object-
config(required): object
config
Additional Properties Allowed: additionalProperties
-
prefix(required): string
Indicates a storage location prefix where the credential is relevant. Clients should choose the most specific prefix (by selecting the longest prefix) if several credentials of the same type are available.
304 Response
Not Modified - Based on the content of the 'If-None-Match' header the table metadata has not changed since.
400 Response
Indicates a bad request error. It could be caused by an unexpected request body format or other forms of request validation failure, such as invalid json. Usually serves application/json content, although in some cases simple text/plain content might be returned by the server's middleware.
Root Schema : IcebergErrorResponse
Type:
objectJSON wrapper for all error responses (non-2xx)
Show Source
-
error(required): object
ErrorModel
JSON error payload returned in a response with further details on the error
Example:
{
"error":{
"message":"The server does not support this operation",
"type":"UnsupportedOperationException",
"code":406
}
}Nested Schema : ErrorModel
Type:
objectJSON error payload returned in a response with further details on the error
Show Source
-
code(required): integer
Minimum Value:
400Maximum Value:600HTTP response codeExample:404 -
message(required): string
Human-readable error message
-
stack: array
stack
-
type(required): string
Internal type definition of the errorExample:
NoSuchNamespaceException
401 Response
Unauthorized. The REST Catalog SHOULD respond with the 401 UnauthorizedResponse when the access token provided is expired, revoked, malformed, or invalid for other reasons. The client MAY request a new access token and retry the request.
Root Schema : IcebergErrorResponse
Type:
objectJSON wrapper for all error responses (non-2xx)
Show Source
-
error(required): object
ErrorModel
JSON error payload returned in a response with further details on the error
Example:
{
"error":{
"message":"The server does not support this operation",
"type":"UnsupportedOperationException",
"code":406
}
}Nested Schema : ErrorModel
Type:
objectJSON error payload returned in a response with further details on the error
Show Source
-
code(required): integer
Minimum Value:
400Maximum Value:600HTTP response codeExample:404 -
message(required): string
Human-readable error message
-
stack: array
stack
-
type(required): string
Internal type definition of the errorExample:
NoSuchNamespaceException
403 Response
Forbidden. Authenticated user does not have the necessary permissions.
Root Schema : IcebergErrorResponse
Type:
objectJSON wrapper for all error responses (non-2xx)
Show Source
-
error(required): object
ErrorModel
JSON error payload returned in a response with further details on the error
Example:
{
"error":{
"message":"The server does not support this operation",
"type":"UnsupportedOperationException",
"code":406
}
}Nested Schema : ErrorModel
Type:
objectJSON error payload returned in a response with further details on the error
Show Source
-
code(required): integer
Minimum Value:
400Maximum Value:600HTTP response codeExample:404 -
message(required): string
Human-readable error message
-
stack: array
stack
-
type(required): string
Internal type definition of the errorExample:
NoSuchNamespaceException
404 Response
Not Found - NoSuchTableException, table to load does not exist
Root Schema : IcebergErrorResponse
Type:
objectJSON wrapper for all error responses (non-2xx)
Show Source
-
error(required): object
ErrorModel
JSON error payload returned in a response with further details on the error
Example:
{
"error":{
"message":"The server does not support this operation",
"type":"UnsupportedOperationException",
"code":406
}
}Nested Schema : ErrorModel
Type:
objectJSON error payload returned in a response with further details on the error
Show Source
-
code(required): integer
Minimum Value:
400Maximum Value:600HTTP response codeExample:404 -
message(required): string
Human-readable error message
-
stack: array
stack
-
type(required): string
Internal type definition of the errorExample:
NoSuchNamespaceException
Examples
419 Response
This is an optional status response type that the REST Catalog can issue when the token has expired. The client MAY request a new access token and retry the request. 401 UnauthorizedResponse SHOULD be preferred over this response type on token expiry.
Root Schema : IcebergErrorResponse
Type:
objectJSON wrapper for all error responses (non-2xx)
Show Source
-
error(required): object
ErrorModel
JSON error payload returned in a response with further details on the error
Example:
{
"error":{
"message":"The server does not support this operation",
"type":"UnsupportedOperationException",
"code":406
}
}Nested Schema : ErrorModel
Type:
objectJSON error payload returned in a response with further details on the error
Show Source
-
code(required): integer
Minimum Value:
400Maximum Value:600HTTP response codeExample:404 -
message(required): string
Human-readable error message
-
stack: array
stack
-
type(required): string
Internal type definition of the errorExample:
NoSuchNamespaceException
503 Response
The service is not ready to handle the request, request could have been partially processed.
The service may additionally send a Retry-After header to indicate when to retry, a non idempotent request should only be retried by the client when the Retry-After header is present.
Root Schema : IcebergErrorResponse
Type:
objectJSON wrapper for all error responses (non-2xx)
Show Source
-
error(required): object
ErrorModel
JSON error payload returned in a response with further details on the error
Example:
{
"error":{
"message":"The server does not support this operation",
"type":"UnsupportedOperationException",
"code":406
}
}Nested Schema : ErrorModel
Type:
objectJSON error payload returned in a response with further details on the error
Show Source
-
code(required): integer
Minimum Value:
400Maximum Value:600HTTP response codeExample:404 -
message(required): string
Human-readable error message
-
stack: array
stack
-
type(required): string
Internal type definition of the errorExample:
NoSuchNamespaceException
5XX Response
A server-side problem that might not be addressable from the client side. Used for server 5xx errors without more specific documentation in individual routes.
Root Schema : IcebergErrorResponse
Type:
objectJSON wrapper for all error responses (non-2xx)
Show Source
-
error(required): object
ErrorModel
JSON error payload returned in a response with further details on the error
Example:
{
"error":{
"message":"The server does not support this operation",
"type":"UnsupportedOperationException",
"code":406
}
}Nested Schema : ErrorModel
Type:
objectJSON error payload returned in a response with further details on the error
Show Source
-
code(required): integer
Minimum Value:
400Maximum Value:600HTTP response codeExample:404 -
message(required): string
Human-readable error message
-
stack: array
stack
-
type(required): string
Internal type definition of the errorExample:
NoSuchNamespaceException