iceberg is a Golang implementation of the Iceberg table spec.
- Go 1.21 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 |
|---|---|---|---|---|
| Load Table | X | |||
| List Tables | X | |||
| Create Table | ||||
| Update Current Snapshot | ||||
| Create New Snapshot | ||||
| Rename Table | ||||
| Drop Table | ||||
| Alter Table | ||||
| Set Table Properties | ||||
| Create Namespace | ||||
| Drop Namespace | ||||
| Set Namespace Properties |
- 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.