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
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:
- Maven Integration: Automatically downloads drivers from Maven Central
- Version Selection: Choose from available driver versions
- Automatic Updates: Option to update to newer driver versions
- 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:
- Navigate to connection settings
- Click "Upload Custom Driver"
- Select your JAR file(s)
- Specify driver class name if non-standard
- Test the connection to verify compatibility
Connection Setup Process
General Steps
-
Open Connection Manager
- Navigate to File → Edit Connections
- Or use keyboard shortcut:
⌘ + O(Mac) /Ctrl + O(Windows/Linux)
-
Add New Connection
- Click the Add icon (➕) next to Connections header
- Select your database platform from the dropdown
-
Configure Connection
- Fill in the connection form fields
- Download or upload appropriate JDBC driver
- Test the connection
-
Save and Verify
- Click Test to verify connectivity
- Save the connection
- Connection appears in Database Explorer panel
Amazon Redshift Connection
Step-by-Step Setup
-
Create New Connection
- Open connection manager:
⌘ + O/Ctrl + O - Click Add (➕) → Select "Redshift"
- Open connection manager:
-
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
-
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
- JDBC Driver: Choose from available options:
-
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)
- SSL Mode: Choose appropriate security level:
-
Authentication
- Standard: Username and password
- AWS Profile: Use configured AWS profile
- AWS IAM Credentials: Direct IAM authentication
- Identity Provider Federation: SAML/OIDC integration
-
Advanced Settings
- Connection timeout: Session disconnect timeout (seconds)
- Advanced Properties: Additional JDBC parameters
-
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
- Always use SSL/TLS in production environments
- Verify certificates when possible
- Use strong authentication methods
- Rotate credentials regularly
- Limit database permissions to minimum required
Credential Management
- Never hardcode credentials in scripts or configuration
- Use environment variables for sensitive information
- Leverage cloud provider authentication when available
- Implement credential rotation policies
- Monitor access logs for unusual activity
Network Security
- Use VPNs or private networks when possible
- Configure firewall rules to restrict access
- Enable connection logging for audit trails
- Use connection timeouts to prevent hanging connections
- Monitor network traffic for anomalies
Troubleshooting
Common Connection Issues
Driver Not Found
Symptoms: "Driver class not found" or "No suitable driver" errors
Solutions:
- Download the correct driver for your database platform
- Verify driver compatibility with your database version
- Upload custom driver if using non-standard version
- Check driver class name matches database requirements
Connection Timeout
Symptoms: Connection attempts hang or timeout
Solutions:
- Verify host and port are correct and accessible
- Check firewall rules allow connections on the specified port
- Increase connection timeout in advanced settings
- Test network connectivity using telnet or ping
- Verify database server is running and accepting connections
Authentication Failed
Symptoms: "Login failed" or "Access denied" errors
Solutions:
- Verify username and password are correct
- Check user has necessary database permissions
- Ensure account is not locked or expired
- For cloud databases, verify IP whitelisting rules
- Test credentials using database-native tools
SSL/TLS Issues
Symptoms: SSL handshake failures or certificate errors
Solutions:
- Verify SSL mode matches server requirements
- Check if custom certificates are needed
- Validate certificate chain and expiration
- Try different SSL modes (prefer, allow, require)
- Update JDBC driver to latest version
Performance Issues
Symptoms: Slow query execution or connection establishment
Solutions:
- Optimize network connectivity between Coginiti and database
- Adjust query timeout values
- Check database server performance
- 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
- Regular testing: Periodically test saved connections
- Performance monitoring: Track connection establishment times
- Error logging: Monitor connection error patterns
- Usage analytics: Track connection usage patterns
Maintenance Tasks
- Driver updates: Keep JDBC drivers current
- Credential rotation: Update passwords and keys regularly
- Certificate renewal: Monitor SSL certificate expiration
- Configuration review: Audit connection settings periodically
Performance Optimization
- Connection pooling: Tune pool sizes for workload
- Query optimization: Use appropriate fetch sizes
- Network optimization: Minimize latency between Coginiti and databases
- Resource allocation: Right-size database resources for analytics workloads
Getting Help
For additional support with database connections:
- Support Portal: support.coginiti.co
- Email Support: support@coginiti.co
- Community: Ask questions on Stack Overflow
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.