RavenDB与SQL数据库的ETL

3

我正在使用RavenDB ETL并尝试将数据发送到SQL数据库。对于一个Ravendb数据库,这相当容易实现。但在我的情况下,我有很多(20个以上)RavenDB数据库,并且希望将所有数据发送到SQL报告数据库。由于所有数据库具有相同的结构,不同RavenDB中的documentId可能相同,因此SQL数据库中documentId列中的值将不唯一。有没有人有解决此问题的经验?

2个回答

2

1

只是一个想法:
这20个以上的RavenDB数据库是否有不同/独特的名称?
如果是,您可以将数据库名称连接到每个创建在这些数据库上的文档中
这样每个文档都会获得一个唯一的ID
可以使用onBeforeStore来操作文档ID
请参见:https://ravendb.net/docs/article-page/5.2/Csharp/client-api/session/how-to/subscribe-to-events
因此,在存储到磁盘之前,将数据库名称连接到数据库中...
这样SQL ETL就可以获得唯一的文档ID


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接