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