New shiny Tower tables

New shiny Tower tables

Launching support for Iceberg Catalogs and Tower Tables

Launching support for Iceberg Catalogs and Tower Tables

Launching support for Iceberg Catalogs and Tower Tables

Launching support for Iceberg Catalogs and Tower Tables

May 12, 2025

May 12, 2025

Today, we are announcing support for Iceberg catalogs inside Tower and releasing the Tower SDK, which makes working with Iceberg tables simpler than vibe coding.


Iceberg Catalogs in Tower

Iceberg catalogs are services that make working with Iceberg tables as easy as typing their names. Catalogs also coordinate the work of data apps—pipelines, queries, dashboards, or notebooks—when they write and read from tables. 

Tower makes it very easy to define a catalog in the Tower UI and make it available to every app inside a team or personal account. Together with secrets and other configs, catalogs make up a Tower environment

We initially support Apache Polaris and Snowfake's Open Catalog, with more catalog types coming soon.


Tower SDK with Tower Tables

In addition to Iceberg catalogs, we have also launched our Tower SDK. The Tower SDK provides helpful extensions to your Python code, including easy access to Apache Iceberg tables. 

The Tower SDK is installed as part of the Tower CLI installation.

pip install tower

To start using the Tower SDK inside your Tower app, import it into your app code:

import tower

Inside the Tower SDK, you will find Tower Tables, a set of classes and helpers for creating and referencing tables and efficiently reading, inserting, and deleting data from tables.

For example, to write an efficient Polars LazyFrame query on a table:

from tower import tables

table = tables("my_table").load()
# Create a lazy query plan
lazy_df = table.to_polars()
# Build complex transformations
result = (lazy_df
   .filter(pl.col("age") > 30)
   .groupby("department")
   .agg(pl.col("salary").mean())
   .sort("department"))
# Execute the plan
final_df = result.collect())

To perform an upsert:

from tower import tables

table = tables("my_table").load()
# Create a PyArrow table with data to upsert
data = pa.table({
   "id": [1, 2, 3],
   "name": ["Alice", "Bob", "Charlie"],
   "age": [26, 31, 36]  # Updated ages
})
# Upsert the data using 'id' as the key
table.upsert(data, join_cols=["id"])
# Verify the operation
stats = table.rows_affected()
print(f"Updated {stats.updates} rows")
print(f"Inserted {stats.inserts} rows")

You don't need to import and use the Tower SDK to run apps on Tower—Tower continues to be able to run ANY Python code—but if you want to simplify Iceberg table access, take advantage of catalog integration, and reduce boilerplate code setting environment variables, then the Tower SDK will help you with that.


Get Stock Buy/Sell Tips with 3 Tower Example Apps

To demonstrate Tower's SDK and table capabilities, we are also releasing three example apps: 

  1. Writing Ticker Data to Iceberg 

  2. Analyzing Ticker data in Iceberg

  3. Trimming Ticker Table

The "Writing Ticker Data to Iceberg" app demonstrates how to create and write to tables. It uses Yahoo Finance's public API and the yfinance library to download daily indicators for stocks, including Open, Close, and Volume. We save them in an Iceberg table. 

The second app, Analyzing Ticker data in Iceberg, shows how to analyze data in tables with Polars and LLMs. It uses the DeepSeek R1 LLM to make buy/sell recommendations based on volatility and trends over a 30-day period for the stocks that we store in our Iceberg table. We also use Polars to calculate trend features that are important for predictions.

The third app, Trimming Ticker Table, shows how to read and delete data from tables. It performs maintenance operations on the table, removing historical data not necessary for predictions in the second app. 

 

Next steps

  1. Review the Working with Tables guide

  2. Reference the Tower SDK docs 

  3. Install the Tower SDK+CLI with "pip install tower"

  4. Sign up for Tower

  5. Go through the Stock Trading examples

And, lastly, profit.



© Tower Computing 2025. All rights reserved

Hassle-free Platform for Data Scientists & Engineers.

© Tower Computing 2025. All rights reserved

Hassle-free Platform for Data Scientists & Engineers.

© Tower Computing 2025. All rights reserved

Hassle-free Platform for Data Scientists & Engineers.

© Tower Computing 2025. All rights reserved

Hassle-free Platform for Data Scientists & Engineers.