Lab note: Reviewed September 4, 2026. This isolated single-machine exercise is not a production deployment. Pin an explicit Trino release instead of using a floating image tag.
Trino is a distributed SQL query engine that reads data through connectors. A local lab can demonstrate catalogs, schemas, queries, and plans, but it does not validate production security, availability, scale, or source-system impact.
Prepare an isolated environment
Use a supported container runtime, reserve adequate CPU and memory, and bind services to loopback unless remote access is intentionally secured. Record operating system, architecture, runtime, image digest, Trino version, and configuration. Do not place production credentials or data in the lab.
services:
trino:
image: trinodb/trino:483
ports:
- "127.0.0.1:8080:8080"
volumes:
- ./catalog:/etc/trino/catalog:ro
mem_limit: 4g
Release 483 was current when this article was reviewed. For a durable runnable project, pin and record the reviewed tag or digest in version control and re-test before upgrading. Container examples change, so compare with the official image documentation.
Add a low-risk sample catalog
Begin with a documented built-in or synthetic connector rather than an external production database. Catalog files contain connector properties and may reference secrets; keep them least-privileged and outside public repositories. Connector names, properties, types, and write behavior are version-specific.
Verify the service
SHOW CATALOGS;
SHOW SCHEMAS FROM tpch;
SELECT count(*) AS rows
FROM tpch.tiny.nation;
EXPLAIN SELECT regionkey, count(*)
FROM tpch.tiny.nation
GROUP BY regionkey;
Confirm the expected catalogs and deterministic row count for the selected sample connector. Inspect logs for startup errors, then capture SELECT version(). EXPLAIN inspects a plan; EXPLAIN ANALYZE executes the query and should be used only when safe.
Test failure and limits
Set local resource limits, run bounded queries, cancel a query, restart the container, and verify that configuration is reproducible. Test invalid SQL and missing catalog behavior. A successful sample query does not test authentication, authorization, TLS, high availability, backup, workload management, or recovery.
Clean up safely
Stop and remove only the named lab resources. Review mounted directories before deletion and retain configuration, version notes, and test results if the lab is evidence for later work. Never use broad recursive deletion or ambiguous container-pruning commands as tutorial cleanup.
Continue with Trino optimization, compare origins in Presto basics, and plan production movement through cloud migration challenges.

Historical comments from Datanizant
No public comments on this article
No approved public comments were included in the WordPress export for this article.