带有sql数据库的RavendbETL

带有sql数据库的RavendbETL,ravendb,Ravendb,我正在玩RavendbETL,并试图将数据发送到sql数据库。有一个Ravendb数据库,非常容易实现。在我的例子中,我有许多(20++)RavenDB数据库,我希望将所有数据发送到SQL reporting数据库。由于所有数据库都具有相同的结构,因此不同RavenDB中的documentId可以相同,SQL数据库中documentId列中的值将不唯一。有人有解决这个问题的经验吗?只是一个想法: 20++RavenDB数据库是否有不同/唯一的名称 如果是,您可以将db名称连接到在这些数据库上创建

我正在玩RavendbETL,并试图将数据发送到sql数据库。有一个Ravendb数据库,非常容易实现。在我的例子中,我有许多(20++)RavenDB数据库,我希望将所有数据发送到SQL reporting数据库。由于所有数据库都具有相同的结构,因此不同RavenDB中的documentId可以相同,SQL数据库中documentId列中的值将不唯一。有人有解决这个问题的经验吗?

只是一个想法:
20++RavenDB数据库是否有不同/唯一的名称
如果是,您可以将db名称连接到在这些数据库上创建的每个文档
这样,每个文档将获得一个唯一的id
可以使用
onBeforeStore操作文档id

请参见:
因此,在存储到磁盘之前,db名称被连接到db

通过这种方式获取唯一的文档ID,您只需添加额外的列,即可区分源数据库名称

我知道每个SQL脚本将包含不同的定义,但您可以使用任何客户端(c#、java、节点等)自动执行此任务

有关API/示例,请参见:


您也可以选择将数据库名称转换为文档id-决定权归您。

感谢您的输入,20++RavenDB具有唯一的名称,但是它需要在相关文档中进行大量修补,以更新所有现有的documentId,我不会冒这个风险:-)我希望它能够影响SQL查询在脚本中的生成方式,例如:loadToOrderImport({documentId:this.documentId+“RavendBux”,编号:this.Number,状态:this.Status,InstanceName:“ravenDB_x”});或者使用2个documentId列名定义SQL表