{"id":24612,"library":"soda-core-trino","title":"Soda Core Trino","description":"Soda Core Trino is an extension of Soda Core that integrates with Trino/Presto databases for data quality testing. It allows users to define and run checks (e.g., missing values, duplicates, schema changes) using SodaCL. Version 3.5.6 is the latest release. Release cadence is irregular, typically following Soda Core releases.","status":"active","version":"3.5.6","language":"python","source_language":"en","source_url":"https://github.com/sodadata/soda-core","tags":["data-quality","testing","trino","presto","soda"],"install":[{"cmd":"pip install soda-core-trino","lang":"bash","label":"Install Soda Core Trino"}],"dependencies":[{"reason":"Core library required for Soda checks","package":"soda-core","optional":false},{"reason":"Trino/Presto Python client","package":"trino","optional":false}],"imports":[{"note":"TrinoDataSource is not directly importable; configure via Scan object","wrong":"from soda_core_trino import TrinoDataSource","symbol":"TrinoDataSource","correct":"from soda.scan import Scan; # then configure data_source with type: trino"}],"quickstart":{"code":"from soda.scan import Scan\n\nscan = Scan()\nscan.set_scan_definition_name('test')\nscan.set_data_source_name('my_trino')\nscan.add_configuration_yaml_str(f'''\ndata_source my_trino:\n  type: trino\n  host: {os.environ.get('TRINO_HOST', 'localhost')}\n  port: {os.environ.get('TRINO_PORT', '8080')}\n  catalog: {os.environ.get('TRINO_CATALOG', 'tpch')}\n  schema: {os.environ.get('TRINO_SCHEMA', 'sf1')}\n  username: {os.environ.get('TRINO_USER', 'admin')}\n  password: {os.environ.get('TRINO_PASSWORD', '')}\n''')\nscan.add_sodacl_yaml_str('''\nchecks for orders:\n  - row_count > 0\n''')\nscan.execute()\nprint(scan.get_logs_text())","lang":"python","description":"Basic Soda scan against Trino with authentication from environment variables."},"warnings":[{"fix":"Use Scan object with configuration YAML or dictionary instead of importing data source classes directly.","message":"In Soda Core 3.x, the API changed significantly from 2.x. The Scan object replaced the old SodaServerClient. Direct imports of data source classes are deprecated.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Add 'verify: false' under the data source configuration or set environment variable SODA_VERIFY=false.","message":"Trino password authentication requires SSL/TLS by default; if your cluster doesn't use SSL, set 'verify' to False in the config.","severity":"gotcha","affected_versions":"all"},{"fix":"Verify network connectivity with a simple trino client test before using Soda.","message":"The Trino host and port must be reachable from the environment where Soda runs; connection errors often stem from network/firewall issues.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"pip install soda-core-trino","cause":"Missing installation of soda-core or soda-core-trino","error":"ModuleNotFoundError: No module named 'soda'"},{"fix":"Ensure scan.add_configuration_yaml_str is called with proper indentation and 'type: trino'.","cause":"Configuration YAML not added or incorrectly formatted","error":"soda.core.exceptions.DataSourceError: Data source 'my_trino' not found"},{"fix":"Check Trino server status and verify host/port in config; ensure network access.","cause":"Trino server not running or host/port incorrect","error":"trino.exceptions.TrinoConnectionError: Failed to connect to ...: Connection refused"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}