iceberg
is a Golang implementation of the Iceberg table spec.
- Go 1.23 or later
$ git clone https://github.com/apache/iceberg-go.git
$ cd iceberg-go/cmd/iceberg && go build .
Filesystem Type | Supported |
---|---|
S3 | X |
Google Cloud Storage | |
Azure Blob Storage | |
Local Filesystem | X |
Operation | Supported |
---|---|
Get Schema | X |
Get Snapshots | X |
Get Sort Orders | X |
Get Partition Specs | X |
Get Manifests | X |
Create New Manifests | X |
Plan Scan | x |
Plan Scan for Snapshot | x |
Operation | REST | Hive | DynamoDB | Glue | SQL |
---|---|---|---|---|---|
Load Table | X | X | X | ||
List Tables | X | X | X | ||
Create Table | X | X | X | ||
Update Current Snapshot | |||||
Create New Snapshot | |||||
Rename Table | X | X | X | ||
Drop Table | X | X | X | ||
Alter Table | X | ||||
Set Table Properties | X | X | |||
Create Namespace | X | X | X | ||
Check Namespace Exists | X | X | |||
Drop Namespace | X | X | X | ||
Set Namespace Properties | X | X | X | ||
List View | X | ||||
Drop View | X | ||||
Check View Exists | X |
- No intrinsic support for writing data yet.
- Plan to add Apache Arrow support eventually.
- Data can currently be read as an Arrow Table or as a stream of Arrow record batches.
Run go build ./cmd/iceberg
from the root of this repository to build the CLI executable, alternately you can run go install github.com/apache/iceberg-go/cmd/iceberg
to install it to the bin
directory of your GOPATH
.
The iceberg
CLI usage is very similar to pyiceberg CLI
You can pass the catalog URI with --uri
argument.
Example:
You can start the Iceberg REST API docker image which runs on default in port 8181
docker pull tabulario/iceberg-rest:latest
docker run -p 8181:8181 tabulario/iceberg-rest:latest
and run the iceberg
CLI pointing to the REST API server.
./iceberg --uri http://0.0.0.0:8181 list
┌─────┐
| IDs |
| --- |
└─────┘
Create Namespace
./iceberg --uri http://0.0.0.0:8181 create namespace taxitrips
List Namespace
./iceberg --uri http://0.0.0.0:8181 list
┌───────────┐
| IDs |
| --------- |
| taxitrips |
└───────────┘