| Read Operations |
|
|
|
|
| Load Table |
X |
X |
REST: ClickHouse#71542; Glue: ClickHouse#77257 |
|
| List Tables |
X |
X |
REST: ClickHouse#71542; Glue: ClickHouse#77257 |
|
| Check Table Exists |
X |
X |
REST: ClickHouse#71542; Glue: ClickHouse#77257 |
|
| Check If Empty |
X |
X |
REST: ClickHouse#71542; Glue: ClickHouse#77257; reworked in ClickHouse#94690; REST fix ClickHouse#106301; Altinity: #2124 (skip empty namespaces) |
|
| Write Operations |
|
|
|
|
| Create Table |
X |
X |
REST: ClickHouse#84684; Glue: ClickHouse#84136 |
|
| Create Namespace |
X |
X |
REST: ClickHouse#84684; Glue: ClickHouse#84136 |
|
| Update Metadata (new snapshot) |
X |
X |
REST: ClickHouse#84684; Glue: ClickHouse#84136 |
REST is transactional; Glue is pointer-overwrite |
| Update Schema (ALTER TABLE) |
X |
X |
ClickHouse#85769 (schema evolution); ClickHouse#106102 (assert-current-schema-id); Altinity fixes: #2157, #2272 (Glue metadata refresh after ALTER) |
REST uses assert-current-schema-id; Glue does not |
| Drop Table |
X |
X |
ClickHouse#85395 |
|
| Register Table |
- |
- |
- |
Neither implemented |
| Rename Table |
- |
- |
- |
Neither implemented |
| Set Table Properties (standalone) |
- |
- |
- |
Neither implemented |
| Drop Namespace |
- |
- |
- |
Neither implemented |
| Update Namespace Properties |
- |
- |
- |
Neither implemented |
| Transactional Safety |
|
|
|
|
| Optimistic Concurrency |
X |
- |
ClickHouse#84684; concurrent checks in ClickHouse#106102 |
REST uses compare-and-swap commits; Glue overwrites |
| Credentials |
|
|
|
|
| Vended Credentials |
X |
X |
REST: ClickHouse#71542; Glue: ClickHouse#77257; Azure fix ClickHouse#93477 |
Both support temporary credential vending |
| Credentials Refresh Callback |
X |
X |
REST: ClickHouse#95069; Glue: ClickHouse#105381 |
Re-vend on ExpiredToken |
| Credentials Cache with TTL |
X |
- |
ClickHouse#107960; Altinity 26.6 port: #2156 |
REST has per-table caching with configurable TTL |
| Auth / Identity |
|
|
|
|
| OAuth2 / Bearer Token |
X |
- |
ClickHouse#71542 |
|
| Static Auth Header |
X |
- |
ClickHouse#71542 |
|
| AWS IAM / STS |
- |
X |
ClickHouse#90825 |
|
| OneLake (Azure AD) |
X |
- |
ClickHouse#89366 |
Via OneLakeCatalog subclass |
| BigLake (GCP) |
X |
- |
ClickHouse#97104 |
Via BigLakeCatalog subclass |
| Administration |
|
|
|
|
| ALTER DATABASE MODIFY SETTING |
X |
- |
ClickHouse#110019 (backported to 26.6) |
REST supports runtime credential rotation |
| Namespace Filtering |
X |
X |
Altinity: #1337 (original, 25.8); 26.6: #2146 |
Both support namespaces setting |
| Storage |
|
|
|
|
| S3 |
X |
X |
REST: ClickHouse#71542; Glue: ClickHouse#77257 |
|
| Azure (ABFSS) |
X |
- |
ClickHouse#80013; ClickHouse#93477 |
REST parses ABFSS URLs; Glue hardcodes StorageType::S3 |
| Local (file://) |
X |
- |
ClickHouse#71542 |
|
| HDFS |
X |
- |
ClickHouse#71542 |
|
| GCS (gs://) |
X |
- |
ClickHouse#97104 |
REST maps gs:// to S3; Glue does not |
| Views |
- |
- |
- |
Neither implemented |
| Legend: X = supported, - = not implemented, ~ = partial/implicit |
|
|
|
|
REST Catalog vs Glue Catalog — ClickHouse Feature Comparison
Inspired by https://github.com/apache/iceberg-go
assert-current-schema-id); Altinity fixes: #2157, #2272 (Glue metadata refresh after ALTER)