BookinglyTech News
Software

El cliente Rust de Iceberg cubre 13 de 25 operaciones REST en cinco catálogos

Testing cruzado con Polaris, BigLake y otros catálogos gestora revela las limitaciones de la librería iceberg-catalog-rest 0.10.1.

2 min de lectura2 fuentes contrastadas0 vistas

Un análisis técnico ha evaluado la compatibilidad del cliente Apache Iceberg escrito en Rust con siete catálogos REST diferentes. La conclusión es directa: la versión 0.10.1 de iceberg-catalog-rest permite autenticarse en cinco de los siete catálogos probados y responde correctamente a 13 de las 25 operaciones principales de la especificación REST. Los dos catálogos donde falló la conexión fueron los de AWS, ya que requieren un mecanismo de firma que este cliente específico no genera nativamente.

Limitaciones técnicas y alcance

La prueba consistió en ejecutar un programa de test contra catálogos como Apache Polaris (local), Google BigLake, Microsoft OneLake, AWS Glue y S3 Tables. El cliente implementa 19 de los 33 puntos de verificación del suite de pruebas, aunque algunos endpoints comparten la misma ruta. De las 12 operaciones que el cliente no puede ejecutar, 11 son simplemente inexistentes en el código: todas las operaciones relacionadas con vistas, el planificado de escaneos, la métrica de rendimiento y el aislamiento de transacciones. La duodécima, update_namespace, existe en el código pero devuelve un error explícito indicando que no está soportada.

El proyecto también destaca que, aunque el cliente es capaz de registrar tablas (registerTable), no soporta parámetros avanzados de carga como snapshots=all ni permite controlar la paginación mediante pageSize, ya que gestiona el paging internamente sin exponer esa variable. Además, para gestionar el almacenamiento en la nube, es necesario añadir dependencias adicionales como opendal con las features correspondientes para GCS o Azure Data Lake Storage.

Implicaciones para la adopción

Quien planifique construir herramientas de lakehouse en Rust debe tener en cuenta que este cliente no cubre el 100% de la especificación. Las operaciones de escritura funcionan correctamente, pero las capacidades avanzadas de análisis y gestión de transacciones están ausentes en esta versión. Para los usuarios de AWS que necesiten compatibilidad completa, la alternativa pasa por utilizar crates especializados como iceberg-catalog-glue o iceberg-catalog-s3tables, que sí implementan la firma AWS requerida, aunque con una cobertura de operaciones ligeramente diferente.

El código y los resultados están disponibles en GitHub, donde se documenta cada citación de línea del código fuente para verificar el estado actual de cada endpoint. Esta revisión es clave para los arquitectos que evalúan si el ecosistema Rust de Iceberg ya es maduro para su stack de datos actualizado.