【发布时间】:2011-03-13 10:59:33
【问题描述】:
有什么方法可以从关系数据库(如 Oracle 或 SQL Server)访问 Redis 数据?
我想到的一个用例是数据仓库的 ETL。
【问题讨论】:
标签: database export nosql etl redis
有什么方法可以从关系数据库(如 Oracle 或 SQL Server)访问 Redis 数据?
我想到的一个用例是数据仓库的 ETL。
【问题讨论】:
标签: database export nosql etl redis
我试图理解这个问题:您在传统的 RDBM 中有数据,并且您想从这里提取信息并加载到 Redis 中?还是相反?
无论哪种方式,由于我没有能力谈论 RDBMS,我希望创建一个程序(在我的例子中是 Java),它会从 Redis 中提取信息,并将其上传到 Oracle。有使用 Java 客户端库与 Redis 交互的选项(JDBC Redis 和 JRedis 是示例)
如果您能详细说明您的问题,您可能会从社区获得更好的答案。
【讨论】:
好吧,如果您在 ORA 上使用服务器端 Java 对象(并且他们可以进行 REST 调用,至少,如果不是套接字 io(不知道)),那么您可以从 Oracle 中的存储过程调用 Redis .
[编辑]
应该补充一点,如果您可以建立套接字连接,那么只需将 JRedis jar 包含在您的 Oracle 服务器的 lib 中,以便服务器端对象可以创建客户端。
如果这不可能——我会严重质疑允许 SProcs 和触发器打开通用 TCP 连接的数据库——然后你就只能使用 Web 服务了。
JRedis 不支持 Web 服务,但没有什么能阻止您包装 JRedis 并将所需的任何命令公开为 RESTFul 资源。因此,在这里,您将在服务器 R 上运行 Redis,这是一个在服务器 R 或 R` 上运行 JRedis 的 Java Web 服务器(Jetty/Jettison 会很好)。由于 Redis 是单线程的,因此可以在与 JVM 相同的多核机器上运行它。这只是资源问题,如果它们就足够了,那么您就可以在 Redis 和 JRedis 之间的连接上使用环回,并且保证比遍历网络边界更快!但是,如果您需要的负载排除了 Redis 和 JRedis(代理)的托管,那么请使用第二台服务器。
当然,您在服务器 D 上运行数据库。所以 D R` R。当然,您将支付第二跳的延迟成本。
【讨论】: