Create Destination(s)
Create a Destination
Creating a data destination in Nexla allows you to define where and how your processed data should be output. Destinations can write to various systems including databases, file storage, APIs, and streaming platforms.
Required Fields
When creating a destination, you must specify these essential components:
name: A unique identifier for your destinationsink_type: The type of destination (e.g., s3, postgres, kafka)sink_config: Configuration specific to the destination typedata_credentials_id: Authentication credentials for the target systemdata_set_id: The Nexset whose output will be written to this destination
API Endpoint
The primary endpoint for creating destinations is:
POST /data_sinks
Response Structure
A successful creation returns a complete destination object with all configuration details, credentials, and metadata.
Creating with Existing Credentials
You can reference existing credentials when creating a destination. This approach is useful when you have already configured authentication for a target system.
- Nexla API
POST /data_sinks
{
"name": "Test Destination",
"description": "Destination for processed customer data",
"sink_type": "dropbox",
"sink_config": {
"mapping": {
"mode": "auto",
"tracker_mode": "NONE"
},
"data_format": "json",
"sink_type": "dropbox",
"path": "/nexlatests/dataout/rel22",
"output.dir.name.pattern": "demo/{yyyy}/{MM}/{dd}"
},
"data_credentials": 8342,
"data_set_id": 22194
}
Creating with Inline Credentials
You can also create credentials inline when setting up a destination. This approach is convenient for one-time setups or when you want to manage everything in a single request.
- Nexla API
POST /data_sinks
{
"name": "Test Destination",
"description": "Destination with inline credentials",
"sink_type": "dropbox",
"sink_config": {
"mapping": {
"mode": "auto",
"tracker_mode": "NONE"
},
"data_format": "json",
"sink_type": "dropbox",
"path": "/nexlatests/dataout/rel22",
"output.dir.name.pattern": "demo/{yyyy}/{MM}/{dd}"
},
"data_set_id": 22194,
"data_credentials": {
"name": "FTP CREDS",
"credentials_type": "ftp",
"credentials_version": "1",
"credentials": {
"credentials_type": "ftp",
"account_id": "XYZ",
"password": "123"
}
}
}
Destination Configuration
The sink_config object contains destination-specific settings that control how data is written and formatted.
File System Destinations
For file-based destinations like S3, FTP, or Dropbox:
{
"sink_config": {
"mapping": {
"mode": "manual",
"mapping": {
"customer_id": ["customer_id"],
"name": ["customer_name"],
"email": ["email_address"]
},
"fields_order": ["customer_id", "name", "email"],
"tracker_mode": "NONE"
},
"data_format": "csv",
"sink_type": "s3",
"path": "bucket-name/output-folder",
"output.dir.name.pattern": "{yyyy}-{MM}-{dd}/{HH}"
}
}
Database Destinations
For database destinations like PostgreSQL or Redshift:
{
"sink_config": {
"insert.mode": "UPSERT",
"upsert.nulls": true,
"sink_type": "redshift",
"table": "customer_data",
"database": "analytics_db",
"primary.key": "customer_id",
"mapping": {
"mode": "manual",
"mapping": {
"customer_id": "customer_id",
"customer_name": "name",
"email_address": "email"
}
}
}
}
Post-Creation Steps
After successfully creating a destination, you should:
- Verify Configuration: Check that all settings match your requirements
- Test Connection: Validate connectivity to the target system
- Activate Destination: Start the data flow to begin writing data
- Monitor Performance: Track delivery success rates and performance
Best Practices
To ensure successful destination creation:
- Use Descriptive Names: Choose names that clearly identify the destination's purpose
- Validate Credentials: Ensure credentials have appropriate permissions for the target system
- Test Configurations: Verify sink configurations work with your data format
- Plan Mapping: Design field mappings that preserve data integrity
- Consider Scheduling: Set appropriate output frequencies based on your data volume
Error Handling
Common creation issues and solutions:
- Invalid Credentials: Verify credential IDs exist and are accessible
- Missing Required Fields: Ensure all mandatory parameters are provided
- Invalid Sink Type: Confirm the sink type is supported and properly configured
- Mapping Errors: Validate field mappings match your Nexset schema
- Permission Issues: Check that your account can create destinations
Related Operations
After creating a destination, you may need to:
Update Configuration
PUT /data_sinks/{destination_id}
Activate Destination
PUT /data_sinks/{destination_id}/activate
Test Connection
PUT /data_sinks/{destination_id}/probe/authenticate
Monitor Status
GET /data_sinks/{destination_id}/flow/status_metrics