> For the complete documentation index, see [llms.txt](https://upsolver.gitbook.io/content/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://upsolver.gitbook.io/content/reference-1/sql-commands/iceberg-tables/upsolver-managed-tables.md).

# Upsolver Managed Tables

Upsolver tables always exist in a metastore that holds the metadata, allowing you to query them while the underlying files for the table data are stored in a corresponding storage location. &#x20;

When you have a lakehouse powered by Apache Iceberg, the metadata for your tables is created in the Iceberg layer that sits over your cloud object store; your catalog, such as AWS Glue Data Catalog, then has a pointer to Iceberg to discover the tables.&#x20;

Apache Iceberg tables can be managed by executing SQL commands that enable you to:

* Write data into a table from an external source.
* Query data from a table.
* Delete data from a table.
* Read data from one table and write it to a different table, either internally or externally.

Upsolver managed Iceberg tables can be created with or without columns. Unlike database tables, Upsolver tables support dynamic column lists, meaning the list of columns can expand based on the data being loaded.

Additionally, when you create the table, you can define primary keys, partition columns, data retention, and more. However, if you plan to run an [ingestion job](/content/reference-1/sql-commands/jobs/create-job/ingestion.md) to write to the table, do not specify any primary keys.

### Table commands

* [CREATE ICEBERG TABLE](/content/reference-1/sql-commands/iceberg-tables/upsolver-managed-tables/create-iceberg-table.md)
* [ALTER ICEBERG TABLE](/content/reference-1/sql-commands/iceberg-tables/upsolver-managed-tables/alter-iceberg-table.md)
* [DROP ICEBERG TABLE](/content/reference-1/sql-commands/iceberg-tables/upsolver-managed-tables/drop-iceberg-table.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://upsolver.gitbook.io/content/reference-1/sql-commands/iceberg-tables/upsolver-managed-tables.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
