All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
ice- Added iceberg-gcp mvn dependencies for GCS support (#99)ice- Added describe-parquet command to print info of parquet files (#65)ice- Prevent empty namespace creation (#105)ice-rest-catalog- Iceberg metrics and Grafana dashboard (#82)ice- Ice cli partitions (#114)ice- Add option to pass partition name when creating partitions. (#123)ice- Ice cli files command (#112)ice- Add support for list-namespaces (#131)ice- Add shell mode for autocompletion of commands. (#118)ice- Configurable compression (#115)ice- Added logic to support bucket partitioning (#97)
ice- Null pageToken (#128)ice- Fix insert inferred partition not writing to partition folder (#120)ice- Fix delete partition for transformed partition types (#94)
- Add integration tests using templates (#75)
- Add Docker integration tests (#108)
- Disable docker test in mvn verify (#109)
- Fix pre release (#113)
- Added test for schema evolution. (#125)
- Added fix for malformed warehouse file path (#133)
ice- Added drop partition field in alter table.
ice- Logic to throw exception when the user tries to use -force-no-copy for file(row group/block) with multiple partitions.ice- User friendly message in REST catalog initialization if server cannot be reached.
• ice - Parquet conversion to iceberg for long data type.
- Added High level k8s architecture diagram.
- Documented inserting multiple files (and transaction support).
- ice
--files-from&--retry-list-exit-codecli options.
- TZ information getting lost when partitioning (#85).
- Data partitioning based on time/timestamp* columns with millisecond precision.
ice --insecureCLI option.
ice describeoutput to includeerror(s) when table(s) cannot be read due to the internal server error(s).
- ice-rest-catalog/etcd: dropTable failing when table files are missing/corrupted.
- Support for vended credentials.
This enables creating new tables from existing Parquet files located in S3 without having direct access to object storage. e.g.ice create-table foo.bar --use-vended-credentials --schema-from-parquet=s3://catalog-bucket/foo/bar/external-data/sample.parquet. ice alter-tablecommand.ice insert --force-duplicatesCLI flag.ice describeoutput to include nested metrics.
ice insertto accept files with compatible schema: subset of table schema and/or with primitive type promotions listed in Schema Evolution (previously file schema had to match exactly).ice describeoutput to minimize quotes.
- Calculation of nested metrics.
- ice: nullCount metric calculation.
- ice: Support for using
ice --s3-copy-objecton files over 5 GiB in size.
- ice --watch not url decoding object keys from SQS messages.
- ice: metrics generated for time/timestamp* columns with millisecond precision (#61).
- ice: NPE while evaluating s3 wildcard expressions against minio (#60).
- ice-rest-catalog: ORPHAN_CLEANUP maintenance job failing after snapshot cleanup.
- ice failing to ignore deleted files with % in their names.
- ice: ClassCastException when reading metrics for enum columns.
- ice --watch to ignore deleted files.
- ice --watch to recreate table if deleted and --create-table/-p is set.
- org.apache.parquet.CorruptStatistics warnings to exclude stacktrace.
- ice YAML/JSON inputs parsing ignoring trailing tokens.
- jvm stats logging.
- ice:
watchignoring alls3:ObjectCreated:*buts3:ObjectCreated:Put.
- ice: sort order check.
- ice: Support for
warehouse=file:///absolute/path. - ice: Ability to whitelist
file://locations outside thewarehouse=file://...(useful when referencing Parquet files located elsewhere on the filesystem).
- ice:
ice delete --dry-run.
- ice: Support for
ice insertin watch mode. See examples/s3watch for details. - ice-rest-catalog:
MANIFEST_COMPACTION,DATA_COMPACTION,SNAPSHOT_CLEANUPandORPHAN_CLEANUPmaintenance routines. These can be enabled either via ice-rest-catalog.yaml/maintenance section or performed ad-hoc viaice-rest-catalog perform-maintenance. - ice:
ice deletecommand.
- ice:
ice delete-tablenot to delete any data unless--purgeis specified. - ice-rest-catalog: catalog maintenance config section.
snapshotTTLInDaysmoved tomaintenance.snapshotTTLInDays.
- ice: Partitioning metadata missing when data is inserted with
--no-copyor--s3-copy-object. - ice:
NULLS_FIRST/NULLS_LASTbeing ignored when sorting. - ice: Path construction in
localfileio.
name(catalog name) config option for ice-rest-catalog that enables multiple catalogs share the same etcd/postgresql/etc. instance.
ice scanfailing on a table withtimestamptzcolumn(s).- ice insert:
datetype handling.
- ice-rest-catalog: s3tables auth.
- S3 Table buckets support.
ice scan,ice create-namespace,ice delete-namespacecommands.- Ability to use
icewith catalogs serving self-signed certificates (viacaCrtconfig option).
debug*images to not requirejava -jarto launch ice/ice-rest-catalog.
- ice-rest-catalog retrying operations regardless of whether errors are retryable or not.
- ice insert failing when both --force-table-auth and -p are set even if table already exists and -p is effectively no-op.
- ice insert not including failed input URL.
- LocalFileIO printing properties.
- ice insert failing to insert parquet files with
uint32&uint64columns.
NOTE:uint64is cast to int64, which may or may not be appropriate depending on the actual range of values.
- Ability to specify
iceconfig viaICE_CONFIG_YAMLenv var andice-rest-catalogconfig viaICE_REST_CATALOG_YAML.
ice --partition/--sortto accept YAML and not just JSON.
- Metrics calculation when using --partition.