从 Intersystems Caché 导出数据库
我有一个基于 Intersystems Caché 数据库的产品,我看不到类、模式、表,只有全局变量。有没有什么聪明的方法可以从这些全局变量中导出数据并获得“人类可读的结构”?
I have a product based on Intersystems Caché database, I can see no classes, no schemas, no tables, only globals. Is there any smart way to export data from these globals and get "human-readable structure"?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
第一个问题是……Caché 是什么版本?
第二个问题是......您可以使用哪些工具?终端、工作室、管理门户??
如果数据位于表/类中,您至少应该能够通过 ODBC 访问它。
如果没有任何表/类,则数据可能位于全局中。
如果数据位于全局(持久稀疏数组存储)中,如果您不习惯常见模式,它们可能看起来有点奇怪。
即使是在全局中,也可以使用自定义映射存储来定义类,使它们通过 SQL 以类似表格的方式显示。
缓存非常灵活,但学习曲线可能很陡峭。 :-(
First question is... what version of Caché?
Second question is... what tools do you have access to? Terminal, Studio, Management Portal??
If the data is in tables/classes, you should be able to access it via ODBC, at least.
If there aren't any tables/classes, the data is probably in Globals.
If the data is in Globals (persistent sparse array storage) they can look a bit wierd if you aren't used to the common patterns.
Even if it is in Globals, it may be possible to define classes with custom mapped storage to make them appear in a table-like way via SQL.
Cache is EXTREEMELY flexible, but can be a steep learning curve. :-(
系统间缓存中的全局变量是无模式类型的存储,因此您可以拥有的最佳“人类可读”格式是系统管理门户中的格式。
其他选项有:
* 终端中的 zw 命令
* 终端中的 d ^%G 命令
Globals in Intersystems Cache is schemaless type of storage, so the best "human-readable" format you can have is that one in System Management Portal.
Other options are:
* zw command in terminal
* d ^%G command in terminal
您是否可以使用 Cache Studio 查看 Cache SMP 或连接到数据库?我想你会在那里找到代码(如果他们不使用类的话,至少有一堆例程)。使用 SMP 浏览全局变量是熟悉它们包含的数据集的好方法。在终端会话中,您可以使用 zw 命令查看全局节点内容:
http://docs.intersystems.com/cache20082/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_czwrite
您能否提供有关您情况的更多信息?
Are you able to view the Cache SMP or connect to the database using Cache Studio? I would think you'd find code somewhere in there (at least a bunch of routines if they're not using classes). Using the SMP to browse the globals is a good way to get familiar with the datasets they contain. From a terminal session, you can use the zw command to take a look at global node contents:
http://docs.intersystems.com/cache20082/csp/docbook/DocBook.UI.Page.cls?KEY=RCOS_czwrite
Can you give a little more information about your situation?
根据全局变量的结构,您可以为它们创建类并编辑存储映射以指向它们。在此基础上,您可以继续创建报告/(zen/csp)网页来显示内容。但是,根据数据的复杂性,这可能会花费您数小时到数月的时间:/
Depending on the structure of your globals you could create classes for them and edit the storagemapping to point to them. Based on that you then could go ahead and create reports/(zen/csp)webpages to display the contents. However, depending on the complexity of your data this could take you anywhere between hours and months :/
我的经验是使用 Navicat Tool 并将数据库 Caché 导出到 MySQL 模式或 Postgres 以了解 DB 模型,通过 ODBC 使用导入工具。
My experience is to use Navicat Tool and export database Caché into a MySQL schema or Postgres to understand DB Model, using import Tool via ODBC.
ODBC 与缓存一起使用。您可以使用 ODBC 连接将数据导出到另一个结构,例如一组可用表或文本文件。
ODBC works with cache. You can use the ODBC connection to export the data to another strucutre such as a set of free tables or text files.
您可以使用名为 D ^%GO 的系统实用程序,它是全局输出。您指定全局以及要将它们导出到的文件。还有一个 ^%GI 用于从此文件进行全局导入
You can use a system utility called D ^%GO which is Global Output. You specify the global(s) and the file you want them exported to. There’s also a ^%GI for global imports from this file