Data store triggers let you read from and write to specialized data storage systems — caches, search engines, and enterprise databases. These systems serve different purposes than traditional relational databases: Redis is for fast caching and real-time data, Elasticsearch is for full-text search and analytics, Teradata and Sybase are enterprise-grade data warehouses.
RTILA X provides four data store triggers, each targeting a different type of storage system:
Trigger
System Type
Best For
Redis
In-memory cache / data store
Caching scraped data, real-time feeds, pub/sub messaging
Elasticsearch
Search engine / analytics
Full-text search, log analysis, data indexing
Teradata
Enterprise data warehouse
Large-scale enterprise analytics
Sybase ASE
Enterprise database
Legacy enterprise systems
Redis is an in-memory data store that is incredibly fast because it keeps data in RAM rather than on disk. It’s used for caching, session management, real-time analytics, message queues, and more. Think of Redis as a super-fast sticky note that applications can read from and write to instantly.
The Redis trigger connects to a Redis server and performs one of several operations: storing a value, retrieving a value, adding to a list, reading from a list, publishing a message, or deleting a key. This makes it versatile for many use cases — from caching scraped data to feeding real-time dashboards.
Parameter
Type
Required
Default
Description
host
string
✅ Yes
—
The hostname or IP address of your Redis server. Example: localhost, redis.company.com, or 192.168.1.100.
port
integer
❌ No
6379
The port your Redis server listens on. The default Redis port is 6379.
operation
string
✅ Yes
—
The operation to perform. Options: set, get, lpush, rpush, lrange, publish, delete.
password
string
❌ No
—
Your Redis password. Leave empty if your Redis server doesn’t require authentication.
db
integer
❌ No
0
The Redis database number. Redis supports 16 databases numbered 0–15. Default is 0.
key
string
❌ No
—
The Redis key for set, get, or delete operations. Example: scraped:product:123. Supports ${variable} substitution.
value
string
❌ No
—
The value to store (for set) or the item to push to a list (for lpush/rpush). Supports ${variable} substitution.
list_name
string
❌ No
—
The name of the Redis list for lpush, rpush, and lrange operations.
channel
string
❌ No
—
The pub/sub channel name for the publish operation.
message
string
❌ No
—
The message to publish to the channel (for publish). Supports ${variable} substitution.
start
integer
❌ No
0
The start index for lrange (read list) operation. 0 means start from the beginning.
end
integer
❌ No
-1
The end index for lrange. -1 means read to the end of the list.
ttl
integer
❌ No
—
Time-to-live in seconds. When set, the key automatically expires after this many seconds. Useful for caching.
Operation
What It Does
Required Parameters
Example Use Case
set
Stores a value under a key
key, value
Cache a product price
get
Retrieves the value of a key
key
Read a cached value
lpush
Adds an item to the beginning of a list
list_name, value
Add a new item to a feed
rpush
Adds an item to the end of a list
list_name, value
Append to a queue
lrange
Reads items from a list
list_name
Read all items from a queue
publish
Publishes a message to a channel
channel, message
Notify subscribers of new data
delete
Removes a key and its value
key
Clear a cache entry
"host" : " redis.company.com " ,
"password" : " redis-password " ,
"key" : " scraped:product:${product_id} " ,
"value" : " ${product_data} " ,
This caches the scraped product data for 24 hours (86400 seconds).
"list_name" : " scraped_products_queue " ,
"value" : " ${product_name}|${product_price}|${product_url} "
"host" : " redis.company.com " ,
"channel" : " scraping_alerts " ,
"message" : " Scrape completed: ${record_count} records from ${target_url} "
"list_name" : " scraped_products_queue " ,
TTL tells Redis how long to keep a key before automatically deleting it. This is perfect for caching:
TTL Value
Duration
Use Case
60
1 minute
Very short-lived cache
3600
1 hour
Hourly cache
86400
24 hours
Daily cache
604800
7 days
Weekly cache
(empty)
No expiry
Data stays until manually deleted
Operation
Output
set
OK if successful
get
The stored value, or null if the key doesn’t exist
lpush / rpush
The new length of the list
lrange
An array of list items
publish
The number of subscribers that received the message
delete
1 if the key was deleted, 0 if it didn’t exist
Elasticsearch is a powerful search and analytics engine. It’s used for full-text search, log analysis, monitoring, and data analytics. If you need to make your scraped data searchable or feed it into an analytics pipeline, Elasticsearch is the tool.
The Elasticsearch trigger connects to an Elasticsearch cluster and can index documents (store data), search for documents, retrieve a specific document, delete a document, or bulk-index multiple documents at once.
Parameter
Type
Required
Default
Description
host
string
✅ Yes
—
The hostname or IP address of your Elasticsearch server. Example: localhost, es.company.com.
port
integer
❌ No
9200
The HTTP port. Default Elasticsearch HTTP port is 9200.
operation
string
✅ Yes
—
The operation to perform. Options: index_doc, search, get_doc, delete_doc, bulk_index.
index_name
string
❌ No
—
The name of the Elasticsearch index (like a database table). Example: products, scraping_logs.
doc_id
string
❌ No
—
The unique ID of a document. Used with get_doc and delete_doc.
document
object
❌ No
—
The document body to index. Used with index_doc. Supports ${variable} substitution.
query
object
❌ No
—
The search query in Elasticsearch Query DSL. Used with search.
documents
list
❌ No
—
A list of documents for bulk_index. Use ${dataset} to index all scraped data.
use_ssl
boolean
❌ No
false
If true, connects using HTTPS instead of HTTP. Enable this for production clusters.
username
string
❌ No
—
Username for authentication. Required if your cluster has security enabled.
password
string
❌ No
—
Password for authentication.
Operation
What It Does
Required Parameters
Example Use Case
index_doc
Stores a single document in an index
index_name, document
Index a scraped product
search
Searches for documents matching a query
index_name, query
Find products matching criteria
get_doc
Retrieves a specific document by ID
index_name, doc_id
Get a specific record
delete_doc
Deletes a specific document by ID
index_name, doc_id
Remove outdated data
bulk_index
Indexes multiple documents at once
index_name, documents
Bulk-load all scraped data
"host" : " es.company.com " ,
"operation" : " index_doc " ,
"index_name" : " scraped_products " ,
"name" : " ${product_name} " ,
"price" : " ${product_price} " ,
"password" : " es-password "
"host" : " es.company.com " ,
"operation" : " bulk_index " ,
"index_name" : " scraped_products " ,
"documents" : " ${dataset} " ,
"password" : " es-password "
"host" : " es.company.com " ,
"index_name" : " scraped_products " ,
"name" : " wireless headphones "
"password" : " es-password "
Operation
Output
index_doc
The index result with document ID and status
search
An array of matching documents with scores
get_doc
The requested document
delete_doc
Confirmation of deletion
bulk_index
Summary of indexed documents and any errors
Teradata is an enterprise-grade relational database management system designed for large-scale data warehousing and analytics. It’s used by large enterprises for business intelligence and data analytics. If your organization uses Teradata, this trigger lets you write scraped data directly to it.
The Teradata trigger connects to a Teradata database and executes a SQL query. You can use INSERT, UPDATE, SELECT, or any other SQL statement supported by Teradata.
Parameter
Type
Required
Default
Description
host
string
✅ Yes
—
The Teradata server hostname or IP address. Example: teradata.company.com.
user
string
✅ Yes
—
Your Teradata username.
password
string
✅ Yes
—
Your Teradata password.
database
string
✅ Yes
—
The Teradata database name.
query
string
✅ Yes
—
The SQL query to execute. Supports ${variable} substitution.
timeout
integer
❌ No
60
Connection timeout in seconds. Increase this for large queries or slow networks.
"host" : " teradata.company.com " ,
"password" : " teradata-password " ,
"database" : " SCRAPING_DB " ,
"query" : " INSERT INTO products (name, price, url, scraped_at) VALUES ('${product_name}', ${product_price}, '${product_url}', CURRENT_TIMESTAMP) " ,
"host" : " teradata.company.com " ,
"password" : " teradata-password " ,
"database" : " SCRAPING_DB " ,
"query" : " SELECT COUNT(*) AS total FROM products WHERE scraped_at >= CURRENT_DATE "
Query Type
Output
SELECT
An array of row objects
INSERT / UPDATE / DELETE
Number of affected rows
Sybase ASE (Adaptive Server Enterprise) is a relational database management system commonly found in enterprise environments, particularly in banking, finance, and telecommunications. If your organization still runs Sybase, this trigger lets you write scraped data to it.
The Sybase ASE trigger connects to a Sybase database and executes a SQL query. You can use INSERT, UPDATE, SELECT, or any other SQL statement supported by Sybase ASE.
Parameter
Type
Required
Default
Description
host
string
✅ Yes
—
The Sybase server hostname or IP address. Example: sybase.company.com.
port
integer
❌ No
5000
The Sybase server port. Default is 5000.
user
string
✅ Yes
—
Your Sybase username.
password
string
✅ Yes
—
Your Sybase password.
database
string
✅ Yes
—
The Sybase database name.
query
string
✅ Yes
—
The SQL query to execute. Supports ${variable} substitution.
timeout
integer
❌ No
30
Connection timeout in seconds.
"host" : " sybase.company.com " ,
"password" : " sybase-password " ,
"database" : " scraping_db " ,
"query" : " INSERT INTO products (name, price, url) VALUES ('${product_name}', ${product_price}, '${product_url}') " ,
"host" : " sybase.company.com " ,
"password" : " sybase-password " ,
"database" : " scraping_db " ,
"query" : " SELECT name, price FROM products WHERE price > 50 "
Query Type
Output
SELECT
An array of row objects
INSERT / UPDATE / DELETE
Number of affected rows
Scenario
Recommended Trigger
Caching scraped data for fast access
Redis
Feeding a real-time dashboard or feed
Redis (pub/sub)
Making scraped data searchable
Elasticsearch
Feeding log analysis or monitoring
Elasticsearch
Writing to an enterprise data warehouse
Teradata
Writing to a legacy enterprise database
Sybase ASE
Bulk-loading large datasets
Elasticsearch (bulk_index)
Temporary data storage with auto-expiry
Redis (with TTL)
Tip
Why It Matters
Use TTL for Redis caching
Prevents stale data from accumulating forever
Use bulk_index for Elasticsearch
Much faster than indexing documents one at a time
Test credentials before running
Verify your connection works before adding to production
Use ${variable} substitution
Makes your queries dynamic and reusable
Increase timeout for large queries
Default timeouts may be too short for complex operations
Use SSL/TLS for production
Enable use_ssl for Elasticsearch in production environments
Store credentials as project variables
Avoids hardcoding passwords in your trigger configuration