unidata 表中的数据结构

How data is structured in Tables in unidata

我正在通过 java 程序为 unidata tables 提取字典信息和数据(平面文件),我使用 'table name' 来获取这两个东西,现在我们是还有其他项目,其中 Unidata 数据库分为多个模块(目录),每个目录包含文件和更多目录,现在我的问题是 1) 我们怎么能说特定文件是 Unidata table? 2)对于某些文件,我们能够获取字典信息但不能获取数据,这两个东西是否在同一位置不可用?如果不是,我们如何将两者联系起来?
我是 Unidata 的新手,请忽略我在这个问题上的天真并阐明一些想法。谢谢

如果您登录到 Unidata 并从内部查看它,可能会更清楚一些。 unidata "account"(数据库)包含文件和字典。文件就像一个数据库 table,但没有关于内容或列的元数据。字典是一种特殊的 table,它确实包含有关相应文件的元数据。所以如果我这样做:

:CREATE.FILE MY.FILE 37,1
Create file D_MY.FILE, modulo/1,blocksize/1024
Hash type = 0
Create file MY.FILE, modulo/37,blocksize/1024
Hash type = 0
Added "@ID", the default record for UniData to DICT MY.FILE.

我在当前帐户中创建了两个 unix 级别的文件。两者都是空的。因为我没有指定,系统创建了一个散列文件,以及一个指针在 "master dictionary" 或 VOC.

:ED VOC MY.FILE
Top of "MY.FILE" in "VOC", 3 lines, 19 characters.
*--: P
001: F
002: MY.FILE
003: D_MY.FILE
Bottom.

第一个属性告诉我们文件的类型。第二个和第三个是指向数据和字典文件所在位置的指针(它们不必在当前帐户中)。其他类型包括 DIR 类型、LD(多级文件,其中有共享字典的子文件)和一些不太常见的组合。更多信息来自:

:HELP CREATE.FILE
CREATE.FILE

Syntax

CREATE.FILE [DICT | DATA] [DIR | MULTIFILE | MULTIDIR] filename [,subfile]
[modulo [,block.size.multiplier]] [TYPE hashtype] [DYNAMIC [KEYONLY
| KEYDATA] [PARTTBL part_tbl]] [RECOVERABLE] [OVERFLOW]
Note: The PARTTBL option is available on UniData for UNIX only.
Synonym
CREATE-FILE

Description

The ECL CREATE.FILE command creates a UniData file. If you do not
indicate the kind of file to create (such as dictionary, data, or
directory), UniData creates filename (both the data and dictionary
files) as a static hashed file. If an operating system-level file
of the same name already exists in the target account, CREATE.FILE
fails.

因此,如果您已经成功提取数据,但想了解新 table 的类型及其字典的位置,答案是查看 VOC table .