{"library":"soda-core-snowflake","title":"Soda Core Snowflake Connector","type":"library","description":"Soda Core Snowflake Connector is a plugin for Soda Core, enabling data quality monitoring and testing against Snowflake data warehouses. It extends Soda Core's capabilities to connect to and scan Snowflake databases for data quality checks. The current version is 3.5.6, and it typically releases new versions in alignment with Soda Core's release cycle.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install soda-core-snowflake"],"cli":{"name":"soda","version":"soda-core, version 3.5.6"}},"imports":["from soda.scan import Scan"],"auth":{"required":false,"env_vars":[]},"links":{"homepage":"https://www.soda.io","github":null,"docs":null,"changelog":null,"pypi":"https://pypi.org/project/soda-core-snowflake/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null},"quickstart":{"code":"import os\nfrom soda.scan import Scan\n\n# Configure Snowflake connection details using environment variables for security\n# Ensure these environment variables are set before running:\n# SNOWFLAKE_HOST, SNOWFLAKE_ACCOUNT, SNOWFLAKE_USERNAME, SNOWFLAKE_PASSWORD,\n# SNOWFLAKE_ROLE, SNOWFLAKE_WAREHOUSE, SNOWFLAKE_DATABASE, SNOWFLAKE_SCHEMA\n\nconfiguration_yaml_content = f\"\"\"\ndata_source snowflake_db:\n  type: snowflake\n  host: {os.environ.get('SNOWFLAKE_HOST', 'your_snowflake_host.snowflakecomputing.com')}\n  account: {os.environ.get('SNOWFLAKE_ACCOUNT', 'your_account_identifier')}\n  username: {os.environ.get('SNOWFLAKE_USERNAME', 'your_username')}\n  password: {os.environ.get('SNOWFLAKE_PASSWORD', 'your_password')}\n  role: {os.environ.get('SNOWFLAKE_ROLE', 'SYSADMIN')}\n  warehouse: {os.environ.get('SNOWFLAKE_WAREHOUSE', 'COMPUTE_WH')}\n  database: {os.environ.get('SNOWFLAKE_DATABASE', 'SNOWFLAKE_SAMPLE_DATA')}\n  schema: {os.environ.get('SNOWFLAKE_SCHEMA', 'TPCH_SF100')}\n\"\"\"\n\n# Define a simple data quality check\nchecks_yaml_content = \"\"\"\nchecks for snowflake_db:\n  - row_count > 0: # Checks if the customer table in the specified schema is not empty\n      name: Check for non-empty customer table\n      from CUSTOMER\n\"\"\"\n\n# Create a Scan object from soda-core\nscan = Scan()\nscan.set_verbose(True)\nscan.add_configuration_yaml_str(configuration_yaml_content)\nscan.add_checks_yaml_str(checks_yaml_content)\n\n# Execute the scan\nscan.execute()\n\n# Process and print scan results\nif scan.has_failures():\n    print(\"\\n!!! Scan completed with FAILURES !!!\")\nelse:\n    print(\"\\nScan completed successfully.\")\n\nprint(\"\\n--- Scan Logs ---\")\nprint(scan.get_logs_text())\n","lang":"python","description":"This quickstart demonstrates how to programmatically connect to Snowflake using environment variables for credentials and run a simple data quality check with Soda Core. It requires `soda-core-snowflake` to be installed for the `type: snowflake` data source to be recognized.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"3.5.6","pypi_latest":"3.5.6","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":50,"avg_install_s":11.2,"avg_import_s":1.61,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"soda-core-snowflake","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"soda-core-snowflake","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":12.7,"import_time_s":1.23,"mem_mb":26.8,"disk_size":"117M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"soda-core-snowflake","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"soda-core-snowflake","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":10.9,"import_time_s":2.04,"mem_mb":29.8,"disk_size":"126M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"soda-core-snowflake","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"soda-core-snowflake","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":9,"import_time_s":null,"mem_mb":null,"disk_size":"116M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"soda-core-snowflake","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"soda-core-snowflake","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":8.6,"import_time_s":null,"mem_mb":null,"disk_size":"113M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"soda-core-snowflake","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"soda-core-snowflake","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":14.7,"import_time_s":1.56,"mem_mb":26.4,"disk_size":"117M"}]}}