从nodejs批量加载titan db中的数据
Bulk load data in titan db from nodejs
我现在的场景是
- 我有一个 rabbit mq,它提供了所下订单的详细信息。
- 在另一边,我有我的 titan 数据库(cassandra 存储、es 索引后端和 gremlin 服务器)。
- 我还有一个 nodejs 应用程序,它可以使用 https://www.npmjs.com/package/gremlin 通过 http api 与 gremlin 服务器交互。我可以从这里访问我的图形数据库。
现在我要做的是将数据从 rabbit mq 加载到 titan db。
到目前为止我能做的是使用 gremlin 节点模块从 nodejs 文件加载数据
var createClient = require('gremlin').createClient;
//import { createClient } from 'gremlin';
const client = createClient();
client.execute('tx=graph.newTransaction();tx.addVertex(T.label,"product","id",991);tx.commit()', {}, function(err, results){
if (err) {
return console.error(err)
}
console.log(results)
});
接下来我应该怎么做才能利用现有的 rabbit mq 订单并将它们推送到 titan db。
Due to some constraints I can not use java.
您很可能正在寻找类似 node-amqp 的东西,它是 RabbitMQ 的 Node.js 客户端。你想要做的是:
- 建立与 Gremlin 服务器的连接
- 建立到 RabbitMQ 的连接
- 监听 RabbitMQ 消息队列
- 将这些消息发送到 Gremlin,创建图形元素
您必须注意的事项可能会影响您的表现:
- 使用 bound parameters
发送 Gremlin 查询
- 批处理消息:创建多个顶点并在同一事务中提交它们(=相同的 Gremlin 查询,除非在您
.commit()
自己的会话模式下)。几千个数字应该可以。
- 注意背压并确保您不会向 Titan 实例发送超出其处理能力的消息。
我不熟悉 RabbitMQ,但希望这能帮助您入门。
注意:Gremlin javascript 驱动程序通过 WebSocket 连接与 Gremlin 服务器交互,该连接是永久的双向的。客户端尚不支持 HTTP Channelizer(这不是您希望在当前场景中建立的那种连接)。
我现在的场景是
- 我有一个 rabbit mq,它提供了所下订单的详细信息。
- 在另一边,我有我的 titan 数据库(cassandra 存储、es 索引后端和 gremlin 服务器)。
- 我还有一个 nodejs 应用程序,它可以使用 https://www.npmjs.com/package/gremlin 通过 http api 与 gremlin 服务器交互。我可以从这里访问我的图形数据库。
现在我要做的是将数据从 rabbit mq 加载到 titan db。
到目前为止我能做的是使用 gremlin 节点模块从 nodejs 文件加载数据
var createClient = require('gremlin').createClient;
//import { createClient } from 'gremlin';
const client = createClient();
client.execute('tx=graph.newTransaction();tx.addVertex(T.label,"product","id",991);tx.commit()', {}, function(err, results){
if (err) {
return console.error(err)
}
console.log(results)
});
接下来我应该怎么做才能利用现有的 rabbit mq 订单并将它们推送到 titan db。
Due to some constraints I can not use java.
您很可能正在寻找类似 node-amqp 的东西,它是 RabbitMQ 的 Node.js 客户端。你想要做的是:
- 建立与 Gremlin 服务器的连接
- 建立到 RabbitMQ 的连接
- 监听 RabbitMQ 消息队列
- 将这些消息发送到 Gremlin,创建图形元素
您必须注意的事项可能会影响您的表现:
- 使用 bound parameters 发送 Gremlin 查询
- 批处理消息:创建多个顶点并在同一事务中提交它们(=相同的 Gremlin 查询,除非在您
.commit()
自己的会话模式下)。几千个数字应该可以。 - 注意背压并确保您不会向 Titan 实例发送超出其处理能力的消息。
我不熟悉 RabbitMQ,但希望这能帮助您入门。
注意:Gremlin javascript 驱动程序通过 WebSocket 连接与 Gremlin 服务器交互,该连接是永久的双向的。客户端尚不支持 HTTP Channelizer(这不是您希望在当前场景中建立的那种连接)。