Skip to main content

Setting Up Data Connections

Coginiti supports connections to various data sources including databases, object stores, and local files. This guide covers everything you need to know about setting up, managing, and troubleshooting data connections in Coginiti.

For database connections specifically, Coginiti uses JDBC (Java Database Connectivity) to connect to all supported data platforms.

Overview

Coginiti's connection system provides:

  • Universal JDBC support for any database with JDBC drivers
  • Primary connectors with full CoginitiScript integration and advanced features
  • Generic JDBC support for basic SQL querying on other databases
  • Automatic driver management with Maven integration
  • Custom driver uploads for specific versions or proprietary drivers
  • User-friendly connection forms instead of manual JDBC URL construction
  • Multiple authentication methods including cloud provider integrations

Database Support Levels

Coginiti offers two tiers of database support:

Primary Connectors

Primary connectors provide the full Coginiti experience including:

  • CoginitiScript support - Full language feature compatibility
  • Deep database object support - Browse schemas, tables, views, functions
  • Automatic script generation - DDL and DML script creation
  • Data insert capabilities - Built-in data insertion tools
  • Advanced authentication - Platform-specific auth methods
  • Optimized performance - Platform-specific optimizations

Generic JDBC Support

Generic JDBC support provides basic connectivity for databases not in the primary list:

  • SQL querying - Execute SQL statements and view results
  • Basic connection management - Standard JDBC connection handling
  • Manual configuration - Requires manual JDBC URL construction
  • Limited features - No CoginitiScript or advanced platform features

Primary Connector Platforms

The following databases have primary connector support with full CoginitiScript integration:

Cloud Data Platforms

  • Amazon Redshift - AWS data warehouse service
  • Amazon Athena - Serverless query service
  • Databricks - Unified analytics platform
  • Snowflake - Cloud data platform
  • Google BigQuery - Serverless data warehouse
  • Microsoft Synapse - Analytics service
  • Microsoft Fabric - Analytics platform
  • Yellowbrick - Hybrid cloud data warehouse

Cloud Databases

  • Amazon Aurora - PostgreSQL compatible
  • Amazon RDS (multiple engines):
    • PostgreSQL
    • Oracle
    • DB2
    • SQL Server
  • Google Cloud SQL - Fully managed relational database
  • Google AlloyDB - PostgreSQL-compatible database
  • Microsoft Azure SQL - Cloud database service
  • Microsoft Fabric SQL - SQL analytics in Fabric

Enterprise Data Platforms

  • Apache Hive - Hadoop data warehouse software
  • Apache Spark (with Thrift) - Unified analytics engine
  • Greenplum - Massively parallel processing database
  • IBM DB2 - Enterprise relational database
  • IBM Netezza - Data warehouse appliance
  • Microsoft SQL Server - Enterprise database platform
  • Oracle
  • Trino - Distributed SQL query engine

Generic JDBC Support

Any database with JDBC drivers can be connected using generic JDBC support, including but not limited to:

  • MySQL
  • MariaDB
  • DuckDB
  • SQLite
  • H2 Database
  • Apache Derby
  • Firebird
  • And many others with JDBC drivers
Feature Limitations

Databases using generic JDBC support are limited to basic SQL querying. Advanced features like CoginitiScript, automatic script generation, and deep object browsing are not available.

JDBC Driver Management

Automatic Driver Downloads

Coginiti doesn't ship with JDBC drivers pre-installed but provides seamless driver management:

  1. Maven Integration: Automatically downloads drivers from Maven Central
  2. Version Selection: Choose from available driver versions
  3. Automatic Updates: Option to update to newer driver versions
  4. Dependency Resolution: Handles driver dependencies automatically

Custom Driver Upload

For specific requirements, you can upload your own JDBC drivers:

When to use custom drivers:

  • Need a specific driver version not available in Maven
  • Using proprietary or modified drivers
  • Corporate security requires specific driver versions
  • Beta testing new driver features

How to upload custom drivers:

  1. Navigate to connection settings
  2. Click "Upload Custom Driver"
  3. Select your JAR file(s)
  4. Specify driver class name if non-standard
  5. Test the connection to verify compatibility

Connection Setup Process

General Steps

  1. Open Connection Manager

    • Navigate to File → Edit Connections
    • Or use keyboard shortcut: ⌘ + O (Mac) / Ctrl + O (Windows/Linux)
  2. Add New Connection

    • Click the Add icon (➕) next to Connections header
    • Select your database platform from the dropdown
  3. Configure Connection

    • Fill in the connection form fields
    • Download or upload appropriate JDBC driver
    • Test the connection
  4. Save and Verify

    • Click Test to verify connectivity
    • Save the connection
    • Connection appears in Database Explorer panel

Amazon Redshift Connection

Step-by-Step Setup

  1. Create New Connection

    • Open connection manager: ⌘ + O / Ctrl + O
    • Click Add (➕) → Select "Redshift"
  2. Basic Configuration

    • Connection name: Replace "New Connection" with a meaningful name
    • Host: Enter your Redshift cluster endpoint hostname
    • Port: Default is 5439
    • Database: Select target database in your cluster
  3. Driver Setup

    • JDBC Driver: Choose from available options:
      • Download from Maven (recommended)
      • Upload custom driver if needed
    • Click "download them" link for automatic driver installation
  4. Security Configuration

    • SSL Mode: Choose appropriate security level:
      • Disable: No encryption (not recommended for production)
      • Prefer: Use SSL if server supports it
      • Allow: Use SSL if server requires it
      • Require: Always require SSL (recommended)
  5. Authentication

    • Standard: Username and password
    • AWS Profile: Use configured AWS profile
    • AWS IAM Credentials: Direct IAM authentication
    • Identity Provider Federation: SAML/OIDC integration
  6. Advanced Settings

    • Connection timeout: Session disconnect timeout (seconds)
    • Advanced Properties: Additional JDBC parameters
  7. Test and Save

    • Click Test to verify connection
    • Click Save to store configuration
    • Connection appears in Database Explorer

Redshift Authentication Methods

Standard Authentication

Username: your_redshift_user
Password: your_redshift_password

AWS Profile Authentication

  • Uses AWS credentials from ~/.aws/credentials
  • Automatically handles temporary credentials
  • Best for development environments

AWS IAM Credentials

  • Direct IAM user credentials
  • Programmatic access keys
  • Good for service accounts

Identity Provider Federation

  • SAML 2.0 integration
  • OIDC/OAuth 2.0 support
  • Enterprise SSO integration

Common Redshift Settings

SSL Configuration:

SSL Mode: Require
SSL Factory: (auto-detected)

Performance Tuning:

# Advanced Properties examples
loginTimeout=30
socketTimeout=0
tcpKeepAlive=true
ApplicationName=Coginiti

Primary Connector Configuration Examples

Snowflake

Connection Parameters:

  • Account: Snowflake account identifier
  • Warehouse: Compute warehouse
  • Database: Default database
  • Schema: Default schema

Authentication:

  • Username/Password
  • Key Pair Authentication
  • OAuth 2.0

Google BigQuery

Connection Parameters:

  • Project ID: Google Cloud project
  • Dataset: Default dataset (optional)
  • Location: Data location (optional)

Authentication:

  • Service Account JSON key
  • Application Default Credentials
  • OAuth 2.0 user credentials

Databricks

Connection Parameters:

  • Server hostname: Databricks workspace URL
  • HTTP Path: Cluster or SQL warehouse path
  • Port: 443 (default for HTTPS)

Authentication:

  • Personal Access Token
  • OAuth 2.0
  • Azure Active Directory (Azure Databricks)

IBM DB2

Connection Parameters:

  • Host: DB2 server hostname
  • Port: 50000 (default)
  • Database: Database name
  • Schema: Default schema (optional)

Authentication:

  • Username/Password
  • Kerberos authentication
  • SSL client certificates

Advanced Configuration

Custom Properties

Advanced JDBC properties for fine-tuning:

# Connection tuning
connectTimeout=30000
socketTimeout=0
loginTimeout=30

# SSL/TLS settings
ssl=true
sslmode=require
sslcert=/path/to/client-cert.pem

# Application identification
ApplicationName=Coginiti-Analytics
ClientHostname=analytics-server

# Performance options
defaultRowFetchSize=1000
prepareThreshold=5

Security Best Practices

Connection Security

  1. Always use SSL/TLS in production environments
  2. Verify certificates when possible
  3. Use strong authentication methods
  4. Rotate credentials regularly
  5. Limit database permissions to minimum required

Credential Management

  1. Never hardcode credentials in scripts or configuration
  2. Use environment variables for sensitive information
  3. Leverage cloud provider authentication when available
  4. Implement credential rotation policies
  5. Monitor access logs for unusual activity

Network Security

  1. Use VPNs or private networks when possible
  2. Configure firewall rules to restrict access
  3. Enable connection logging for audit trails
  4. Use connection timeouts to prevent hanging connections
  5. Monitor network traffic for anomalies

Troubleshooting

Common Connection Issues

Driver Not Found

Symptoms: "Driver class not found" or "No suitable driver" errors

Solutions:

  1. Download the correct driver for your database platform
  2. Verify driver compatibility with your database version
  3. Upload custom driver if using non-standard version
  4. Check driver class name matches database requirements

Connection Timeout

Symptoms: Connection attempts hang or timeout

Solutions:

  1. Verify host and port are correct and accessible
  2. Check firewall rules allow connections on the specified port
  3. Increase connection timeout in advanced settings
  4. Test network connectivity using telnet or ping
  5. Verify database server is running and accepting connections

Authentication Failed

Symptoms: "Login failed" or "Access denied" errors

Solutions:

  1. Verify username and password are correct
  2. Check user has necessary database permissions
  3. Ensure account is not locked or expired
  4. For cloud databases, verify IP whitelisting rules
  5. Test credentials using database-native tools

SSL/TLS Issues

Symptoms: SSL handshake failures or certificate errors

Solutions:

  1. Verify SSL mode matches server requirements
  2. Check if custom certificates are needed
  3. Validate certificate chain and expiration
  4. Try different SSL modes (prefer, allow, require)
  5. Update JDBC driver to latest version

Performance Issues

Symptoms: Slow query execution or connection establishment

Solutions:

  1. Optimize network connectivity between Coginiti and database
  2. Adjust query timeout values
  3. Check database server performance
  4. Consider using read replicas for analytics workloads

Platform-Specific Issues

Amazon Redshift

  • Cluster paused: Ensure cluster is running
  • VPC security groups: Verify inbound rules allow connections
  • Parameter groups: Check connection-related parameters
  • IAM permissions: Verify IAM roles and policies for IAM authentication

Snowflake

  • Account identifier: Use correct account format (account.region.cloud)
  • Warehouse state: Ensure warehouse is running
  • Network policies: Check Snowflake network access rules
  • Role permissions: Verify user has appropriate role assignments

Google BigQuery

  • Project permissions: Ensure service account has BigQuery access
  • Dataset access: Verify permissions on specific datasets
  • Quota limits: Check for API quota exhaustion
  • Billing: Ensure project has active billing account

Monitoring and Maintenance

Connection Health Monitoring

  1. Regular testing: Periodically test saved connections
  2. Performance monitoring: Track connection establishment times
  3. Error logging: Monitor connection error patterns
  4. Usage analytics: Track connection usage patterns

Maintenance Tasks

  1. Driver updates: Keep JDBC drivers current
  2. Credential rotation: Update passwords and keys regularly
  3. Certificate renewal: Monitor SSL certificate expiration
  4. Configuration review: Audit connection settings periodically

Performance Optimization

  1. Connection pooling: Tune pool sizes for workload
  2. Query optimization: Use appropriate fetch sizes
  3. Network optimization: Minimize latency between Coginiti and databases
  4. Resource allocation: Right-size database resources for analytics workloads

Getting Help

For additional support with database connections:

When contacting support, please provide:

  • Database platform and version
  • JDBC driver version
  • Connection configuration (without credentials)
  • Error messages and logs
  • Network topology information (if relevant)

Summary

Coginiti's JDBC-based connection system provides flexible, secure access to all major data platforms. Key takeaways:

Use automatic driver downloads for standard setups ✅ Upload custom drivers when needed for specific requirements ✅ Always enable SSL/TLS in production environments ✅ Choose appropriate authentication methods for your security model ✅ Test connections thoroughly before production use ✅ Monitor and maintain connections regularly

By following the guidelines in this document, you can establish reliable, secure connections to your data platforms and maintain them effectively over time.