Repository navigation
Iceberg Smoke
This opt-in smoke test checks advanced Iceberg operations on the existing data-eng services. It adds no infrastructure.
- No new service, no new SOURCE, no new port, no new Kong route, and no new wizard step.
- Tracks:
data-engandall. - Existing services: Spark, Iceberg REST, MinIO, JupyterHub, and optionally Zeppelin.
- Categories stay unchanged: Spark and Iceberg REST are
data; JupyterHub and Zeppelin areapps; MinIO remainsdata. - The smoke uses isolated
lakehouse.atlas_smokeobjects. It does not createbronze,silver, orgoldnamespaces because downstream projects own their medallion layout.
./start.sh --track data-eng \
--spark-source container \
--iceberg-rest-source container \
--minio-source container \
--jupyterhub-source containerFor the Zeppelin surface, add --zeppelin-source container to the same command.
Spark Connect path:
scripts/smoke-iceberg-advanced-sql.sh spark-connectZeppelin standalone Spark path:
scripts/smoke-iceberg-advanced-sql.sh zeppelinBoth:
scripts/smoke-iceberg-advanced-sql.sh allRun the script from the Atlas root. It reads PROJECT_NAME from .env; the
shell value is a fallback, then atlas. The Spark Connect surface runs inside
<PROJECT_NAME>-jupyterhub against sc://spark-connect:15002. The Zeppelin surface imports
services/zeppelin/notebooks/iceberg_advanced_sql.zpln through the Zeppelin REST
API and runs it with Zeppelin's seeded standalone Spark interpreter at
spark://spark-master:7077.
Each streaming wait uses a 120-second timeout. An unfinished query fails the
step instead of continuing to result verification. Every exit from the wait
calls stop() on that run's query. Cleanup is a separate Spark call and can
take longer than the wait.
-
MERGE INTOrow-level upsert against an Iceberg format-version 2 table. - Snapshot metadata and
VERSION AS OFtime travel. -
CALL lakehouse.system.rollback_to_snapshot(...). -
ALTER TABLE ... CREATE BRANCHplusspark.wap.branchwrites andfast_forward. -
ALTER TABLE ... ADD COLUMNschema evolution. - Nested JSON parsing with
from_jsonandexplode. - File-source Structured Streaming from
s3a://landing/...into Iceberg withwriteStream.format("iceberg")andcheckpointLocationunders3a://checkpoints/.... - Maintenance procedures:
rewrite_data_files,expire_snapshots, andremove_orphan_files.
- JupyterHub:
services/jupyterhub/build/notebooks/12_iceberg_advanced_sql.ipynbis the Spark Connect reference. - Zeppelin:
services/zeppelin/notebooks/iceberg_advanced_sql.zplnis the standalone Spark reference.
Both surfaces are kept because Spark Connect and Zeppelin's Spark-submit interpreter use different runtime paths. They share the Iceberg REST catalog, the MinIO warehouse and the Spark image.
Normal CI stays static and hermetic.
bootstrapper/tests/test_iceberg_advanced_smoke_suite.py checks that the
script, notebooks, docs, advanced operations, S3A landing and checkpoint paths
and the no-new-service topology contract are present. It also executes each
surface's streaming completion code with test doubles to check success,
timeout, and exception cleanup. An operator runs the live smoke explicitly,
because it needs the data-eng stack to be up.
Atlas documentation.
- 1. Overview
- 2. Quick Start
- 3. Core Concepts
- 4. Tracks
-
5. Services
- 5.1. Service Catalog
-
5.2. Service Guides
- 5.2.1. airflow
- 5.2.2. asset-baker
- 5.2.3. asset-worker
- 5.2.4. backend
- 5.2.5. backup
- 5.2.6. blender-mcp
- 5.2.7. celery
- 5.2.8. chatterbox
- 5.2.9. cloud-providers
- 5.2.10. cloudflared
- 5.2.11. comfyui
- 5.2.12. crawl4ai
- 5.2.13. doc-processor
- 5.2.14. docling
- 5.2.15. docling-lightrag-adapter
- 5.2.16. fal
- 5.2.17. globals
- 5.2.18. grafana
- 5.2.19. hermes
- 5.2.20. iceberg-rest
- 5.2.21. jenkins
- 5.2.22. jupyterhub
- 5.2.23. kong
- 5.2.24. label-studio
- 5.2.25. langfuse
- 5.2.26. lightrag
- 5.2.27. litellm
- 5.2.28. llm-graph-builder
- 5.2.29. local-deep-researcher
- 5.2.30. loki
- 5.2.31. mcp-servers
- 5.2.32. minio
- 5.2.33. mlflow
- 5.2.34. multi2vec-clip
- 5.2.35. n8n
- 5.2.36. neo4j
- 5.2.37. ollama
- 5.2.38. open-webui
- 5.2.39. openclaw
- 5.2.40. otel-collector
- 5.2.41. parakeet
- 5.2.42. prometheus
- 5.2.43. ray
- 5.2.44. redis
- 5.2.45. redpanda
- 5.2.46. searxng
- 5.2.47. spark
- 5.2.48. speaches
- 5.2.49. stt-provider
- 5.2.50. supabase
- 5.2.51. supavisor
- 5.2.52. tei-reranker
- 5.2.53. tempo
- 5.2.54. tika
- 5.2.55. trino
- 5.2.56. trueforge
- 5.2.57. tts-provider
- 5.2.58. verba
- 5.2.59. vllm-metal
- 5.2.60. weaviate
- 5.2.61. zeppelin
- 5.3. Provider And Extension Guides
- 6. Configuration
- 7. Operations
- 8. Architecture
- 9. Development
- 10. Reference