CData Sync App は、Redis データをデータベース、データレイク、またはデータウェアハウスに継続的にパイプライン化する簡単な方法を提供し、分析、レポート、AI、および機械学習で簡単に利用できるようにします。
Redis コネクタはCData Sync アプリケーションから使用可能で、Redis からデータを取得して、サポートされている任意の同期先に移動できます。
Sync App アプリケーションの接続 ページに移動し、接続の追加 パネルで対応するアイコンを選択して、Redis への接続を作成します。Redis アイコンが利用できない場合は、Add More アイコンをクリックしてCData サイトからRedis コネクタをダウンロードおよびインストールします。
必須プロパティは[設定]タブにリストされています。[Advanced]タブには、通常は必要ない接続プロパティが表示されます。
Server 接続プロパティをRedis インスタンスが実行されているサーバーの名前またはアドレスに設定します。
Redis サーバーがデフォルト(6379)以外のポートで起動している場合、Port プロパティでポートを指定できます。
Sync App はパスワードおよびACL 認証をサポートします。また、パスワード保護されていないRedis インスタンスへの接続もサポートされています。
AuthScheme プロパティをNone に設定します。この場合Redis インスタンスはパスワード保護を受けません (設定ファイルでrequirepass ディレクティブを使用している場合)。
AuthScheme プロパティをPassword に設定し、Password プロパティを、パスワード保護されたRedis インスタンスへの、Redis AUTH コマンドを使用した認証に使用されるパスワードに設定します。
接続するには以下を設定します。
UseSSL を設定すると、接続時にSSL/TLS 暗号化をネゴシエートできます。
The Sync App enables you to model Redis key-value pairs as tables.
The Sync App enables two major paradigms for modeling Redis key-value pairs as tables.
Redis key patterns can be modeled as tables. See Redis Key のフリーフォームクエリ for a breakdown of the different configuration options.
It is also possible to query keys directly as if they are tables.
If you would like to query specific keys as tables, see Redis Hashe をTable としてモデル化.
If you would like to query all keys in the Redis keystore from a single table, see the Keys table.
See Redis データ型 for a list of the Redis data types supported by the Sync App.
Use the available ストアドプロシージャ to submit commands (in native redis-cli syntax) to the Redis server for direct execution.
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.
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:
RedisKey | name | password | |
user:1000 | John Smith | [email protected] | s3cret |
user:1001 | Mary Jones | [email protected] | hidden |
user:1002 | Sally Brown | sally.b@example | p4ssw0rd |
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 |
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:
RedisKey | name | password | |
user:1000 | John Smith | [email protected] | s3cret |
user:1001 | Mary Jones | [email protected] | hidden |
user:1002 | Sally Brown | sally.b@example | p4ssw0rd |
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 |
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.
Create a string in Redis:
> set mykey somevalue OKIf you perform a SELECT query on mykey the Sync App will return the following:
RedisKey | ValueIndex | Value | RedisType | ValueScore |
mykey | 1 | somevalue | String | NULL |
Create a list in Redis:
> rpush mylist A B C (integer) 3If you perform a SELECT query on mylist the Sync App will return the following:
RedisKey | ValueIndex | Value | RedisType | ValueScore |
mylist | 1 | A | List | NULL |
mylist | 2 | B | List | NULL |
mylist | 3 | C | List | NULL |
DELETE FROM Keys WHERE Value = 'myvalue' AND RedisKey = 'mylist'
Note that using ValueIndex in the WHERE clause of the DELETE statement is not supported.
Create a set in Redis:
> sadd myset 1 2 3 (integer) 3If 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):
RedisKey | ValueIndex | Value | RedisType | ValueScore |
myset | 1 | 2 | Set | NULL |
myset | 2 | 1 | Set | NULL |
myset | 3 | 3 | Set | NULL |
Create a ZSet (sorted set) in Redis:
> zadd hackers 1940 "Alan Kay" 1957 "Sophie Wilson" 1953 "Richard Stallman" 1949 "Anita Borg" (integer) 9If you perform a SELECT query on hackers the Sync App will return the following:
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 |
Create a hash in Redis:
> hmset user:1000 username antirez birthyear 1977 verified 1 OKIf you perform a SELECT query on user:1000 the Sync App will return the following:
RedisKey | ValueIndex | Value | RedisType | ValueScore |
user:1000 | username | antirez | Hash | NULL |
user:1000 | birthyear | 1977 | Hash | NULL |
user:1000 | verified | 1 | Hash | NULL |
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:
RedisKey | ValueIndex | Value | RedisType | ValueScore |
user:1000 | name | John Smith | Hash | NULL |
user:1000 | [email protected] | Hash | NULL | |
user:1000 | password | s3cret | Hash | NULL |
user:1001 | name | Mary Jones | Hash | NULL |
user:1001 | [email protected] | Hash | NULL | |
user:1001 | password | hidden | Hash | NULL |
Sync App はRedis のデータを、標準のSQL ステートメントを使用してクエリできるテーブルのリストにモデル化します。
一般的には、Redis テーブルのクエリは、リレーショナルデータベースのテーブルのクエリと同じです。時には特別なケースもあります。例えば、テーブルの特定のカラムデータを取得するために特定のカラムをWHERE 句に含める必要がある場合などです。これは通常、特定のカラムを取得するために行ごとに個別のリクエストを行う必要がある場合に必要です。これらの特別な状況は、以下にリンクされているテーブルページの上部に明確に文書化されています。
Name | Description |
Keys | Returns keys present in the Redis store. |
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 Redis Key のフリーフォームクエリ.
Name | Type | ReadOnly | Description |
RedisKey [KEY] | String | True |
The name of the Redis key. |
ValueIndex | String | True |
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 | True |
The value associated with the Redis key. |
RedisType | String | True |
The type associated with the Redis key. |
ValueScore | Double | True |
NULL for strings, lists, sets, and hashes. Returns the associated score for sorted sets. |
プロパティ | 説明 |
AuthScheme | provider がRedis との認証に使用する認証メカニズム。 |
Server | Redis インスタンスをホストしているサーバーのホスト名、またはIP アドレス。 |
Port | Redis データベースのポート。 |
LogicalDatabase | Redis Logical Database のインデックス。 |
User | The username provided for authentication with Redis ACL. |
Password | Redis との認証に使用するパスワード。 |
EnableCluster | This field sets whether the Redis Cluster Mode is enabled. |
UseSSL | このフィールドはSSL が有効化されているかどうかを設定します。 |
プロパティ | 説明 |
DefineTables | テーブル名とRedis キーパターンを使用して、provider によって公開されるテーブルを定義します。 |
PatternSeparator | Define the table pattern's delimiter. |
TablePattern | Redis キーパターンを使用して、provider によって公開されるテーブルを定義します。 |
プロパティ | 説明 |
SSLClientCert | SSL クライアント認証(2-way SSL)のためのTLS/SSL クライアント証明書ストア。 |
SSLClientCertType | TLS/SSL クライアント証明書を格納するキーストアの種類。 |
SSLClientCertPassword | TLS/SSL クライアント証明書のパスワード。 |
SSLClientCertSubject | TLS/SSL クライアント証明書のサブジェクト。 |
SSLStartMode | このプロパティは、provider がSSL ネゴシエーションを開始する方法を決定します。 |
SSLServerCert | TLS/SSL を使用して接続するときに、サーバーが受け入れ可能な証明書。 |
プロパティ | 説明 |
SSHAuthMode | SFTP サーバーへのログオンに使用する認証方法。 |
SSHClientCert | ユーザーの認証に使用する秘密鍵。 |
SSHClientCertPassword | SSHClientCert キーのパスワード(ある場合)。 |
SSHClientCertSubject | SSH クライアント証明書のサブジェクト。 |
SSHClientCertType | SSHClientCert 秘密鍵の種類。 |
SSHServer | SSH サーバー。 |
SSHPort | SSH ポート。 |
SSHUser | SSH ユーザー。 |
SSHPassword | SSH パスワード。 |
SSHServerFingerprint | SSH サーバーのフィンガープリント。 |
UseSSH | Redis 接続をSSH 経由でトンネルするかどうか。 SSH を使用します。 |
プロパティ | 説明 |
FirewallType | プロキシベースのファイアウォールで使われるプロトコル。 |
FirewallServer | プロキシベースのファイアウォールの名前もしくはIP アドレス。 |
FirewallPort | プロキシベースのファイアウォールのTCP ポート。 |
FirewallUser | プロキシベースのファイアウォールに認証するために使うユーザー名。 |
FirewallPassword | プロキシベースのファイアウォールへの認証に使われるパスワード。 |
プロパティ | 説明 |
LogModules | ログファイルに含めるコアモジュール。 |
プロパティ | 説明 |
Location | テーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリへのパス。 |
BrowsableSchemas | このプロパティは、使用可能なスキーマのサブセットにレポートされるスキーマを制限します。例えば、BrowsableSchemas=SchemaA,SchemaB,SchemaC です。 |
Tables | このプロパティは、使用可能なテーブルのサブセットにレポートされるテーブルを制限します。例えば、Tables=TableA,TableB,TableC です。 |
Views | 使用可能なテーブルのサブセットにレポートされるビューを制限します。例えば、Views=ViewA,ViewB,ViewC です。 |
プロパティ | 説明 |
IgnoreTypeErrors | 指定されたデータ型のサポートを削除して、それらの型のキャスト例外を無視します。 |
MaxRows | クエリで集計またはグループ化を使用しない場合に返される行数を制限します。これにより、設計時にパフォーマンスの問題を回避できます。 |
Other | これらの隠しプロパティは特定のユースケースでのみ使用されます。 |
ParallelMode | This option sets whether the provider should use multiple connections when connecting to Redis. |
PseudoColumns | このプロパティは、テーブルのカラムとして疑似カラムが含まれているかどうかを示します。 |
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. |
RowScanDepth | テーブルで利用可能なカラムを探すためにスキャンする行数の最大値。 |
TableScanDepth | Redis データベースで利用可能なテーブルを検索する際にスキャンするキーの最大数。 |
Timeout | タイムアウトエラーがスローされ、処理をキャンセルするまでの秒数。 |
UserDefinedViews | カスタムビューを含むJSON コンフィギュレーションファイルを指すファイルパス。 |
このセクションでは、本プロバイダーの接続文字列で設定可能なAuthentication プロパティの全リストを提供します。
プロパティ | 説明 |
AuthScheme | provider がRedis との認証に使用する認証メカニズム。 |
Server | Redis インスタンスをホストしているサーバーのホスト名、またはIP アドレス。 |
Port | Redis データベースのポート。 |
LogicalDatabase | Redis Logical Database のインデックス。 |
User | The username provided for authentication with Redis ACL. |
Password | Redis との認証に使用するパスワード。 |
EnableCluster | This field sets whether the Redis Cluster Mode is enabled. |
UseSSL | このフィールドはSSL が有効化されているかどうかを設定します。 |
provider がRedis との認証に使用する認証メカニズム。
Choose one of the following:
Redis インスタンスをホストしているサーバーのホスト名、またはIP アドレス。
Redis インスタンスをホストしているサーバーのホスト名、またはIP アドレス。
Redis データベースのポート。
Redis データベースのポート。
Redis Logical Database のインデックス。
Redis Logical Database のインデックス。デフォルト値は0です。
The username provided for authentication with Redis ACL.
The username provided for authentication with Redis ACL.
Redis との認証に使用するパスワード。
Redis との認証に使用するパスワード。
This field sets whether the Redis Cluster Mode is enabled.
This field sets whether the Redis Cluster Mode is enabled.
このフィールドはSSL が有効化されているかどうかを設定します。
このフィールドは、Sync App がサーバーとのTLS/SSL 接続をネゴシエートするかどうかを設定します。デフォルトでは、Sync App はサーバーの証明書をシステムの信頼できる証明書ストアと照合します。別の証明書を指定するには、SSLServerCert を設定します。
このセクションでは、本プロバイダーの接続文字列で設定可能なConnection プロパティの全リストを提供します。
プロパティ | 説明 |
DefineTables | テーブル名とRedis キーパターンを使用して、provider によって公開されるテーブルを定義します。 |
PatternSeparator | Define the table pattern's delimiter. |
TablePattern | Redis キーパターンを使用して、provider によって公開されるテーブルを定義します。 |
テーブル名とRedis キーパターンを使用して、provider によって公開されるテーブルを定義します。
このプロパティは、テーブルとして表示されるRedis 内のキーパターンを定義します。値は、名前と値のペアのカンマ区切りリストで、[Table Name]=[Redis key pattern] の形式になります。 Table Name はデータに使うテーブルの名前で、クエリを発行する際に使用されます。 Redis キーパターンは、対応するキーをグループ化して名前付きテーブルにピボットするために使用されるパターンです。
例を示します。
DefineTables="DefinedTable1=table1:*,DefinedTable2=table2:*"
この値を指定すると、"table1:" で始まるすべてのキーは DefinedTable1 で、"table2:" で始まるすべてのキーは 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.
Define the table pattern's delimiter.
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 キーパターンを使用して、provider によって公開されるテーブルを定義します。
このプロパティは、テーブルとして表示されるRedis 内のキーパターンを定義します。値はRedis キーパターンです。 Redis キーパターンは、Redis データストアに格納されたキー値の階層構造を決定するための区切り文字を含む文字列パターンです。 値のその他の文字列パターンは、 どのキーがピボットされてテーブルとして返されるかを制限します。
例: TablePattern="*:*" は、セパレータとして":" 文字を使用します。次のキーを使用すると、
user:1001, user:1002, user:1003, admin:001, admin:002, admin:003
それぞれのテーブルの個々の行に対応する関連キーを持つ、user とadmin の2つのテーブルが公開されます。
このセクションでは、本プロバイダーの接続文字列で設定可能なSSL プロパティの全リストを提供します。
プロパティ | 説明 |
SSLClientCert | SSL クライアント認証(2-way SSL)のためのTLS/SSL クライアント証明書ストア。 |
SSLClientCertType | TLS/SSL クライアント証明書を格納するキーストアの種類。 |
SSLClientCertPassword | TLS/SSL クライアント証明書のパスワード。 |
SSLClientCertSubject | TLS/SSL クライアント証明書のサブジェクト。 |
SSLStartMode | このプロパティは、provider がSSL ネゴシエーションを開始する方法を決定します。 |
SSLServerCert | TLS/SSL を使用して接続するときに、サーバーが受け入れ可能な証明書。 |
SSL クライアント認証(2-way SSL)のためのTLS/SSL クライアント証明書ストア。
クライアント証明書のための証明書ストア名。
SSLClientCertType フィールドは、SSLClientCert により指定された証明書ストアの種類を指定します。ストアがパスワードで保護されている場合は、SSLClientCertPassword でパスワードを指定します。
SSLClientCert は、SSLClientCertSubject フィールドとともにクライアント証明書を指定するために使われます。SSLClientCert に値がある場合で、SSLClientCertSubject が設定されている場合は、証明書の検索が始まります。詳しくは、SSLClientCertSubject を参照してください。
証明書ストアの指定はプラットフォームに依存します。
Windows の共通のユーザとシステム証明書ストアの指定は以下のとおりです。
MY | 個人証明書と関連付けられた秘密キーを格納している証明書ストア。 |
CA | 証明機関の証明書。 |
ROOT | ルート証明書。 |
SPC | ソフトウェア発行元証明書。 |
Javaでは、証明書ストアは通常、証明書および任意の秘密キーを含むファイルです。
証明書ストアの種類がPFXFile の場合は、このプロパティにファイル名を設定します。PFXBlob の場合は、このプロパティをPFX ファイルのバイナリコンテンツ(例えば、PKCS12証明書ストア)に設定する必要があります。
TLS/SSL クライアント証明書を格納するキーストアの種類。
このプロパティには次の値の一つを設定できます。
USER - デフォルト | Windows の場合、現在のユーザーにより所有された証明書ストアであることを指定します。この種類はJava では利用できませんので注意してください。 |
MACHINE | Windows の場合、この証明書ストアがシステムストアであることを指定します。この種類はJava では利用できませんので注意してください。 |
PFXFILE | この証明書ストアは、証明書を含むPFX(PKCS12)ファイルの名前です。 |
PFXBLOB | この証明書ストアは、PFX(PKCS12)形式の証明書ストアを表すBase-64でエンコードされた文字列です。 |
JKSFILE | この証明書ストアは、証明書を含むJava key store(JKS)ファイルの名前です。この種類はJava でのみ利用できますので注意してください。 |
JKSBLOB | この証明書ストアは、Java key store(JKS)形式の証明書ストアを表すBase-64でエンコードされた文字列です。この種類はJava でのみ利用できますので注意してください。 |
PEMKEY_FILE | この証明書ストアは、秘密キーと任意の証明書を含むPEM でエンコードされたファイルの名前です。 |
PEMKEY_BLOB | この証明書ストアは、秘密キーと任意の証明書を含むBase-64でエンコードされた文字列です。 |
PUBLIC_KEY_FILE | この証明書ストアは、PEM またはDER でエンコードされた公開キーの証明書を含むファイルの名前です。 |
PUBLIC_KEY_BLOB | この証明書ストアは、PEM またはDER でエンコードされた公開キーの証明書を含むBase-64でエンコードされた文字列です。 |
SSHPUBLIC_KEY_FILE | この証明書ストアは、SSH 公開キーを含むファイルの名前です。 |
SSHPUBLIC_KEY_BLOB | この証明書ストアは、SSH 公開キーを含むBase-64でエンコードされた文字列です。 |
P7BFILE | この証明書ストアは、証明書を含むPKCS7 ファイルの名前です。 |
PPKFILE | この証明書ストアは、PuTTY 秘密キー(PPK)を含むファイルの名前です。 |
XMLFILE | この証明書ストアは、XML 形式の証明書を含むファイルの名前です。 |
XMLBLOB | この証明書ストアは、XML 形式の証明書を含む文字列の名前です。 |
TLS/SSL クライアント証明書のパスワード。
証明書ストアでパスワードが必要である場合、このプロパティを使用してパスワードを指定し、証明書ストアにアクセスできます。
TLS/SSL クライアント証明書のサブジェクト。
証明書のサブジェクトは、証明書をロードするときにストア内の証明書を検索するために使用されます。
完全に一致するものが見つからない場合、ストアはプロパティの値を含むサブジェクトを検索します。それでも一致するものが見つからない場合、プロパティは空白で設定され、証明書は選択されません。
"*" に設定すると、証明書ストアの1番目の証明書が選択されます。
証明書のサブジェクトは識別の名前フィールドおよび値のカンマ区切りのリストです。例えば、"CN=www.server.com, OU=test, C=US, [email protected]" です。共通のフィールドとその説明は以下のとおりです。
フィールド | 説明 |
CN | 共通名。一般的には、www.server.com のようなホスト名です。 |
O | 法人名 |
OU | 法人の部署名 |
L | 法人の住所(市町村名) |
S | 法人の住所(都道府県) |
C | 国名 |
E | Eメールアドレス |
フィールド値にカンマが含まれている場合は、それを引用符で囲む必要があります。
このプロパティは、provider がSSL ネゴシエーションを開始する方法を決定します。
SSLStartMode プロパティは、次のいずれかの値を持つことがあります。
Automatic | リモートポートが、プロトコルの標準のプレーンテキストポート(適用可能な場所)に設定されている場合、Sync App はSSLStartMode がExplicit に設定されている場合と同じように動作します。その他すべてのケースでは、SSL ネゴシエーションは暗黙的です。 |
Implicit | SSL ネゴシエーションは、接続が確立された直後に開始されます。 |
Explicit | Sync App は最初にプレーンテキストで接続します。その後、STARTTLS のようなプロトコルコマンドを通じて明示的にSSLネゴシエーションを開始します。 |
None | SSL ネゴシエーションなし、SSL セキュリティなし。すべての通信はプレーンテキストモードになります。 |
TLS/SSL を使用して接続するときに、サーバーが受け入れ可能な証明書。
TLS/SSL 接続を使用する場合は、このプロパティを使用して、サーバーが受け入れるTLS/SSL 証明書を指定できます。コンピュータによって信頼されていない他の証明書はすべて拒否されます。
このプロパティは、次のフォームを取ります:
説明 | 例 |
フルPEM 証明書(例では省略されています) | -----BEGIN CERTIFICATE----- MIIChTCCAe4CAQAwDQYJKoZIhv......Qw== -----END CERTIFICATE----- |
証明書を保有するローカルファイルへのパス。 | C:\cert.cer |
公開鍵(例では省略されています) | -----BEGIN RSA PUBLIC KEY----- MIGfMA0GCSq......AQAB -----END RSA PUBLIC KEY----- |
MD5 Thumbprint (hex 値はスペースおよびコロン区切り) | ecadbdda5a1529c58a1e9e09828d70e4 |
SHA1 Thumbprint (hex 値はスペースおよびコロン区切り) | 34a929226ae0819f2ec14b4a3d904f801cbb150d |
これを指定しない場合は、マシンが信用するすべての証明書が受け入れられます。
すべての証明書の受け入れを示すには、'*'を使用します。セキュリティ上の理由から、これはお勧めできません。
このセクションでは、本プロバイダーの接続文字列で設定可能なSSH プロパティの全リストを提供します。
プロパティ | 説明 |
SSHAuthMode | SFTP サーバーへのログオンに使用する認証方法。 |
SSHClientCert | ユーザーの認証に使用する秘密鍵。 |
SSHClientCertPassword | SSHClientCert キーのパスワード(ある場合)。 |
SSHClientCertSubject | SSH クライアント証明書のサブジェクト。 |
SSHClientCertType | SSHClientCert 秘密鍵の種類。 |
SSHServer | SSH サーバー。 |
SSHPort | SSH ポート。 |
SSHUser | SSH ユーザー。 |
SSHPassword | SSH パスワード。 |
SSHServerFingerprint | SSH サーバーのフィンガープリント。 |
UseSSH | Redis 接続をSSH 経由でトンネルするかどうか。 SSH を使用します。 |
SFTP サーバーへのログオンに使用する認証方法。
ユーザーの認証に使用する秘密鍵。
公開鍵認証を使用するには、SSHClientCert に有効な秘密鍵が含まれている必要があります。 公開鍵はオプションで、含まれていない場合はSync App が秘密鍵から生成します。 Sync App は公開鍵をサーバーに送信し、ユーザーが公開鍵を認証した場合に接続が許可されます。
SSHClientCertType フィールドは、SSHClientCert により指定されたキーストアの種類を指定します。 ストアがパスワードで保護されている場合は、SSHClientCertPassword でパスワードを指定します。
一部の種類のキーストアは、複数のキーを含むことができるコンテナです。 デフォルトでは、Sync App はストアの最初のキーを選択しますが、SSHClientCertSubject を使用して特定のキーを指定することも可能です。
SSHClientCert キーのパスワード(ある場合)。
このプロパティは、SSHAuthMode がPublicKey に設定され、SSHClientCert が秘密鍵に設定されているSFTP サーバーに認証する場合にのみ使用されます。
SSH クライアント証明書のサブジェクト。
証明書のサブジェクトは、証明書をロードするときにストア内の証明書を検索するために使用されます。
完全に一致するものが見つからない場合、ストアはプロパティの値を含むサブジェクトを検索します。
それでも一致するものが見つからない場合、プロパティは空白で設定され、証明書は選択されません。
"*" に設定すると、証明書ストアの1番目の証明書が選択されます。
証明書のサブジェクトは識別の名前フィールドおよび値のカンマ区切りのリストです。 例えば、"CN=www.server.com, OU=test, C=US, [email protected]"。共通のフィールドとその説明は以下のとおりです。
フィールド | 説明 |
CN | 共通名。一般的には、www.server.com のようなホスト名です。 |
O | 法人名 |
OU | 法人の部署名 |
L | 法人の住所(市町村名) |
S | 法人の住所(都道府県) |
C | 国名 |
E | Eメールアドレス |
フィールド値にカンマが含まれている場合は、それを引用符で囲む必要があります。
SSHClientCert 秘密鍵の種類。
このプロパティには次の値の1つを設定できます。
種類 | 説明 | 許容されるBlob 値 |
MACHINE/USER | Blob 値はサポートされていません。 | |
JKSFILE/JKSBLOB | base64のみ | |
PFXFILE/PFXBLOB | PKCS12形式(.pfx)のファイル。証明書と秘密鍵の両方を含む必要があります。 | base64のみ |
PEMKEY_FILE/PEMKEY_BLOB | PEM 形式のファイル。RSA、DSA、またはOPENSSH の秘密鍵を含む必要があります。オプションで、秘密鍵と一致する証明書を含むことができます。 | base64またはプレーンテキスト。blob をテキストとして入力する場合、改行をスペースに置き換えることができます。 |
PPKFILE/PPKBLOB | puttygen ツールで作成されたPuTTY 形式の秘密鍵。 | base64のみ |
XMLFILE/XMLBLOB | .NET のRSA クラスによって生成される形式のXML キー:RSA.ToXmlString(true)。 | base64またはプレーンテキスト。 |
SSH サーバー。
SSH サーバー。
SSH ポート。
SSH ポート。
SSH ユーザー。
SSH ユーザー。
SSH パスワード。
SSH パスワード。
SSH サーバーのフィンガープリント。
SSH サーバーのフィンガープリント。
Redis 接続をSSH 経由でトンネルするかどうか。 SSH を使用します。
デフォルトでは、Sync App はRedis に直接接続しようとします。 このプションを有効にすると、Sync App は代わりにSSHServer でSSH 接続を確率し、Redis への接続をトンネルします。
このセクションでは、本プロバイダーの接続文字列で設定可能なFirewall プロパティの全リストを提供します。
プロパティ | 説明 |
FirewallType | プロキシベースのファイアウォールで使われるプロトコル。 |
FirewallServer | プロキシベースのファイアウォールの名前もしくはIP アドレス。 |
FirewallPort | プロキシベースのファイアウォールのTCP ポート。 |
FirewallUser | プロキシベースのファイアウォールに認証するために使うユーザー名。 |
FirewallPassword | プロキシベースのファイアウォールへの認証に使われるパスワード。 |
プロキシベースのファイアウォールで使われるプロトコル。
このプロパティは、Sync App がFirewallServer プロキシ経由でトンネルトラフィックを使うためのプロトコルを指定します。
タイプ | デフォルトポート | 説明 |
TUNNEL | 80 | これが設定されている場合、Sync App はRedis への接続を開き、プロキシを経由して通信が行われます。 |
SOCKS4 | 1080 | これが設定されている場合、Sync App はデータをFirewallServer およびFirewallPort で指定されたSOCS 4 プロキシ経由で送信し、接続リクエストが許容されるかどうかを決定します。 |
SOCKS5 | 1080 | これが設定されている場合、Sync App はデータをFirewallServer およびFirewallPort で指定されたSOCS 5 プロキシ経由で送信します。プロキシに認証が必要な場合には、FirewallUser およびFirewallPassword をプロキシが認識する認証情報に設定します。 |
プロキシベースのファイアウォールの名前もしくはIP アドレス。
ファイアウォールトラバーサルを許容するために設定するIP アドレス、DNS 名、もしくはプロキシホスト名を指定するプロパティです。プロトコルはFirewallType で指定されます。このプロパティとFirewallServer を使って、SOCKS 経由での接続、もしくはトンネリングが可能です。
プロキシベースのファイアウォールのTCP ポート。
ファイアウォールトラバーサルを許容するために設定するプロキシベースのファイアウォールのTCP ポート。名前もしくはIP アドレスを指定するには、FirewallServer を使います。FirewallType でプロトコルを指定します。
プロキシベースのファイアウォールに認証するために使うユーザー名。
FirewallUser およびFirewallPassword プロパティは、FirewallType により指定された認証方式に則り、FirewallServer、およびFirewallPort で指定されたプロキシに対しての認証に使われます。
プロキシベースのファイアウォールへの認証に使われるパスワード。
このプロパティは、FirewallType により指定された認証メソッドに則り、FirewallServer およびFirewallPort で指定されたプロキシに渡されます。
ログファイルに含めるコアモジュール。
指定された(';' で区切られた)モジュールのみがログファイルに含まれます。デフォルトではすべてのモジュールが含まれます。
概要はログ ページを参照してください。
このセクションでは、本プロバイダーの接続文字列で設定可能なSchema プロパティの全リストを提供します。
プロパティ | 説明 |
Location | テーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリへのパス。 |
BrowsableSchemas | このプロパティは、使用可能なスキーマのサブセットにレポートされるスキーマを制限します。例えば、BrowsableSchemas=SchemaA,SchemaB,SchemaC です。 |
Tables | このプロパティは、使用可能なテーブルのサブセットにレポートされるテーブルを制限します。例えば、Tables=TableA,TableB,TableC です。 |
Views | 使用可能なテーブルのサブセットにレポートされるビューを制限します。例えば、Views=ViewA,ViewB,ViewC です。 |
テーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリへのパス。
Sync App のスキーマファイル(テーブルとビューの場合は.rsd ファイル、ストアドプロシージャの場合は.rsb ファイル)を含むディレクトリへのパス。このフォルダの場所は、実行ファイルの場所からの相対パスにすることができます。Location プロパティは、定義をカスタマイズしたり(例えば、カラム名を変更する、カラムを無視するなど)、新しいテーブル、ビュー、またはストアドプロシージャでデータモデルを拡張する場合にのみ必要です。
指定しない場合、デフォルトの場所は"%APPDATA%\\CData\\Redis Data Provider\\Schema" となり、%APPDATA% はユーザーのコンフィギュレーションディレクトリに設定されます:
このプロパティは、使用可能なスキーマのサブセットにレポートされるスキーマを制限します。例えば、BrowsableSchemas=SchemaA,SchemaB,SchemaC です。
スキーマをデータベースからリストすると、負荷がかかる可能性があります。接続文字列でスキーマのリストを提供すると、 パフォーマンスが向上します。
このプロパティは、使用可能なテーブルのサブセットにレポートされるテーブルを制限します。例えば、Tables=TableA,TableB,TableC です。
テーブルを複数のデータベースからリストすると、負荷がかかる可能性があります。接続文字列でテーブルのリストを提供すると、Sync App のパフォーマンスが向上します。
このプロパティは、作業したいビューがすでにわかっていて、ビューが多すぎる場合に、ビューを自動的にリストする代わりに使用することもできます。
カンマ区切りのリストで使用したいテーブルを指定します。各テーブルは、角かっこ、二重引用符、またはバッククオートを使用してエスケープされた特殊文字列を含む有効なSQL 識別子である必要があります。 例えば、Tables=TableA,[TableB/WithSlash],WithCatalog.WithSchema.`TableC With Space` です。
複数のスキーマまたはカタログを持つデータソースに接続する場合は、複数のカタログやスキーマに存在するテーブル間の曖昧さを避けるため、最後の例のように、このプロパティにテーブルの完全修飾名を指定する必要があることに注意してください。
使用可能なテーブルのサブセットにレポートされるビューを制限します。例えば、Views=ViewA,ViewB,ViewC です。
ビューを複数のデータベースからリストすると、負荷がかかる可能性があります。接続文字列でビューのリストを提供すると、Sync App のパフォーマンスが向上します。
このプロパティは、作業したいビューがすでにわかっていて、ビューが多すぎる場合に、ビューを自動的にリストする代わりに使用することもできます。
カンマ区切りのリストで使用したいビューを指定します。各ビューは、角かっこ、二重引用符、またはバッククオートを使用してエスケープされた特殊文字列を含む有効なSQL 識別子である必要があります。 例えば、Views=ViewA,[ViewB/WithSlash],WithCatalog.WithSchema.`ViewC With Space` です。
複数のスキーマまたはカタログを持つデータソースに接続する場合は、複数のカタログやスキーマに存在するテーブル間の曖昧さを避けるため、最後の例のように、このプロパティにテーブルの完全修飾名を指定する必要があることに注意してください。
このセクションでは、本プロバイダーの接続文字列で設定可能なMiscellaneous プロパティの全リストを提供します。
プロパティ | 説明 |
IgnoreTypeErrors | 指定されたデータ型のサポートを削除して、それらの型のキャスト例外を無視します。 |
MaxRows | クエリで集計またはグループ化を使用しない場合に返される行数を制限します。これにより、設計時にパフォーマンスの問題を回避できます。 |
Other | これらの隠しプロパティは特定のユースケースでのみ使用されます。 |
ParallelMode | This option sets whether the provider should use multiple connections when connecting to Redis. |
PseudoColumns | このプロパティは、テーブルのカラムとして疑似カラムが含まれているかどうかを示します。 |
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. |
RowScanDepth | テーブルで利用可能なカラムを探すためにスキャンする行数の最大値。 |
TableScanDepth | Redis データベースで利用可能なテーブルを検索する際にスキャンするキーの最大数。 |
Timeout | タイムアウトエラーがスローされ、処理をキャンセルするまでの秒数。 |
UserDefinedViews | カスタムビューを含むJSON コンフィギュレーションファイルを指すファイルパス。 |
指定されたデータ型のサポートを削除して、それらの型のキャスト例外を無視します。
キャスト例外を無視して文字列として扱うデータ型のカンマ区切りリストです。例えば、IgnoreTypeErrors=Date,Time です。
値が指定された型として解析された場合は、文字列として返されます。そうでない場合は、値は代わりにNULL として返されます。
クエリで集計またはグループ化を使用しない場合に返される行数を制限します。これにより、設計時にパフォーマンスの問題を回避できます。
クエリで集計またはグループ化を使用しない場合に返される行数を制限します。これにより、設計時にパフォーマンスの問題を回避できます。
これらの隠しプロパティは特定のユースケースでのみ使用されます。
以下にリストされているプロパティは、特定のユースケースで使用可能です。通常のドライバーのユースケースおよび機能では、これらのプロパティは必要ありません。
複数のプロパティをセミコロン区切りリストで指定します。
DefaultColumnSize | データソースがメタデータにカラムの長さを提供しない場合に、文字列フィールドのデフォルトの長さを設定します。デフォルト値は2000です。 |
ConvertDateTimeToGMT | 日時の値を、マシンのローカルタイムではなくGMT グリニッジ標準時に変換するかどうかを決定します。 |
RecordToFile=filename | 基底のソケットデータ転送を指定のファイルに記録します。 |
This option sets whether the provider should use multiple connections when connecting to Redis.
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.
このプロパティは、テーブルのカラムとして疑似カラムが含まれているかどうかを示します。
Entity Framework ではテーブルカラムでない疑似カラムに値を設定できないため、この設定はEntity Framework で特に便利です。この接続設定の値は、"Table1=Column1, Table1=Column2, Table2=Column3" の形式です。"*=*" のように"*" 文字を使用して、すべてのテーブルとすべてのカラムを含めることができます。
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.
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.
テーブルで利用可能なカラムを探すためにスキャンする行数の最大値。
テーブルのカラムはテーブル行をスキャンすることで決定される必要があります。この値はスキャンされる行数の最大値を設定します。
大きい値を設定すると、パフォーマンスが低下する場合があります。小さい値を設定すると、特にnull データがある場合には、データ型を正しく判定できない場合があります。
Redis データベースで利用可能なテーブルを検索する際にスキャンするキーの最大数。
Redis はスキーマレスのため、Sync App はTablePattern に一致するキーを探してテーブルを決定します。この値はTablePattern の各エントリに対してスキャンされるキーの最大数を設定します。
この制限を無効にして常にすべてのキーをスキャンするには、このプロパティの値を"-1" に設定します。それ以外の場合は、このプロパティを正の整数に設定して、スキャンされるキーの数を制限します。
タイムアウトエラーがスローされ、処理をキャンセルするまでの秒数。
Timeout が0に設定されている場合は、操作がタイムアウトしません。処理が正常に完了するか、エラー状態になるまで実行されます。
Timeout の有効期限が切れても処理が完了していない場合は、Sync App は例外をスローします。
カスタムビューを含むJSON コンフィギュレーションファイルを指すファイルパス。
ユーザー定義ビューは、UserDefinedViews.json というJSON 形式のコンフィギュレーションファイルで定義されています。Sync App は、このファイルで指定されたビューを自動的に検出します。
また、複数のビュー定義を持ち、UserDefinedViews 接続プロパティを使用して制御することも可能です。このプロパティを使用すると、指定されたビューのみがSync App によって検知されます。
このユーザー定義ビューのコンフィギュレーションファイルは、次のようにフォーマットされています。
次に例を示します。
{ "MyView": { "query": "SELECT * FROM Customers WHERE MyColumn = 'value'" }, "MyView2": { "query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)" } }UserDefinedViews 接続プロパティを使用して、JSON コンフィギュレーションファイルの場所を指定します。次に例を示します。
"UserDefinedViews", "C:\\Users\\yourusername\\Desktop\\tmp\\UserDefinedViews.json"