配置关键字为同时定义多个存储设置提供了方法。配置关键字可将多个参数和值集合到一起,这将指定数据和数据库对象在地理数据库中的存储方式。
您可在执行下列任一操作时指定配置关键字:
- 使用 ArcGIS Desktop、ArcGIS Pro 或地理处理工具加载或创建数据集。
- 迁移存储类型。
- 建立地理数据库要素,例如 terrain 或拓扑。
ArcGIS 使用指定的配置关键字查找与之相关联的“参数名称-值”对。包含配置字符串的值包括在 ArcGIS 提交到数据库的 CREATE TABLE 或 CREATE INDEX 语句中。
下一部分将介绍创建企业级地理数据库时的默认关键字。您可以更改这些关键字的现有参数的值,或者如果默认关键字不能满足您的需求,请创建自定义关键字。
默认配置关键字
DEFAULTS、LOGFILE_DEFAULTS 和复合配置关键字默认存在于企业级地理数据库的所有数据库管理系统实现中。这些参数将在下面的章节中介绍:
DEFAULTS
顾名思义,在创建表、要素类、栅格数据集以及索引时,默认情况下使用 DEFAULTS 配置关键字下的设置。如果在地理数据库中创建数据时未指定其他关键字,或者指定的关键字缺少某些必要参数,则将使用 DEFAULTS 关键字中的值。在创建地理数据库时,DBTUNE 表具有完全填充的 DEFAULTS 配置关键字。
更改 DEFAULTS 关键字参数组时,请使用可代表最常见的数据存储配置的值来填充它。这样就不必为所定义的每个关键字分别定义所有参数。例如,如果创建一个配置关键字用来在与其余数据分离的存储空间中创建表,则只需要添加用于指定表存储位置的参数。然后,可从 DEFAULTS 关键字参数组选取其余参数,例如,几何存储类型。
使用您所在特定场所最常用的值来填充 DEFAULTS 关键字,这样做还可以让组织中创建数据的人们变得更轻松。如果 DEFAULTS 关键字包含的设置占到用户所需数据的 95%,那么用户只需考虑为其余 5% 选择不同的关键字。
DEFAULTS 关键字参数组中的初始配置参数因数据库管理系统的不同而有所不同。
LOGFILE_DEFAULTS
LOGFILE_DEFAULTS 关键字存在,但不再用于 PostgreSQL 和 Oracle 中的地理数据库。
复合配置关键字
复合关键字是一种独特的关键字类型,通常在用户要将同一网络、Terrain 或拓扑类中的表存储到单独的空间中时使用。 例如,如果某个表要比其他表活跃得多或者类中的某个表要比其他表大得多,用户就会想将其存储到单独的空间。
复合配置关键字可细分为以下元素:没有后缀的父元素,以及通过在父元素的配置关键字上添加 ::<元素名称> 后缀而进行区分的复合关键字元素。
可以创建自己的复合关键字,但默认的复合关键字有 NETWORK_DEFAULTS、TOPOLOGY_DEFAULTS 和 TERRAIN_DEFAULTS。
网络复合关键字
NETWORK_DEFAULTS 是默认网络复合关键字的父关键字。默认网络复合关键字的其他元素有 NETWORK_DEFAULTS::DESC 和 NETWORK_DEFAULTS::NETWORK。当指定网络父关键字时,将从所有这三个配置关键字中读取参数和值。
如果要创建自定义的一组网络配置关键字,请将 DEFAULTS 替换为其他词。例如,针对用于高速公路的自定义网络复合关键字,可以创建以下的关键字:
NETWORK_HWY NETWORK_HWY::DESC NETWORK_HWY::NETWORK
与所有自定义关键字一样,需要指定要用于特殊的非默认网络类的存储值。在此示例中,当指定 NETWORK_HWY 父关键字来创建网络数据集时,ArcGIS 利用为 NETWORK_HWY、NETWORK_HWY::DESC 和 NETWORK_HWY::NETWORK 关键字设置的值来创建构成网络的表。
网络由多个系统表和要素类组成。根据网络的类型以及是否实际指定了关键字,为复合关键字的每个元素指定的存储参数用来存储不同的表。下表列出了网络复合关键字的元素对几何网络或网络数据集中哪些表的存储方式造成影响:
如果... | 网络复合关键字元素 | ||
---|---|---|---|
NETWORK_<名称> | NETWORK_<名称>::DESC | NETWORK_<名称>::NETWORK | |
创建网络数据集时指定网络父关键字 | 定义系统交汇点要素类、ND_<itemID>_DIRTYAREAS 和 ND_<ItemID>DIRTYOBJECTS 表的存储方式。 | 定义 N_<ID>_DESC 表的存储方式 | 定义所有其他 N_<ID>_* 表的存储方式 |
创建网络数据集时未指定网络父关键字 | 以 DEFAULTS 关键字创建系统交汇点要素类、ND_<itemID>_DIRTYAREAS 和 ND_<ItemID>DIRTYOBJECTS 表。以 NETWORK_DEFAULTS 父关键字参数创建所有其他网络数据集表。 | 未使用 | 未使用 |
创建几何网络时指定网络父关键字 | 定义孤立交汇点要素类和构建错误表的存储方式。 | 定义 N_<ID>_DESC 表的存储方式 | 定义所有其他 N_<ID>_* 表的存储方式 |
创建几何网络时未指定网络父关键字 | 以 DEFAULTS 关键字创建孤立交汇点要素类和构建错误表。以 NETWORK_DEFAULTS 父关键字参数创建所有其他几何网络表。 | 未使用 | 未使用 |
拓扑复合关键字
拓扑复合关键字用于控制拓扑表的存储方式。地理数据库的 DBTUNE 表中必须具有用于构建拓扑的有效拓扑关键字。拓扑复合关键字由父元素 TOPOLOGY_DEFAULTS 和用来指示 DIRTYAREAS 拓扑表存储位置的 TOPOLOGY_DEFAULTS::DIRTYAREAS 组成。DIRTYAREAS 表可以变得非常大,并且在版本化地理数据库中非常活跃。因此,如果地理数据库使用拓扑,并且对数据进行大量的版本化编辑,您应该更改 TOPOLOGY_DEFAULTS::DIRTYAREAS 的参数值以在单独的存储位置存储 DIRTYAREAS 表组件;默认情况下,这些表组件的存储设置与拓扑表相同。
请注意,参与同一拓扑的数据集应使用相同的几何存储类型;如果不是这样,则可能会出现一些因数据存储方式稍有变化而引起的拓扑错误。大多数情况下,这些变化非常小,但可能会违反一条或多条拓扑规则。
有关地理数据库拓扑的简介,请参阅拓扑基础知识。
Terrain 复合关键字
Terrain 复合关键字用于控制针对 Terrain 数据集创建的以下各表的存储:
- DTM_<itemID>_COMPOSITETILES
- DTM_<itemID>_DIRTYAREA
- DTM_<itemID>_INSIDETILES
- DTM_<itemID>_MRFC
- DTM_<itemID>_PROPS
- DTM_<itemID>_EMBED_<N>
ItemID 是用于特定 Terrain 数据集的 GDB_ITEMS 表中 UUID 字段的值。N 指示特定的 DTM_<itemID>_EMBED 表;可以是表示这些表的任意数值 (0...n)。
默认的 Terrain 关键字是 TERRAIN_DEFAULTS(控制以上列出的前四个表的默认存储方式)和 TERRAIN_DEFAULTS::EMBEDDED(控制 DTM_<itemID>_EMBED_<N> 表的存储方式)。
DTM_<itemID>_EMBED_<N> 表存储嵌入的要素类。为此,它们可能要比其他 Terrain 表大得多;因此,根据用于存储地理数据库的 DBMS 而定,可能需要修改 TERRAIN_DEFAULTS::EMBEDDED 关键字的存储参数,以在不同位置或不同大小的范围内存储这些表。
自定义配置关键字
您可以在下列情况中添加自定义关键字:
- 使用不同的空间类型或在不同于 DEFAULTS 关键字指定的位置中存储数据子集
- 将系统设置为在非默认位置存储存档历史表
- 要根据触发日志文件表创建的用户在数据库的不同区域中创建日志文件表
- 要迁移至不同的数据类型
- 要为网络、terrain 或拓扑指定与默认设置不同的存储位置
可按照以下步骤向企业级地理数据库添加自定义配置关键字:
- 以地理数据库管理员身份连接到地理数据库。
- 运行导出地理数据库配置关键字工具将现有配置关键字值导出到文本文件。
- 添加所需配置关键字、参数和值。
添加自定义关键字时,应注意以下事项:
- 必须使关键字带有两个井号 (##) 前缀。
- 配置关键字名称的最大长度限制为 32 个字符。如果要创建存档关键字, _ARCHIVE 必须作为此关键字名称的一部分并计入上述 32 个字符长度内。
- 必须使用 END 关闭参数组。
- 要允许用户根据 ArcGIS 指定关键字,则应向关键字参数列表中添加适当的 UI 存储参数。仅可在同一自定义配置关键字组中使用下面的一个参数:
- UI_TEXT:常规用户界面存储参数;与希望用户使用的任何关键字配合使用(日志文件、存档、网络、拓扑或 terrain 复合关键字除外)
- UI_NETWORK_TEXT:父网络关键字的用户界面存储参数
- UI_TOPOLOGY_TEXT:父拓扑关键字的用户界面存储参数
- UI_TERRAIN_TEXT:父 terrain 关键字的用户界面存储参数
- 保存您在文本文件中所作的更改。
- 运行导入地理数据库配置关键字工具以从文本文件中导入值。
用于存档的配置关键字
可以为历史表指定配置关键字。这通过在关键字的末尾追加 _ARCHIVE 来完成,例如,DEFAULTS_ARCHIVE。对于创建的每个存档关键字,可根据需要更改参数。
存档关键字经常用来将历史表和这些表中的索引存储在与其余数据不同的位置中。存储在 Oracle、Db2 或 PostgreSQL 中的地理数据库可让您以不同的表空间存储表;因此,您最有可能在这些地理数据库中使用存档关键字。
创建历史表时,ArcGIS 会记录要存档的数据集的配置关键字,然后搜索相应的存档关键字。创建历史表时将使用为 <关键字>_ARCHIVE 指定的参数。因此,如果使用 DEFAULTS 关键字来创建用于存档的数据集,ArcGIS 将搜索 DEFAULTS_ARCHIVE 以获得用于创建该数据集的历史表的存储信息。
对于任意给定的关键字,如果未找到对应的存档关键字,ArcGIS 将使用与原始数据集相同的关键字。在上述示例中,将使用 DEFAULTS 关键字,即意味着历史表和索引将存储在与用于存档的要素类相同的逻辑存储空间中。
如果存在 <关键字>_ARCHIVE 但缺少指定参数,则会使用 DEFAULTS 关键字中的参数值。有关存档的详细信息,请参阅地理数据库存档。