Redis Connector for CData Sync

Build 25.0.9539
  • Redis
    • Establishing a Connection
    • Data Model
      • Modeling Redis Hashes as Tables
      • Freeform Querying of Redis Keys
      • Redis Data Types
      • Tables
        • Keys
      • Stored Procedures
        • CreateSchema
        • RunBatchCommand
        • RunCommand
    • Connection String Options
      • Authentication
        • AuthScheme
        • Server
        • Port
        • LogicalDatabase
        • User
        • Password
        • EnableCluster
        • UseSSL
        • ReplicaSet
      • Connection
        • DefineTables
        • PatternSeparator
        • ReaderEndpoints
        • TablePattern
      • SSL
        • SSLClientCert
        • SSLClientCertType
        • SSLClientCertPassword
        • SSLClientCertSubject
        • SSLStartMode
        • SSLServerCert
      • SSH
        • SSHAuthMode
        • SSHClientCert
        • SSHClientCertPassword
        • SSHClientCertSubject
        • SSHClientCertType
        • SSHServer
        • SSHPort
        • SSHUser
        • SSHPassword
        • SSHServerFingerprint
        • UseSSH
      • Firewall
        • FirewallType
        • FirewallServer
        • FirewallPort
        • FirewallUser
        • FirewallPassword
      • Logging
        • LogModules
      • Schema
        • Location
        • BrowsableSchemas
        • Tables
        • Views
      • Miscellaneous
        • IgnoreTypeErrors
        • MaxRows
        • Other
        • ParallelMode
        • PseudoColumns
        • QueryTimeout
        • RowScanDepth
        • TableScanDepth
        • Timeout
        • UserDefinedViews
    • Third Party Copyrights

Redis Connector for CData Sync

Overview

The CData Sync App provides a straightforward way to continuously pipeline your Redis data to any database, data lake, or data warehouse, making it easily available for Analytics, Reporting, AI, and Machine Learning.

The Redis connector can be used from the CData Sync application to pull data from Redis and move it to any of the supported destinations.

Redis Version Support

The Sync App models Redis instances as relational databases. The Sync App leverages the Redis commands to enable bidirectional access to Redis and Redis Enterprise data through SQL. Redis versions 2.8.0 and above are supported.

Redis Connector for CData Sync

Establishing a Connection

Adding a Connection to Redis

To add a connection to Redis:

  1. In the application console, navigate to the Connections page.
  2. At the Add Connections panel, select the icon for the connection you want to add.
  3. If the Redis icon is not available, click the Add More icon to download and install the Redis connector from the CData site.

For required properties, see the Settings tab.

For connection properties that are not typically required, see the Advanced tab.

Connecting to Redis

Set the Server connection property to the name or address of the server your Redis instance is running on.

If your Redis server is running on a port other than the default (6379), you can specify your port in the Port property.

Authenticating to Redis

The Sync App supports Password and ACL authentication. Connections to Redis instances that aren't password protected are supported as well.

No Authentication

Set the AuthScheme property to None. This indicates the Redis instance is not password protected (using the requirepass directive in the configuration file).

Password

Set the AuthScheme property to Password and set the Password property to the password used to authenticate with a password protected Redis instance using the Redis AUTH command.

ACL (Access Control List)

Set the following to connect:

  • AuthScheme: Set this to ACL.
  • User: Set this to the username you use to authenticate with Redis ACL.
  • Password: Set this to the password you use to authenticate with Redis ACL.

Securing Redis Connections

You can set UseSSL to negotiate SSL/TLS encryption when you connect.

Redis Connector for CData Sync

Data Model

The Sync App enables you to model Redis key-value pairs as tables.

Tables

The Sync App enables two major paradigms for modeling Redis key-value pairs as tables.

Modeling Redis Hashes as Tables

Redis key patterns can be modeled as tables. See Freeform Querying of Redis Keys for a breakdown of the different configuration options.

Freeform Querying of Redis Keys

It is also possible to query keys directly as if they are tables.

If you would like to query specific keys as tables, see Modeling Redis Hashes as Tables.

If you would like to query all keys in the Redis keystore from a single table, see the Keys table.

Redis Data Types

See Redis Data Types for a list of the Redis data types supported by the Sync App.

Stored Procedures

Use the available Stored Procedures to submit commands (in native redis-cli syntax) to the Redis server for direct execution.

Redis Connector for CData Sync

Modeling Redis Hashes as Tables

The Sync App can be configured to shape the discovered metadata.

Use the DefineTables, TablePattern, and PatternSeparator connection properties to customize how tables and columns are inferred from the Redis key store.

Presume the following hashes have been created in the Redis server (either with redis-cli or the RunCommand storec procedure).

> hmset user:1000 name "John Smith" email "[email protected]" password "s3cret"
OK
> hmset user:1001 name "Mary Jones" email "[email protected]" password "hidden" 
OK
> hmset user:1002 name "Sally Brown" email "[email protected]" password "p4ssw0rd"
OK
> hmset customer:200 name "John Smith" account "123456" balance "543.21"
OK
> hmset customer:201 name "Mary Jones" account "123457" balance "654.32" 
OK
> hmset customer:202 name "Sally Brown" account "123458" balance "765.43"
OK

When these properties are used to define the Sync App's behavior, the Redis keys will be pivoted, so that each Redis key that matches the pattern in the definition is represented as a single row in the table. Each value associated with that Redis key becomes a column for the table.

DefineTables Property

The DefineTables connection property allows you to explicitly define the names of the tables that will appear. To do so, set the property to a comma-separated string of name-value pairs, where the name is the name of the table and the value is the pattern used to assign Redis keys to that table.

The Sync App aggregates all of the Redis keys that match the specified patterns.

DefineTables=Users=user:*,Customers=customer:*;

With the property set as above, the Users and Customers tables will be exposed. If you were to query the tables, you would see the following results:

SELECT * FROM Users

RedisKey name email password
user:1000 John Smith [email protected] s3cret
user:1001 Mary Jones [email protected] hidden
user:1002 Sally Brown sally.b@example p4ssw0rd

SELECT * FROM Customers

RedisKey name account balance
customer:200 John Smith 123456 543.21
customer:201 Mary Jones 123456 654.32
customer:202 Sally Brown 123456 765.43

TablePattern Property

The TablePattern connection property allows you to define the separator(s) that determine how the Sync App defines tables. For the Redis keys described above, "user" and "customer" would be defined as tables if the separator is set to ":" since the unique piece of each Redis key appears after the ":". If you have a need to structure the tables differently, to drill down further, you can include multiple instances of the separator. Set the property to a pattern that includes the separator(s) needed to define your table structure. (Below is the default value.)

You can also manually specify the pattern separator indepently from the TablePattern using the PatternSeparator property.

TablePattern=*:*;

With the property set as above, the user and customer tables will be exposed. If you were to query the tables, you would see the following results:

SELECT * FROM user

RedisKey name email password
user:1000 John Smith [email protected] s3cret
user:1001 Mary Jones [email protected] hidden
user:1002 Sally Brown sally.b@example p4ssw0rd

SELECT * FROM customer

RedisKey name account balance
customer:200 John Smith 123456 543.21
customer:201 Mary Jones 123456 654.32
customer:202 Sally Brown 123456 765.43

Redis Connector for CData Sync

Freeform Querying of Redis Keys

The most direct way to work with Redis data with the Sync App is to use a Redis key as a table name. Below you will find sample data, queries, and results based on Redis data types.

Note: This page contains redis-cli syntax. Use either your own instance of redis-cli or the RunCommand procedure to send queries from the Sync App to the Redis server for direct execution.

Redis Strings

Create a string in Redis:

> set mykey somevalue
OK
If you perform a SELECT query on mykey the Sync App will return the following:

SELECT * FROM mykey

RedisKey ValueIndex Value RedisType ValueScore
mykey 1 somevalue String NULL

Redis Lists

Create a list in Redis:

> rpush mylist A B C
(integer) 3
If you perform a SELECT query on mylist the Sync App will return the following:

SELECT * FROM mylist

RedisKey ValueIndex Value RedisType ValueScore
mylist 1 A List NULL
mylist 2 B List NULL
mylist 3 C List NULL

Deleting Redis Lists

List type records can also be removed using DELETE statements, though they must be performed by specifying the Value column in the WHERE clause:

DELETE FROM Keys WHERE Value = 'myvalue' AND RedisKey = 'mylist'

Note that using ValueIndex in the WHERE clause of the DELETE statement is not supported.

Redis Sets

Create a set in Redis:

> sadd myset 1 2 3
(integer) 3
If you perform a SELECT query on myset the Sync App will return the following (note that Redis can return the elements of a set in any order):

SELECT * FROM myset

RedisKey ValueIndex Value RedisType ValueScore
myset 1 2 Set NULL
myset 2 1 Set NULL
myset 3 3 Set NULL

Redis Sorted Sets

Create a ZSet (sorted set) in Redis:

> zadd hackers 1940 "Alan Kay" 1957 "Sophie Wilson" 1953 "Richard Stallman" 1949 "Anita Borg"
(integer) 9
If you perform a SELECT query on hackers the Sync App will return the following:

SELECT * FROM hackers

RedisKey ValueIndex Value RedisType ValueScore
hackers 1 Alan Kay ZSet 1940
hackers 2 Anita Borg ZSet 1949
hackers 3 Richard Stallman ZSet 1953
hackers 4 Sophie Wilson ZSet 1957

Redis Hashes

Create a hash in Redis:

> hmset user:1000 username antirez birthyear 1977 verified 1
OK
If you perform a SELECT query on user:1000 the Sync App will return the following:

SELECT * FROM user:1000

RedisKey ValueIndex Value RedisType ValueScore
user:1000 username antirez Hash NULL
user:1000 birthyear 1977 Hash NULL
user:1000 verified 1 Hash NULL

Querying Key Patterns as Tables

You can retrieve multiple Redis keys at once by using a pattern (e.g., "user:*") as a table name. For example, start by adding several keys to Redis that match a pattern:

> hmset user:1000 name "John Smith" email "[email protected]" password "s3cret"
OK
> hmset user:1001 name "Mary Jones" password "hidden" email "[email protected]"
OK

If you use user:* as the table name, the Sync App will retrieve all Redis key-value pairs whose keys match the pattern. You can see the expected results below:

SELECT * FROM [user:*]

RedisKey ValueIndex Value RedisType ValueScore
user:1000 name John Smith Hash NULL
user:1000 email [email protected] Hash NULL
user:1000 password s3cret Hash NULL
user:1001 name Mary Jones Hash NULL
user:1001 email [email protected] Hash NULL
user:1001 password hidden Hash NULL

Redis Connector for CData Sync

Redis Data Types

Redis Data Types Supported by the Data Provider

  • Binary-safe Strings.
  • Lists: collections of string elements sorted according to the order of insertion. They are basically linked lists.
  • Sets: collections of unique, unsorted string elements.
  • Sorted Sets (ZSets): similar to sets but where every string element is associated to a floating number value, called score. The elements are always taken sorted by their score, so unlike sets it is possible to retrieve a range of elements (for example you may ask: give me the top 10, or the bottom 10).
  • Hashes: maps composed of fields associated with values. Both the field and the value are strings. This is very similar to Ruby or Python hashes.

Redis Connector for CData Sync

Tables

The Sync App models the data in Redis as a list of tables in a relational database that can be queried using standard SQL statements.

Redis Connector for CData Sync Tables

Name Description
Keys Returns keys present in the Redis store.

Redis Connector for CData Sync

Keys

Returns keys present in the Redis store.

This table allows you to query all Redis keys in one place. It models Redis key metadata in exactly the same way as described in Freeform Querying of Redis Keys.

Columns

Name Type ReadOnly Description
RedisKey [KEY] String False

The name of the Redis key.

ValueIndex String False

Varies by type: 1 for strings; the one-based index for sets, lists, and sorted sets; or the associated field name for hashes.

Value String False

The value associated with the Redis key.

RedisType String False

The type associated with the Redis key.

ValueScore Double False

NULL for strings, lists, sets, and hashes. Returns the associated score for sorted sets.

Redis Connector for CData Sync

Stored Procedures

Stored procedures are function-like interfaces that extend the functionality of the Sync App beyond simple SELECT/INSERT/UPDATE/DELETE operations with Redis.

Stored procedures accept a list of parameters, perform their intended function, and then return any relevant response data from Redis, along with an indication of whether the procedure succeeded or failed.

Redis Connector for CData Sync Stored Procedures

Name Description
RunBatchCommand Sequentially executes a batch of Redis commands using either a temporary table or a batch file.
RunCommand Passes a command to the Redis server for direct execution. Use standard redis-cli syntax.

Redis Connector for CData Sync

CreateSchema

Creates a custom schema file based on the specified columns.

Define Tables Manually

It is also possible to define the fields and patterns of a table directly using the Sync App's CreateSchema stored procedure. The table definitions generated by CreateSchema are plain text configuration files that are easy to extend.

To create a schema, you can invoke the CreateSchema procedure using EXECUTE. It accepts these five parameters:

  • TableName is the name of the table to be created.
  • KeyPattern contains a key pattern as described in rpgusingproperties.
  • Columns contains a column separated list of names, not including RedisKey. These will be used as the attributes of any hashes inserted into the table.
  • Description is optional, and contains a free-form note about the table. If not provided, it will be left blank.
  • OutputFolder is optional, and contains the path of the folder the schema file is written to. If not provided, the Location connection property is used.

For example, you can create a basic schema using a query like this:

EXECUTE CreateSchema TableName = 'users', KeyPattern = 'user:*', Columns = 'name,email,password'

Once a schema has been defined, it can be used as a table in SELECT, INSERT, UPDATE or DELETE statements. Any values inserted into the table will be formatted as hashes. For example, the query:

INSERT INTO users (RedisKey, name, email, password) VALUES ('user:1000', 'John Smith', '[email protected]', 's3cret')

Will generate this Redis command:

hmset user:1000 name "John Smith" email "[email protected]" password "s3cret"

Input

Name Type Required Description
TableName String True The name for the new table.
KeyPattern String True The Redis Key pattern for table.
Columns String True A comma-separated list of columns to include in the schema file.
Description String False An optional description for the table.
WriteToFile String False Whether to write the contents of this stored procedure to a file or not (Default = true) needs to be set to false to output FileStream of FileData

Result Set Columns

Name Type Description
Success String Whether or not the schema was created successfully.
SchemaFile String The generated schema file.
FileData String File data that will be outputted encoded in Base64 if the WriteToFile=False and FileStream inputs are not set.

Redis Connector for CData Sync

RunBatchCommand

Sequentially executes a batch of Redis commands using either a temporary table or a batch file.

Batch commands are much more efficient because the Sync App does not need to send and wait for single commands to complete. Instead, the Sync App will send several commands and wait for them as a group.

Method 1: Batch File

Create a text document and populate it with one Redis command per line without any delimiters. Empty lines are skipped.

For example:

set key1 value1
set key2 value2
set key3 value3

Then, invoke the procedure with the path to the file supplied in the CommandFile input.

EXECUTE RunBatchCommand CommandFile = "C:\\Users\\username\\Public Documents\\batchfile.txt"

TEMP Tables

Populate a temporary table with Redis commands.

INSERT INTO Commands#TEMP (CommandLine) VALUES ("rpush mylist value1")
INSERT INTO Commands#TEMP (CommandLine) VALUES ("rpush mylist value2")
INSERT INTO Commands#TEMP (CommandLine) VALUES ("rpush mylist value3")

Then, invoke the procedure with the name of the temporary table provided in the CommandTable input.

EXECUTE RunBatchCommand CommandTable = "Commands#TEMP"

Input

Name Type Required Description
CommandTable String False Specifies a temporary table to be used in generating a batch of Redis commands for direct execution on the Redis server.
CommandFile String False The path to a file containing a batch of Redis commands. These commands will be sequentially and directly executed on the Redis server.
KeyType String False The format for the Redis server output. 'AUTO' returns the keys in list format (nested lists will each be one compound result). 'HASH' returns the keys as a hash (each group is a row, each property gets its own column).

The allowed values are AUTO, HASH.

The default value is AUTO.

Result Set Columns

Name Type Description
* String Output will vary for each collection.

Redis Connector for CData Sync

RunCommand

Passes a command to the Redis server for direct execution. Use standard redis-cli syntax.

Running Redis Commands Directly

You can use this procedure to run a command directly that isn't exposed by the usual CRUD operations on tables. For example, the FLUSHDB command removes all keys from the current database:

EXECUTE RunCommand @CommandLine = 'FLUSHDB'

You can also run commands which require parameters by separating them with spaces, the same as in redis-cli. Double-quotes are also available if you need to embed spaces into a parameter value:

EXECUTE RunCommand @CommandLine = 'INFO "CPU"'

The Sync App will process the results of the command and return them in the appropriate format. For cases like FLUSHDB or INFO where the result is a simple value or a flat array, each element will be returned as a separate row.

'# CPU'
'used_cpu_sys:1272.08'
'used_cpu_user:537.84'
'used_cpu_sys_children:4.81'
'used_cpu_user_children:98.89'

More complex results, like the values returned from the COMMAND command, will be separated by row and then converted to JSON for final output.

'["slowlog","-2",[["admin"]],"0","0","0"]'
'["persist","2",[["write","fast"]],"1","1","1"]'
'["zrevrangebylex","-4",[["readonly"]],"1","1","1"]'
'["sinter","-2",[["readonly","sort_for_script"]],"1","-1","1"]'
'["lrange","4",[["readonly"]],"1","1","1"]'
'["hmset","-4",[["write","denyoom","fast"]],"1","1","1"]'
'["lpush","-3",[["write","denyoom","fast"]],"1","1","1"]'
'["zremrangebyscore","4",[["write"]],"1","1","1"]'
'["FT.DICTDEL","-1",[["readonly"]],"1","1","1"]'
...

Input

Name Type Required Description
CommandLine String False The command to pass directly to the Redis server for execution.
KeyType String False The format for the Redis server output. 'AUTO' returns the keys in list format (nested lists will each be one compound result). 'HASH' returns the keys as a hash (each group is a row, each property gets its own column).

The allowed values are AUTO, HASH.

The default value is AUTO.

Result Set Columns

Name Type Description
* String Output will vary for each collection.

Redis Connector for CData Sync

Connection String Options

The connection string properties are the various options that can be used to establish a connection. This section provides a complete list of the options you can configure in the connection string for this provider. Click the links for further details.

For more information on establishing a connection, see Establishing a Connection.

Authentication


PropertyDescription
AuthSchemeThe authentication mechanism that the provider will use to authenticate with Redis.
ServerThe host name or IP address of the server hosting the Redis instance.
PortThe port for the Redis database.
LogicalDatabaseThe index of the Redis Logical Database.
UserThe username provided for authentication with Redis ACL.
PasswordThe password used to authenticate with Redis.
EnableClusterThis field sets whether the Redis Cluster Mode is enabled.
UseSSLThis field sets whether SSL is enabled.
ReplicaSetThis property allows you to specify multiple servers in addition to the one configured in Server and Port . Specify both a server name and port; separate servers with a comma.

Connection


PropertyDescription
DefineTablesDefine the tables exposed by the provider using table names and Redis key patterns.
PatternSeparatorDefine the table pattern's delimiter.
ReaderEndpointsThe slave hosts and port array, which indicates the Redis Master/Slave cluster's slave instances, are split by a comma.
TablePatternDefine the tables exposed by the provider using Redis key patterns.

SSL


PropertyDescription
SSLClientCertSpecifies the TLS/SSL client certificate store for SSL Client Authentication (2-way SSL). This property works in conjunction with other SSL-related properties to establish a secure connection.
SSLClientCertTypeSpecifies the type of key store containing the TLS/SSL client certificate for SSL Client Authentication. Choose from a variety of key store formats depending on your platform and certificate source.
SSLClientCertPasswordSpecifes the password required to access the TLS/SSL client certificate store. Use this property if the selected certificate store type requires a password for access.
SSLClientCertSubjectSpecifes the subject of the TLS/SSL client certificate to locate it in the certificate store. Use a comma-separated list of distinguished name fields, such as CN=www.server.com, C=US. The wildcard * selects the first certificate in the store.
SSLStartModeThis property determines how the provider starts the SSL negotiation.
SSLServerCertSpecifies the certificate to be accepted from the server when connecting using TLS/SSL.

SSH


PropertyDescription
SSHAuthModeThe authentication method used when establishing an SSH Tunnel to the service.
SSHClientCertA certificate to be used for authenticating the SSHUser.
SSHClientCertPasswordThe password of the SSHClientCert key if it has one.
SSHClientCertSubjectThe subject of the SSH client certificate.
SSHClientCertTypeThe type of SSHClientCert private key.
SSHServerThe SSH server.
SSHPortThe SSH port.
SSHUserThe SSH user.
SSHPasswordThe SSH password.
SSHServerFingerprintThe SSH server fingerprint.
UseSSHWhether to tunnel the Redis connection over SSH. Use SSH.

Firewall


PropertyDescription
FirewallTypeSpecifies the protocol the provider uses to tunnel traffic through a proxy-based firewall.
FirewallServerIdentifies the IP address, DNS name, or host name of a proxy used to traverse a firewall and relay user queries to network resources.
FirewallPortSpecifies the TCP port to be used for a proxy-based firewall.
FirewallUserIdentifies the user ID of the account authenticating to a proxy-based firewall.
FirewallPasswordSpecifies the password of the user account authenticating to a proxy-based firewall.

Logging


PropertyDescription
LogModulesSpecifies the core modules to include in the log file. Use a semicolon-separated list of module names. By default, all modules are logged.

Schema


PropertyDescription
LocationSpecifies the location of a directory containing schema files that define tables, views, and stored procedures. Depending on your service's requirements, this may be expressed as either an absolute path or a relative path.
BrowsableSchemasOptional setting that restricts the schemas reported to a subset of all available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC .
TablesOptional setting that restricts the tables reported to a subset of all available tables. For example, Tables=TableA,TableB,TableC .
ViewsOptional setting that restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC .

Miscellaneous


PropertyDescription
IgnoreTypeErrorsRemoves support for the specified data types and ignores casting exceptions for those types.
MaxRowsSpecifies the maximum number of rows returned for queries that do not include either aggregation or GROUP BY.
OtherSpecifies advanced connection properties for specialized scenarios. Use this property only under the guidance of our Support team to address specific issues.
ParallelModeThis option sets whether the provider should use multiple connections when connecting to Redis.
PseudoColumnsSpecifies the pseudocolumns to expose as table columns, expressed as a string in the format 'TableName=ColumnName;TableName=ColumnName'.
QueryTimeoutThe timeout in seconds for which the provider will wait for the query response. The default value is -1, which indicates the provider should never time out.
RowScanDepthThe maximum number of rows to scan to look for the columns available in a table.
TableScanDepthThe maximum number of keys to scan when looking for tables available in your Redis database.
TimeoutSpecifies the maximum time, in seconds, that the provider waits for a server response before throwing a timeout error.
UserDefinedViewsSpecifies a filepath to a JSON configuration file that defines custom views. The provider automatically detects and uses the views specified in this file.
Redis Connector for CData Sync

Authentication

This section provides a complete list of the Authentication properties you can configure in the connection string for this provider.


PropertyDescription
AuthSchemeThe authentication mechanism that the provider will use to authenticate with Redis.
ServerThe host name or IP address of the server hosting the Redis instance.
PortThe port for the Redis database.
LogicalDatabaseThe index of the Redis Logical Database.
UserThe username provided for authentication with Redis ACL.
PasswordThe password used to authenticate with Redis.
EnableClusterThis field sets whether the Redis Cluster Mode is enabled.
UseSSLThis field sets whether SSL is enabled.
ReplicaSetThis property allows you to specify multiple servers in addition to the one configured in Server and Port . Specify both a server name and port; separate servers with a comma.
Redis Connector for CData Sync

AuthScheme

The authentication mechanism that the provider will use to authenticate with Redis.

Remarks

Choose one of the following:

  • None: Indicates that the Redis instance is not password protected (using the requirepass directive in the configuration file).
  • Password: The Sync App attempts to connect using the AUTH Redis command, using Password.
  • ACL: The Sync App authenticates using ACL credentials.

Redis Connector for CData Sync

Server

The host name or IP address of the server hosting the Redis instance.

Remarks

The host name or IP address of the server hosting the Redis instance.

Redis Connector for CData Sync

Port

The port for the Redis database.

Remarks

The port for the Redis database.

Redis Connector for CData Sync

LogicalDatabase

The index of the Redis Logical Database.

Remarks

The index of the Redis Logical Database. The default value is 0.

Redis Connector for CData Sync

User

The username provided for authentication with Redis ACL.

Remarks

The username provided for authentication with Redis ACL.

Redis Connector for CData Sync

Password

The password used to authenticate with Redis.

Remarks

The password used to authenticate with Redis.

Redis Connector for CData Sync

EnableCluster

This field sets whether the Redis Cluster Mode is enabled.

Remarks

This field sets whether the Redis Cluster Mode is enabled.

Redis Connector for CData Sync

UseSSL

This field sets whether SSL is enabled.

Remarks

This field sets whether the Sync App will attempt to negotiate TLS/SSL connections to the server. By default, the Sync App checks the server's certificate against the system's trusted certificate store. To specify another certificate, set SSLServerCert.

Redis Connector for CData Sync

ReplicaSet

This property allows you to specify multiple servers in addition to the one configured in Server and Port . Specify both a server name and port; separate servers with a comma.

Remarks

This property only works when EnableCluster is True. This property allows you to specify the other servers in the replica set in addition to the one configured in Server and Port. You must specify all servers in the replica set using ReplicaSet, Server, and Port.

Specify both a server name and port in ReplicaSet; separate servers with a comma. For example:

Server=localhost;Port=6379;ReplicaSet=localhost:6380,localhost:6381;

To find the primary server, the Sync App queries the servers in ReplicaSet and the server specified by Server and Port.

Redis Connector for CData Sync

Connection

This section provides a complete list of the Connection properties you can configure in the connection string for this provider.


PropertyDescription
DefineTablesDefine the tables exposed by the provider using table names and Redis key patterns.
PatternSeparatorDefine the table pattern's delimiter.
ReaderEndpointsThe slave hosts and port array, which indicates the Redis Master/Slave cluster's slave instances, are split by a comma.
TablePatternDefine the tables exposed by the provider using Redis key patterns.
Redis Connector for CData Sync

DefineTables

Define the tables exposed by the provider using table names and Redis key patterns.

Remarks

This property is used to define the key pattern within Redis that will appear as tables. The value is a comma-separated list of name-value pairs in the form [Table Name]=[Redis key pattern]. Table Name is the name of the table you want to use for the data and will be used when issuing queries. The Redis key pattern is the pattern to be used to group and pivot corresponding keys into the named table.

For example:

DefineTables="DefinedTable1=table1:*,DefinedTable2=table2:*"

Given this value, all of the keys that begin with "table1:" will be found in DefinedTable1, while all keys that begin with "table2:" will be found in DefinedTable2.

If there is any conflict between tables defined with this property and those defined by the TablePattern, these statically defined tables will take precedence.

Redis Connector for CData Sync

PatternSeparator

Define the table pattern's delimiter.

Remarks

This property is used in tandem with TablePattern to define the delimiter character for the pattern, which determines where the table names derived from the key pattern will end.

This is especially useful when there is more than one delimiter in your TablePattern.

For example, if TablePattern is set to *@*:* and there is a key called "first@second:1", a pattern separator of "@" produces the table name "first" and a PatternSeparator of ":" produces the table name "first@second".

Note that the behavior of the pattern separator is greedy, meaning the last instance of the separator character is used to specify the end of the table name.

For example, if there is a key called "first:second:1", a pattern separator of ":" produces the table name "first:second".

Redis Connector for CData Sync

ReaderEndpoints

The slave hosts and port array, which indicates the Redis Master/Slave cluster's slave instances, are split by a comma.

Remarks

The slave hosts and port array indicate the Redis Master/Slave cluster's slave instances. For example: 'ReaderEndpoints=app:6381,app:6382;'

Redis Connector for CData Sync

TablePattern

Define the tables exposed by the provider using Redis key patterns.

Remarks

This property is used to define the key patterns within Redis that will appear as tables. The value is a Redis key pattern. The Redis key pattern is a string pattern containing a separator to determine a hierarchical structure for the key-values stored in the Redis data store. Any other string patterns in the value will limit which keys will be pivoted and returned as tables.

For example, TablePattern="*:*" causes the ":" character to be used as the separator. Given the following keys,


user:1001, user:1002, user:1003, admin:001, admin:002, admin:003

two tables would be exposed, user and admin, with the related keys corresponding to individual rows in each table.

Redis Connector for CData Sync

SSL

This section provides a complete list of the SSL properties you can configure in the connection string for this provider.


PropertyDescription
SSLClientCertSpecifies the TLS/SSL client certificate store for SSL Client Authentication (2-way SSL). This property works in conjunction with other SSL-related properties to establish a secure connection.
SSLClientCertTypeSpecifies the type of key store containing the TLS/SSL client certificate for SSL Client Authentication. Choose from a variety of key store formats depending on your platform and certificate source.
SSLClientCertPasswordSpecifes the password required to access the TLS/SSL client certificate store. Use this property if the selected certificate store type requires a password for access.
SSLClientCertSubjectSpecifes the subject of the TLS/SSL client certificate to locate it in the certificate store. Use a comma-separated list of distinguished name fields, such as CN=www.server.com, C=US. The wildcard * selects the first certificate in the store.
SSLStartModeThis property determines how the provider starts the SSL negotiation.
SSLServerCertSpecifies the certificate to be accepted from the server when connecting using TLS/SSL.
Redis Connector for CData Sync

SSLClientCert

Specifies the TLS/SSL client certificate store for SSL Client Authentication (2-way SSL). This property works in conjunction with other SSL-related properties to establish a secure connection.

Remarks

This property specifies the client certificate store for SSL Client Authentication. Use this property alongside SSLClientCertType, which defines the type of the certificate store, and SSLClientCertPassword, which specifies the password for password-protected stores. When SSLClientCert is set and SSLClientCertSubject is configured, the driver searches for a certificate matching the specified subject.

Certificate store designations vary by platform. On Windows, certificate stores are identified by names such as MY (personal certificates), while in Java, the certificate store is typically a file containing certificates and optional private keys.

The following are designations of the most common User and Machine certificate stores in Windows:

MYA certificate store holding personal certificates with their associated private keys.
CACertifying authority certificates.
ROOTRoot certificates.
SPCSoftware publisher certificates.

For PFXFile types, set this property to the filename. For PFXBlob types, set this property to the binary contents of the file in PKCS12 format.

Redis Connector for CData Sync

SSLClientCertType

Specifies the type of key store containing the TLS/SSL client certificate for SSL Client Authentication. Choose from a variety of key store formats depending on your platform and certificate source.

Remarks

This property determines the format and location of the key store used to provide the client certificate. Supported values include platform-specific and universal key store formats. The available values and their usage are:

USER - defaultFor Windows, this specifies that the certificate store is a certificate store owned by the current user. Note that this store type is not available in Java.
MACHINEFor Windows, this specifies that the certificate store is a machine store. Note that this store type is not available in Java.
PFXFILEThe certificate store is the name of a PFX (PKCS12) file containing certificates.
PFXBLOBThe certificate store is a string (base-64-encoded) representing a certificate store in PFX (PKCS12) format.
JKSFILEThe certificate store is the name of a Java key store (JKS) file containing certificates. Note that this store type is only available in Java.
JKSBLOBThe certificate store is a string (base-64-encoded) representing a certificate store in JKS format. Note that this store type is only available in Java.
PEMKEY_FILEThe certificate store is the name of a PEM-encoded file that contains a private key and an optional certificate.
PEMKEY_BLOBThe certificate store is a string (base64-encoded) that contains a private key and an optional certificate.
PUBLIC_KEY_FILEThe certificate store is the name of a file that contains a PEM- or DER-encoded public key certificate.
PUBLIC_KEY_BLOBThe certificate store is a string (base-64-encoded) that contains a PEM- or DER-encoded public key certificate.
SSHPUBLIC_KEY_FILEThe certificate store is the name of a file that contains an SSH-style public key.
SSHPUBLIC_KEY_BLOBThe certificate store is a string (base-64-encoded) that contains an SSH-style public key.
P7BFILEThe certificate store is the name of a PKCS7 file containing certificates.
PPKFILEThe certificate store is the name of a file that contains a PuTTY Private Key (PPK).
XMLFILEThe certificate store is the name of a file that contains a certificate in XML format.
XMLBLOBThe certificate store is a string that contains a certificate in XML format.
BCFKSFILEThe certificate store is the name of a file that contains an Bouncy Castle keystore.
BCFKSBLOBThe certificate store is a string (base-64-encoded) that contains a Bouncy Castle keystore.

Redis Connector for CData Sync

SSLClientCertPassword

Specifes the password required to access the TLS/SSL client certificate store. Use this property if the selected certificate store type requires a password for access.

Remarks

This property provides the password needed to open a password-protected certificate store. This property is necessary when using certificate stores that require a password for decryption, as is often recommended for PFX or JKS type stores.

If the certificate store type does not require a password, for example USER or MACHINE on Windows, this property can be left blank. Ensure that the password matches the one associated with the specified certificate store to avoid authentication errors.

Redis Connector for CData Sync

SSLClientCertSubject

Specifes the subject of the TLS/SSL client certificate to locate it in the certificate store. Use a comma-separated list of distinguished name fields, such as CN=www.server.com, C=US. The wildcard * selects the first certificate in the store.

Remarks

This property determines which client certificate to load based on its subject. The Sync App searches for a certificate that exactly matches the specified subject. If no exact match is found, the Sync App looks for certificates containing the value of the subject. If no match is found, no certificate is selected.

The subject should follow the standard format of a comma-separated list of distinguished name fields and values. For example, CN=www.server.com, OU=Test, C=US. Common fields include the following:

FieldMeaning
CNCommon Name. This is commonly a host name like www.server.com.
OOrganization
OUOrganizational Unit
LLocality
SState
CCountry
EEmail Address

Note: If any field contains special characters, such as commas, the value must be quoted. For example: CN="Example, Inc.", C=US.

Redis Connector for CData Sync

SSLStartMode

This property determines how the provider starts the SSL negotiation.

Remarks

The SSLStartMode property may have one of the following values:

AutomaticIf the remote port is set to the standard plain text port of the protocol (where applicable), the Sync App will behave the same as if SSLStartMode is set to Explicit. In all other cases, SSL negotiation will be implicit.
ImplicitThe SSL negotiation will start immediately after the connection is established.
ExplicitThe Sync App will first connect in plaintext, and then explicitly start SSL negotiation through a protocol command such as STARTTLS.
NoneNo SSL negotiation, no SSL security. All communication will be in plain text mode.

Redis Connector for CData Sync

SSLServerCert

Specifies the certificate to be accepted from the server when connecting using TLS/SSL.

Remarks

If you are using a TLS/SSL connection, use this property to specify the TLS/SSL certificate to be accepted from the server. If you specify a value for this property, all other certificates that are not trusted by the machine are rejected.

This property can take the following forms:

Description Example
A full PEM Certificate (example shortened for brevity) -----BEGIN CERTIFICATE-----
MIIChTCCAe4CAQAwDQYJKoZIhv......Qw==
-----END CERTIFICATE-----
A path to a local file containing the certificate C:\cert.cer
The public key (example shortened for brevity) -----BEGIN RSA PUBLIC KEY-----
MIGfMA0GCSq......AQAB
-----END RSA PUBLIC KEY-----
The MD5 Thumbprint (hex values can also be either space- or colon-separated) ecadbdda5a1529c58a1e9e09828d70e4
The SHA1 Thumbprint (hex values can also be either space- or colon-separated) 34a929226ae0819f2ec14b4a3d904f801cbb150d

Note: It is possible to use '*' to signify that all certificates should be accepted, but due to security concerns this is not recommended.

Redis Connector for CData Sync

SSH

This section provides a complete list of the SSH properties you can configure in the connection string for this provider.


PropertyDescription
SSHAuthModeThe authentication method used when establishing an SSH Tunnel to the service.
SSHClientCertA certificate to be used for authenticating the SSHUser.
SSHClientCertPasswordThe password of the SSHClientCert key if it has one.
SSHClientCertSubjectThe subject of the SSH client certificate.
SSHClientCertTypeThe type of SSHClientCert private key.
SSHServerThe SSH server.
SSHPortThe SSH port.
SSHUserThe SSH user.
SSHPasswordThe SSH password.
SSHServerFingerprintThe SSH server fingerprint.
UseSSHWhether to tunnel the Redis connection over SSH. Use SSH.
Redis Connector for CData Sync

SSHAuthMode

The authentication method used when establishing an SSH Tunnel to the service.

Remarks

  • None: No authentication is performed. The current SSHUser value is ignored, and the connection is logged in as anonymous.
  • Password: The Sync App uses the values of SSHUser and SSHPassword to authenticate the user.
  • Public_Key: The Sync App uses the values of SSHUser and SSHClientCert to authenticate the user. SSHClientCert must have a private key available for this authentication method to succeed.

Redis Connector for CData Sync

SSHClientCert

A certificate to be used for authenticating the SSHUser.

Remarks

SSHClientCert must contain a valid private key in order to use public key authentication. A public key is optional, if one is not included then the Sync App generates it from the private key. The Sync App sends the public key to the server and the connection is allowed if the user has authorized the public key.

The SSHClientCertType field specifies the type of the key store specified by SSHClientCert. If the store is password protected, specify the password in SSHClientCertPassword.

Some types of key stores are containers which may include multiple keys. By default the Sync App will select the first key in the store, but you can specify a specific key using SSHClientCertSubject.

Redis Connector for CData Sync

SSHClientCertPassword

The password of the SSHClientCert key if it has one.

Remarks

This property is required for SSH tunneling when using certificate-based authentication. If the SSH certificate is in a password-protected key store, provide the password using this property to access the certificate.

Redis Connector for CData Sync

SSHClientCertSubject

The subject of the SSH client certificate.

Remarks

When loading a certificate the subject is used to locate the certificate in the store.

If an exact match is not found, the store is searched for subjects containing the value of the property.

If a match is still not found, the property is set to an empty string, and no certificate is selected.

The special value "*" picks the first certificate in the certificate store.

The certificate subject is a comma separated list of distinguished name fields and values. For instance "CN=www.server.com, OU=test, C=US, [email protected]". Common fields and their meanings are displayed below.

FieldMeaning
CNCommon Name. This is commonly a host name like www.server.com.
OOrganization
OUOrganizational Unit
LLocality
SState
CCountry
EEmail Address

If a field value contains a comma it must be quoted.

Redis Connector for CData Sync

SSHClientCertType

The type of SSHClientCert private key.

Remarks

This property can take one of the following values:

TypesDescriptionAllowed Blob Values
MACHINE/USER Blob values are not supported.
JKSFILE/JKSBLOB base64-only
PFXFILE/PFXBLOBA PKCS12-format (.pfx) file. Must contain both a certificate and a private key.base64-only
PEMKEY_FILE/PEMKEY_BLOBA PEM-format file. Must contain an RSA, DSA, or OPENSSH private key. Can optionally contain a certificate matching the private key.base64 or plain text.
PPKFILE/PPKBLOBA PuTTY-format private key created using the puttygen tool.base64-only
XMLFILE/XMLBLOBAn XML key in the format generated by the .NET RSA class: RSA.ToXmlString(true).base64 or plain text.

Redis Connector for CData Sync

SSHServer

The SSH server.

Remarks

The SSH server.

Redis Connector for CData Sync

SSHPort

The SSH port.

Remarks

The SSH port.

Redis Connector for CData Sync

SSHUser

The SSH user.

Remarks

The SSH user.

Redis Connector for CData Sync

SSHPassword

The SSH password.

Remarks

The SSH password.

Redis Connector for CData Sync

SSHServerFingerprint

The SSH server fingerprint.

Remarks

The SSH server fingerprint.

Redis Connector for CData Sync

UseSSH

Whether to tunnel the Redis connection over SSH. Use SSH.

Remarks

By default the Sync App will attempt to connect directly to Redis. When this option is enabled, the Sync App will instead establish an SSH connection with the SSHServer and tunnel the connection to Redis through it.

Redis Connector for CData Sync

Firewall

This section provides a complete list of the Firewall properties you can configure in the connection string for this provider.


PropertyDescription
FirewallTypeSpecifies the protocol the provider uses to tunnel traffic through a proxy-based firewall.
FirewallServerIdentifies the IP address, DNS name, or host name of a proxy used to traverse a firewall and relay user queries to network resources.
FirewallPortSpecifies the TCP port to be used for a proxy-based firewall.
FirewallUserIdentifies the user ID of the account authenticating to a proxy-based firewall.
FirewallPasswordSpecifies the password of the user account authenticating to a proxy-based firewall.
Redis Connector for CData Sync

FirewallType

Specifies the protocol the provider uses to tunnel traffic through a proxy-based firewall.

Remarks

A proxy-based firewall (or proxy firewall) is a network security device that acts as an intermediary between user requests and the resources they access. The proxy accepts the request of an authenticated user, tunnels through the firewall, and transmits the request to the appropriate server.

Because the proxy evaluates and transfers data backets on behalf of the requesting users, the users never connect directly with the servers, only with the proxy.

The following table provides port number information for each of the supported protocols.

Protocol Default Port Description
TUNNEL 80 The port where the Sync App opens a connection to Redis. Traffic flows back and forth via the proxy at this location.
SOCKS4 1080 The port where the Sync App opens a connection to Redis. SOCKS 4 then passes theFirewallUser value to the proxy, which determines whether the connection request should be granted.
SOCKS5 1080 The port where the Sync App sends data to Redis. If the SOCKS 5 proxy requires authentication, set FirewallUser and FirewallPassword to credentials the proxy recognizes.

Redis Connector for CData Sync

FirewallServer

Identifies the IP address, DNS name, or host name of a proxy used to traverse a firewall and relay user queries to network resources.

Remarks

A proxy-based firewall (or proxy firewall) is a network security device that acts as an intermediary between user requests and the resources they access. The proxy accepts the request of an authenticated user, tunnels through the firewall, and transmits the request to the appropriate server.

Because the proxy evaluates and transfers data backets on behalf of the requesting users, the users never connect directly with the servers, only with the proxy.

Redis Connector for CData Sync

FirewallPort

Specifies the TCP port to be used for a proxy-based firewall.

Remarks

A proxy-based firewall (or proxy firewall) is a network security device that acts as an intermediary between user requests and the resources they access. The proxy accepts the request of an authenticated user, tunnels through the firewall, and transmits the request to the appropriate server.

Because the proxy evaluates and transfers data backets on behalf of the requesting users, the users never connect directly with the servers, only with the proxy.

Redis Connector for CData Sync

FirewallUser

Identifies the user ID of the account authenticating to a proxy-based firewall.

Remarks

A proxy-based firewall (or proxy firewall) is a network security device that acts as an intermediary between user requests and the resources they access. The proxy accepts the request of an authenticated user, tunnels through the firewall, and transmits the request to the appropriate server.

Because the proxy evaluates and transfers data backets on behalf of the requesting users, the users never connect directly with the servers, only with the proxy.

Redis Connector for CData Sync

FirewallPassword

Specifies the password of the user account authenticating to a proxy-based firewall.

Remarks

A proxy-based firewall (or proxy firewall) is a network security device that acts as an intermediary between user requests and the resources they access. The proxy accepts the request of an authenticated user, tunnels through the firewall, and transmits the request to the appropriate server.

Because the proxy evaluates and transfers data backets on behalf of the requesting users, the users never connect directly with the servers, only with the proxy.

Redis Connector for CData Sync

Logging

This section provides a complete list of the Logging properties you can configure in the connection string for this provider.


PropertyDescription
LogModulesSpecifies the core modules to include in the log file. Use a semicolon-separated list of module names. By default, all modules are logged.
Redis Connector for CData Sync

LogModules

Specifies the core modules to include in the log file. Use a semicolon-separated list of module names. By default, all modules are logged.

Remarks

The Sync App writes details about each operation it performs into the logfile specified by the Logfile connection property.

Each of these logged operations are assigned to a themed category called a module, and each module has a corresponding short code used to labels individual Sync App operations as belonging to that module.

When this connection property is set to a semicolon-separated list of module codes, only operations belonging to the specified modules are written to the logfile. Note that this only affects which operations are logged moving forward and doesn't retroactively alter the existing contents of the logfile. For example: INFO;EXEC;SSL;META;

By default, logged operations from all modules are included.

You can explicitly exclude a module by prefixing it with a "-". For example: -HTTP

To apply filters to submodules, identify them with the syntax <module name>.<submodule name>. For example, the following value causes the Sync App to only log actions belonging to the HTTP module, and further refines it to exclude actions belonging to the Res submodule of the HTTP module: HTTP;-HTTP.Res

Note that the logfile filtering triggered by the Verbosity connection property takes precedence over the filtering imposed by this connection property. This means that operations of a higher verbosity level than the level specified in the Verbosity connection property are not printed in the logfile, even if they belong to one of the modules specified in this connection property.

The available modules and submodules are:

Module Name Module Description Submodules
INFO General Information. Includes the connection string, product version (build number), and initial connection messages.
  • Connec – Information related to creating or destroying connections.
  • Messag – Generic label for messages pertaining to connections, the connection string, and product version. These messages are typically specific to the Sync App, rather than being received and passed along directly from the service.
EXEC Query Execution. Includes execution messages for user-written SQL queries, parsed SQL queries, and normalized SQL queries. Success/failure messages for queries and query pages appear here as well.
  • Messag – Messages pertaining to query execution. These messages are typically specific to the Sync App, rather than being received and passed along directly from the service.
  • Normlz – Query normalization steps. Query normalization is when the product takes the user-submitted query and rewrites the query to get the same results with optimal performance.
  • Origin – This label applies to any messages recording a user's original query (the exact, unaltered, non-normalized query executed by the user).
  • Page – Messages related to query paging.
  • Parsed – Query parsing steps. Parsing is the process of converting the user-submitted query into a standardized format for easier processing.
HTTP HTTP protocol messages. Includes HTTP requests/responses (including POST messages), as well as Kerberos related messages.
  • KERB – HTTP requests related to Kerberos.
  • Messag – Messages pertaining to HTTP protocols. These messages are typically specific to the Sync App, rather than being received and passed along directly from the service.
  • Unpack – This label applies to messages about zipped data being returned from the service API and unpacked by the product.
  • Res – Messages containing HTTP responses.
  • Req – Messages containing HTTP requests.
WSDL Messages pertaining to the generation of WSDL/XSD files. —
SSL SSL certificate messages.
  • Certif – Messages pertaining to SSL certificates.
AUTH Authentication related failure/success messages.
  • Messag – Messages pertaining to authentication. These messages are typically specific to the Sync App, rather than being received and passed along directly from the service.
  • OAuth – Messages related to OAuth authentication.
  • Krbros – Kerberos-related authentication messages.
SQL Includes SQL transactions, SQL bulk transfer messages, and SQL result set messages.
  • Bulk – Messages pertaining to bulk query execution.
  • Cache – Messages related to reading row data from and writing row data to the product's cache for better performance.
  • Messag – Messages pertaining to SQL transactions. These messages are typically specific to the Sync App, rather than being received and passed along directly from the service.
  • ResSet – Query resultsets.
  • Transc – Messages related to handling transactions, including information about the number of jobs executed and backup table handling.
META Metadata cache and schema messages.
  • Cache – Messages related to reading from and modifying column and table definitions in the product's cache for better performance.
  • Schema – Messages related to retrieving metadata from or modifying the service schema.
  • MemSto – Messages related to writing to or reading from in-memory metadata cache.
  • Storag – Messages relating to storing metadata on disk or in an external data store, rather than in memory.
FUNC Information related to executing SQL functions.
  • Errmsg – Error messages related to executing SQL functions.
TCP Incoming and outgoing raw bytes on TCP transport layer messages.
  • Send – Raw data sent via the TCP protocol.
  • Receiv – Raw data received via the TCP protocol.
FTP Messages pertaining to the File Transfer Protocol.
  • Info – Status messages related to communication in the FTP protocol.
  • Client – Messages related to actions taken by the FTP client (the product) during FTP communication.
  • Server – Messages related to actions taken by the FTP server during FTP communication.
SFTP Messages pertaining to the Secure File Transfer Protocol.
  • Info – Status messages related to communication in the SFTP protocol.
  • To_Server – Messages related to actions taken by the SFTP client (the product) during SFTP communication.
  • From_Server – Messages related to actions taken by the SFTP server during SFTP communication.
POP Messages pertaining to data transferred via the Post Office Protocol.
  • Client – Messages related to actions taken by the POP client (the product) during POP communication.
  • Server – Messages related to actions taken by the POP server during POP communication.
  • Status – Status messages related to communication in the POP protocol.
SMTP Messages pertaining to data transferred via the Simple Mail Transfer Protocol.
  • Client – Messages related to actions taken by the SMTP client (the product) during SMTP communication.
  • Server – Messages related to actions taken by the SMTP server during SMTP communication.
  • Status – Status messages related to communication in the SMTP protocol.
CORE Messages relating to various internal product operations not covered by other modules. —
DEMN Messages related to SQL remoting. —
CLJB Messages about bulk data uploads (cloud job).
  • Commit – Submissions for bulk data uploads.
SRCE Miscellaneous messages produced by the product that don't belong in any other module. —
TRANCE Advanced messages concerning low-level product operations. —

Redis Connector for CData Sync

Schema

This section provides a complete list of the Schema properties you can configure in the connection string for this provider.


PropertyDescription
LocationSpecifies the location of a directory containing schema files that define tables, views, and stored procedures. Depending on your service's requirements, this may be expressed as either an absolute path or a relative path.
BrowsableSchemasOptional setting that restricts the schemas reported to a subset of all available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC .
TablesOptional setting that restricts the tables reported to a subset of all available tables. For example, Tables=TableA,TableB,TableC .
ViewsOptional setting that restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC .
Redis Connector for CData Sync

Location

Specifies the location of a directory containing schema files that define tables, views, and stored procedures. Depending on your service's requirements, this may be expressed as either an absolute path or a relative path.

Remarks

The Location property is only needed if you want to either customize definitions (for example, change a column name, ignore a column, etc.) or extend the data model with new tables, views, or stored procedures.

If left unspecified, the default location is %APPDATA%\\CData\\Redis Data Provider\\Schema, where %APPDATA% is set to the user's configuration directory:

Platform %APPDATA%
Windows The value of the APPDATA environment variable
Linux ~/.config

Redis Connector for CData Sync

BrowsableSchemas

Optional setting that restricts the schemas reported to a subset of all available schemas. For example, BrowsableSchemas=SchemaA,SchemaB,SchemaC .

Remarks

Listing all available database schemas can take extra time, thus degrading performance. Providing a list of schemas in the connection string saves time and improves performance.

Redis Connector for CData Sync

Tables

Optional setting that restricts the tables reported to a subset of all available tables. For example, Tables=TableA,TableB,TableC .

Remarks

Listing all available tables from some databases can take extra time, thus degrading performance. Providing a list of tables in the connection string saves time and improves performance.

If there are lots of tables available and you already know which ones you want to work with, you can use this property to restrict your viewing to only those tables. To do this, specify the tables you want in a comma-separated list. Each table should be a valid SQL identifier with any special characters escaped using square brackets, double-quotes or backticks. For example, Tables=TableA,[TableB/WithSlash],WithCatalog.WithSchema.`TableC With Space`.

Note: If you are connecting to a data source with multiple schemas or catalogs, you must specify each table you want to view by its fully qualified name. This avoids ambiguity between tables that may exist in multiple catalogs or schemas.

Redis Connector for CData Sync

Views

Optional setting that restricts the views reported to a subset of the available tables. For example, Views=ViewA,ViewB,ViewC .

Remarks

Listing all available views from some databases can take extra time, thus degrading performance. Providing a list of views in the connection string saves time and improves performance.

If there are lots of views available and you already know which ones you want to work with, you can use this property to restrict your viewing to only those views. To do this, specify the views you want in a comma-separated list. Each view should be a valid SQL identifier with any special characters escaped using square brackets, double-quotes or backticks. For example, Views=ViewA,[ViewB/WithSlash],WithCatalog.WithSchema.`ViewC With Space`.

Note: If you are connecting to a data source with multiple schemas or catalogs, you must specify each view you want to examine by its fully qualified name. This avoids ambiguity between views that may exist in multiple catalogs or schemas.

Redis Connector for CData Sync

Miscellaneous

This section provides a complete list of the Miscellaneous properties you can configure in the connection string for this provider.


PropertyDescription
IgnoreTypeErrorsRemoves support for the specified data types and ignores casting exceptions for those types.
MaxRowsSpecifies the maximum number of rows returned for queries that do not include either aggregation or GROUP BY.
OtherSpecifies advanced connection properties for specialized scenarios. Use this property only under the guidance of our Support team to address specific issues.
ParallelModeThis option sets whether the provider should use multiple connections when connecting to Redis.
PseudoColumnsSpecifies the pseudocolumns to expose as table columns, expressed as a string in the format 'TableName=ColumnName;TableName=ColumnName'.
QueryTimeoutThe timeout in seconds for which the provider will wait for the query response. The default value is -1, which indicates the provider should never time out.
RowScanDepthThe maximum number of rows to scan to look for the columns available in a table.
TableScanDepthThe maximum number of keys to scan when looking for tables available in your Redis database.
TimeoutSpecifies the maximum time, in seconds, that the provider waits for a server response before throwing a timeout error.
UserDefinedViewsSpecifies a filepath to a JSON configuration file that defines custom views. The provider automatically detects and uses the views specified in this file.
Redis Connector for CData Sync

IgnoreTypeErrors

Removes support for the specified data types and ignores casting exceptions for those types.

Remarks

A comma-separated list of data types for which to ignore casting exceptions and treat as strings. For example, IgnoreTypeErrors=Date,Time.

If the value can be parsed as the specified type, it is returned as a string; otherwise, the value is returned as NULL instead.

Redis Connector for CData Sync

MaxRows

Specifies the maximum number of rows returned for queries that do not include either aggregation or GROUP BY.

Remarks

The default value for this property, -1, means that no row limit is enforced unless the query explicitly includes a LIMIT clause. (When a query includes a LIMIT clause, the value specified in the query takes precedence over the MaxRows setting.)

Setting MaxRows to a whole number greater than 0 ensures that queries do not return excessively large result sets by default.

This property is useful for optimizing performance and preventing excessive resource consumption when executing queries that could otherwise return very large datasets.

Redis Connector for CData Sync

Other

Specifies advanced connection properties for specialized scenarios. Use this property only under the guidance of our Support team to address specific issues.

Remarks

This property allows advanced users to configure hidden properties for specialized situations, with the advice of our Support team. These settings are not required for normal use cases but can address unique requirements or provide additional functionality. To define multiple properties, use a semicolon-separated list.

Note: It is strongly recommended to set these properties only when advised by the Support team to address specific scenarios or issues.

Integration and Formatting

PropertyDescription
DefaultColumnSizeSets the default length of string fields when the data source does not provide column length in the metadata. The default value is 2000.
ConvertDateTimeToGMT=TrueConverts date-time values to GMT, instead of the local time of the machine. The default value is False (use local time).
RecordToFile=filenameRecords the underlying socket data transfer to the specified file.

Redis Connector for CData Sync

ParallelMode

This option sets whether the provider should use multiple connections when connecting to Redis.

Remarks

The default is that parallel mode is disabled, which means that the Sync App will use only one connection when communicating with Redis. This works well for smaller databases, but can cause performance and memory usage issues on larger databases.

If parallel mode is enabled, the Sync App will open different connections to Redis for discovering keys and reading data. This makes interacting with larger databases more efficient but can add overhead for smaller databases.

If parallel mode is enabled, you can tune how much memory is used by the Sync App by using the hidden MaxPageSize property (see Other). The default value is 5, but you can increase it to make the Sync App faster or decrease it to make the Sync App use less memory.

Redis Connector for CData Sync

PseudoColumns

Specifies the pseudocolumns to expose as table columns, expressed as a string in the format 'TableName=ColumnName;TableName=ColumnName'.

Remarks

This property allows you to define which pseudocolumns the Sync App exposes as table columns.

To specify individual pseudocolumns, use the following format:

Table1=Column1;Table1=Column2;Table2=Column3

To include all pseudocolumns for all tables use:

*=*

Redis Connector for CData Sync

QueryTimeout

The timeout in seconds for which the provider will wait for the query response. The default value is -1, which indicates the provider should never time out.

Remarks

The timeout in seconds for which the Sync App will wait for the query response. The default value is -1, which indicates the Sync App should never time out.

Redis Connector for CData Sync

RowScanDepth

The maximum number of rows to scan to look for the columns available in a table.

Remarks

The columns in a table must be determined by scanning table rows. This value determines the maximum number of rows that will be scanned.

Setting a high value may decrease performance. Setting a low value may prevent the data type from being determined properly, especially when there is null data.

Redis Connector for CData Sync

TableScanDepth

The maximum number of keys to scan when looking for tables available in your Redis database.

Remarks

Since Redis is schemaless, the Sync App determines tables by finding keys that match the TablePattern. This value determines the maximum number of keys that will be scanned for each entry in TablePattern.

To disable this limit and always scan all keys, set the value of this property to "-1". Otherwise, set this property to a positive integer to limit the keys scanned to that amount.

Redis Connector for CData Sync

Timeout

Specifies the maximum time, in seconds, that the provider waits for a server response before throwing a timeout error.

Remarks

The timeout applies to each individual communication with the server rather than the entire query or operation. For example, a query could continue running beyond 60 seconds if each paging call completes within the timeout limit.

Timeout is set to 60 seconds by default. To disable timeouts, set this property to 0.

Disabling the timeout allows operations to run indefinitely until they succeed or fail due to other conditions such as server-side timeouts, network interruptions, or resource limits on the server.

Note: Use this property cautiously to avoid long-running operations that could degrade performance or result in unresponsive behavior.

Redis Connector for CData Sync

UserDefinedViews

Specifies a filepath to a JSON configuration file that defines custom views. The provider automatically detects and uses the views specified in this file.

Remarks

UserDefinedViews allows you to define and manage custom views through a JSON-formatted configuration file called UserDefinedViews.json. These views are automatically recognized by the Sync App and enable you to execute custom SQL queries as if they were standard database views. The JSON file defines each view as a root element with a child element called "query", which contains the SQL query for the view.

For example:

{
	"MyView": {
		"query": "SELECT * FROM Customers WHERE MyColumn = 'value'"
	},
	"MyView2": {
		"query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)"
	}
}

You can use this property to define multiple views in a single file and specify the filepath. For example:

UserDefinedViews=C:\Path\To\UserDefinedViews.json
When you specify a view in UserDefinedViews, the Sync App only sees that view.

For further information, see User Defined Views.

Redis Connector for CData Sync

Third Party Copyrights

LZMA from 7Zip LZMA SDK

LZMA SDK is placed in the public domain.

Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original LZMA SDK code, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.

LZMA2 from XZ SDK

Version 1.9 and older are in the public domain.

Xamarin.Forms

Xamarin SDK

The MIT License (MIT)

Copyright (c) .NET Foundation Contributors

All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

NSIS 3.10

Copyright (C) 1999-2025 Contributors THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.

1. DEFINITIONS

"Contribution" means:

a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and b) in the case of each subsequent Contributor:

i) changes to the Program, and

ii) additions to the Program;

where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.

"Contributor" means any person or entity that distributes the Program.

"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.

"Program" means the Contributions distributed in accordance with this Agreement.

"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.

2. GRANT OF RIGHTS

a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.

b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.

c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.

d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.

3. REQUIREMENTS

A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:

a) it complies with the terms and conditions of this Agreement; and

b) its license agreement:

i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;

ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;

iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and

iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.

When the Program is made available in source code form:

a) it must be made available under this Agreement; and

b) a copy of this Agreement must be included with each copy of the Program.

Contributors may not remove or alter any copyright notices contained within the Program.

Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.

4. COMMERCIAL DISTRIBUTION

Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.

For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.

5. NO WARRANTY

EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.

6. DISCLAIMER OF LIABILITY

EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. GENERAL

If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.

If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed. In addition, if Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.

All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.

Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward. IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.

This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.

Copyright (c) 2026 CData Software, Inc. - All rights reserved.
Build 25.0.9539