Managing shared tables
AIStor Table Shares support grouping multiple tables under a single share.
Each share has one or more schema under which you can associate multiple tables.
When you access the share from a remote client, you can perform operations against any table under a given schema.
When you create a new table share, you define the initial schema and table associated to that share. You can then add new tables to that share under the same or a different schema.
Adding tables to an existing share
Use the mc table share update with the --add modifier to add a table to an existing share.
For example, the following command adds a new table located at analytics/sales to the analytics-share under the HR schema:
mc table share update myaistor/analytics-share \
--add "HR:sales:delta:analytics:sales/"
When you list the share, the output includes all tables grouped under the HR schema.
Mixed Table Sharing
AIStor Table Sharing implements the Delta Universal Format, allowing data administrators to share and query both Delta and Iceberg-formatted data stored in AIStor buckets. This enables workload patterns such as:
- Sharing Delta Lake data alongside Iceberg tables.
- Providing a unified interface for consumers across data formats.
- Translating data transparently across formats without requiring end-user knowledge or interaction.
This functionality assumes the AIStor Table APIs and access methods as the primary source of Iceberg data management.
To colocate Iceberg and Delta table data within a single share, you must at minimum partition data between the two formats.
For example, consider a bucket analytics-data intended for storing both Iceberg and Delta data stores.
Use the prefixes iceberg and delta to isolate data between the two formats when creating and accessing the stored data:
analytics/ # S3 bucket
│
├── delta/ # Delta tables (user-defined paths)
│ ├── sales/
│ │ ├── _delta_log/ # Delta transaction log
│ │ │ ├── 00000000000000000000.json
│ │ │ └── 00000000000000000001.json
│ │ ├── year=2024/
│ │ │ └── part-00000-*.parquet
│ │ └── year=2025/
│ │ └── part-00000-*.parquet
│ │
│ └── inventory/
│ ├── _delta_log/
│ └── part-00000-*.parquet
│
└── 01913e6a-c8b8-7448-8121-72f53e6a1427/ # Iceberg table (UUID path)
├── metadata/
│ ├── 00000-40585df9-metadata.json
│ └── snap-1234567890-avro.avro
└── data/
└── part-00000-*.parquet
AIStor Tables use UUID-based paths during table creation, while Delta Tables use user-controlled prefixes.
For additional control or isolation, you can further nest AIStor Tables using iceberg or a preferred prefix.
Adding Iceberg tables to a share resource
Use the mc table share update with the --add modifier to add an AIStor Table to an existing share.
For example, the following command adds a new Iceberg table as marketing with warehouse, namespace, and table data as marketing:marketing:marketing to the analytics-share share under the HR schema:
mc table share update myaistor/analytics-share \
--add "HR:marketing:uniform:analytics:marketing:marketing:marketing"
When you list the share, the output includes all tables grouped under the HR schema.
Client applications querying the data interact directly with the table as marketing rather than through the full Iceberg path.