Oracle や SQL Server などのリレーショナル データベースから Redis データにアクセスする方法はありますか?
私が考えているユースケースの 1 つは、データ ウェアハウスへの ETL です。
質問を理解しようとしています:従来のRDBMにデータがあり、ここから情報を抽出してRedisにロードしたいですか?またはその逆ですか?
いずれにせよ、RDBMSについて話す能力がないので、Redisから情報を抽出してOracleにアップロードするプログラム(私の場合はJava)を作成することを期待します。Javaクライアントライブラリを使用してRedisと対話するオプションがあります(JDBC Redis、およびJRedisが例です)
質問について詳しく説明できれば、コミュニティからより良い回答が得られる可能性があります。
まあ、ORAでサーバー側のJavaオブジェクトを使用している場合(そして、ソケットioではない場合(わからない)、少なくともREST呼び出しを行うことができます)、OracleのストアドプロシージャからRedisを呼び出すことができます。
[編集]
ソケット接続を作成できる場合は、JRedis jar を Oracle サーバーの lib に含めるだけで、サーバー側のオブジェクトがクライアントを作成できるようになります。
それが不可能な場合 -- SProcs とトリガーが一般的な TCP 接続を開くことを可能にする DB に真剣に疑問を投げかけます -- その場合、Web サービスを消費することになります。
JRedis は Web サービスをサポートしていませんが、JRedis をラップして RESTFul リソースとして必要なコマンドを公開することを妨げるものは何もありません。したがって、ここでは、サーバー R または R` で JRedis を実行している Java Web サーバー (Jetty/Jettison で十分です) であるサーバー R で Redis を実行します。Redis はシングル スレッドであるため、JVM と同じマルチコア ボックスで実行してもまったく問題ありません。それは単なるリソースの問題であり、それらが十分であれば、Redis と JRedis の間の接続でループバックを使用しており、ネットワーク境界を横断するよりも高速であることが保証されています! ただし、必要な負荷が Redis と JRedis (プロキシ) のコロケーションを妨げる場合は、2 番目のサーバーを使用します。
そしてもちろん、サーバー D で DB を実行しています。つまり、D <=> R` <=> R です。もちろん、2 番目のホップのレイテンシ コストを支払うことになります。