Lotus DB 到 SQL Server 的迁移
我的公司在IBM的Lotus DB中有一个数据库。它是很久以前设计的。现在,合同即将结束,我们需要将其转移到 SQL Server。问题是它是一个庞大的组织,而且由于这些数据库非常古老......我们无法追踪设计它的人。现在,我们只有使用 Lotus DB 构建的应用程序。有没有办法将其迁移到 SQL Server?有没有什么好的工具可以将数据迁移到SQL Server?
My company has a database in IBM's Lotus DB. It was designed long back. Now, the contract is ending, and we need to transfer it to SQL Server. The problem is that it is a huge organization, and since these databases are very old...we are not able to track the person who designed it. Right now, we just have the application which was build using the lotus DB. Is there a way we can migrate this to SQL Server? Are there any good tools available to migrate the data to SQL Server?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
没有任何工具可以自动将非关系型非结构化 LN DB 转换为 SQL 模式。 Lotus Notes 就像“NoSQL”
由于 Domino 是非结构化的,您需要手动检查视图这将告诉您文档之间的关系以及您需要应用哪些引用完整性约束。您可以首先查看视图的排序顺序以及它们使用的视图公式。然后,您需要考虑表单设计中 UI 的复杂性以及如何复制它。
在许多情况下,您需要创建自己的特定唯一密钥。根据复杂性,这可能不是一项艰巨的任务。当您看到模仿 Lotus Notes 本地功能的关系设计和 UI 技术的规模时,真正的工作就开始了。
这是迁移数据的高级方法。
1/ 分析视图并确定排序顺序作为键的指示。
2/查看表格,看看您需要导出多少个字段。
3/ 制定数据和 UI 的新设计。这将帮助您发现新系统的 Lotus Notes 数据和功能之间的差距。
4/ 将 Lotus Notes 中的文档导出设计为平面文件,或者您可以在下一步中将它们直接加载到表格中。
5/ 将原始数据加载到一组“分类”表中进行数据清理,因为您会发现某些字段可能为空或为空。这些表通常没有太多约束或规则,因为 Lotus Notes 数据通常不符合它。所以允许它。
6/ 您现在应该能够识别数据中所有已知的差距,并进行调整以调整数据或更改您的最终设计。
7/设计最终加载脚本,将数据从 Triage 移动到生产质量关系系统。
这就是系统迁移的乐趣,即从一种技术迁移到另一种技术,但仍然为用户提供相同的系统。当你向用户展示与之相关的价格标签时,用户通常不会很好地接受该消息......
There are no tools that can auto-magically translate a non-relational unstructured LN DB into an SQL schema. Lotus Notes is like "NoSQL"
As Domino is un-structured, you need to manually check the views that will give you an indication of the relationships between documents and what referential integrity constraints you need to apply. You can start by looking at the sorted order of the views, and the view formulas they are using. You then need to consider the complexity of the UI in the form design and how you will replicate that.
In many cases you will need to create your own specific unique keys. Depending on the complexity, this may not be a huge task. The real work will start when you see the size of the relational design and UI technology to mimic what Lotus Notes does natively.
Here is a high level approach to migrating data.
1/ Analyse the views and identify the sorted order as an indication of keys.
2/Look at the forms to see how many fields you need to export.
3/ Draw up your new design for data and the UI. This will help you find gaps between Lotus Notes data and functionality with the new system.
4/ Design exports of documents from Lotus Notes into flat files or you can load them straight into the tables in the next step.
5/ Load the raw data into a set of "triage" tables for data cleansing as you'll find some fields may be null or empty. These tables usually don't have much in the way of constraints or rules, because Lotus Notes data will generally not conform to it. So allow for it.
6/ You should now be able to identify all the known gaps in the data and make adjustments to tweak the data or change your final design.
7/Design your final loading scripts to move the data from Triage to the production quality relational system.
This is the joy of system migrations, that is, to go from one technology to another and still give users the same system. Users generally don't take that news well when you show them the price tag associated with it....
您的基本问题是 Notes 不是关系数据库,因此您将享受分析数据和设计 MS SQL 模式的乐趣。 Google for NotesSQL,它是一个 ODBC 驱动程序,使 Notes 视图“看起来”像 RDBMS 的表。如果您有人了解 LotusScript,您可以直接在数据库中编写自己的导出例程,但从您的帖子来看,我猜您不会。
祝你好运:-)
Your basic problem is that Notes isn't a relational database so you're going to have fun analysing the data and designing the MS SQL schema. Google for NotesSQL, it's an ODBC driver that makes Notes views "look" like tables to an RDBMS. If you've someone who understands lotusscript you can write your own export routines directly in the db's, but from your post I'm guessing you don't.
Best of luck :-)
从 SQL 角度来看 Lotus Notes 数据库的一种简单方法是将文档/表单视为记录,将视图视为表。每个文档都有一个唯一的键,即universalID。有时会保存此密钥并用于链接文档。 Lotus 支持的唯一关系是响应文档结构。
NotesSQL ODBC 驱动程序是一个选项,但如果它是一个小型数据库,没有太多视图,您可以使用导出选项,甚至可以复制到表。
如果这是涉及多个 Lotus 数据库的大型迁移,您将需要了解 NoSQL/Lotus Notes 概念,可能还需要了解一些 Lotus 脚本。
重要的是要理解文档(记录)没有固定的定义。该表单用于填充文档,但任何文档上都可以有额外的项目。您可以使用文档属性查看器调查各个文档项目上的项目。
A simple approach to a Lotus Notes database in a SQL perspective is to see a document/form as a record and a view as a table. Each document has an unique key, the universalID. This key is sometimes saved and used to link documents. The only relation that is supported in Lotus is the response document structure.
The NotesSQL ODBC driver is an option, but if it is a small database with not to many views you can use the export option, or maybe even copy to table.
If this is a big migration involving multiple Lotus databases you will need to understand the NoSQL/Lotus Notes concept and probably some lotus script.
It is important to understand that there is no fixed definition for a document (record). The form is used to populate a document, but there can be extra items on any document. You can investigate the items on individual document items using the document properties viewer.
请记住,传输数据只是让应用程序在 MS SQL 上运行的一部分。 Notes / Domino 应用程序将具有其他逻辑,您必须重写这些逻辑才能对您移动的数据执行任何有意义的操作。
Bear in mind that transferring the data is only going to be one part of getting the application working on MS SQL. The Notes / Domino app will have other logic that will have to be rewritten for you to do anything meaning full with the data you move.
什么合同即将终止?据我所知,您可以继续使用您拥有的服务器软件。另一种选择是升级以其稳定性而闻名的 Domino 服务器。另一种选择是通过文件/导出导出所需的数据,然后选择 CSV 或其他某种类型。
What contract is ending? AFAIK you can continue to use the server software you have. Another option is to upgrade the Domino server, renowned for its stability. Yet another option is to export the data you need via File/Export and then select CSV or other some type.