这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

配置参数

Vertica 支持一系列影响数据库多个方面行为的配置参数。通过在一个或多个级别使用适当的 ALTER 语句,可以设置这些参数。以下按优先级降序对其进行排列:

  1. 用户 (ALTER USER)

  2. 会话 (ALTER SESSION)

  3. 节点 (ALTER NODE)

  4. 数据库 (ALTER DATABASE)

您可以查询系统表 CONFIGURATION_PARAMETERS,获取所有用户可访问参数的当前设置。例如,以下查询获取分区参数的设置:它们的当前值和默认值、可以设置的级别,以及更改后是否需要重新启动数据库才能生效:

=> SELECT parameter_name, current_value, default_value, allowed_levels, change_requires_restart FROM configuration_parameters
     WHERE parameter_name ILIKE '%partition%';
           parameter_name           | current_value | default_value | allowed_levels | change_requires_restart
------------------------------------+---------------+---------------+----------------+-------------------------
 MaxPartitionCount                  | 1024          | 1024          | NODE, DATABASE | f
 PartitionSortBufferSize            | 67108864      | 67108864      | DATABASE       | f
 DisableAutopartition               | 0             | 0             | SESSION, USER  | f
 PatternMatchingMaxPartitionMatches | 3932160       | 3932160       | NODE, DATABASE | f
 PatternMatchingMaxPartition        | 20971520      | 20971520      | NODE, DATABASE | f
 ActivePartitionCount               | 1             | 1             | NODE, DATABASE | f
(6 rows)

1 - 常规参数

以下参数配置基本数据库操作。 查询 CONFIGURATION_PARAMETERS 系统表以确定哪些级别(节点、会话、用户、数据库)对给定参数有效。

ApplyEventsDuringSALCheck
布尔值,指定 Vertica 是否使用编录事件在节点启动期间筛选掉已删除的损坏分区。删除损坏的分区可以加速节点恢复。

禁用 (0) 时,Vertica 会报告损坏的分区,但不采取任何措施。保留损坏的分区可以将当前投影检查点时期重置为损坏发生之前的时期。

此参数对未分区表没有影响。

默认值: 0

ApportionedFileMinimumPortionSizeKB
指定用于分摊文件负载的最小分区大小(以 KB 为单位)。只有在以下情况下,Vertica 才会跨多个节点分摊文件负载:
  • 负载可以拆分成至少等于此值的分区。

  • EnableApportionedFileLoad 和 EnableApportionLoad 设置为 1(启用)。

另请参阅 EnableApportionLoad 和 EnableApportionedFileLoad。

默认值: 1024

BlockedSocketGracePeriod
设置会话套接字在等待给定查询的客户端输入或输出时保持拦截状态的时间。请参阅处理会话套接字阻止

默认值: None(套接字阻止可以无限期地继续。)

CatalogCheckpointPercent
指定为数据库编录创建检查点的阈值。

默认情况下,此参数设置为 50 (%),因此当事务日志达到上一个检查点大小的 50% 时,Vertica 会添加一个检查点。每个检查点都会界定自上一个检查点以来对编录进行的所有更改。

默认值: 50 (%)

ClusterSequenceCacheMode
布尔值,指定启动程序节点是否请求群集中其他节点的缓存,然后将缓存随执行计划一起发送至其他节点,为以下之一。
  • 1(启用):启动程序节点请求缓存。

  • 0:(禁用):所有节点都请求其自己的缓存。

请参阅分发命名序列

默认值: 1(启用)

CompressCatalogOnDisk
指定是否压缩磁盘上编录的大小,为以下之一:
  • 0:不压缩。

  • 1:压缩检查点,但不压缩日志。

  • 2:压缩检查点和日志。

如果编录磁盘分区较小 (<50 GB),而元数据较大(数百个表、分区或节点),则考虑启用此参数。

默认值: 0

CompressNetworkData
布尔值,指定在启用时(设置为 1)是否压缩通过内部网络发送的所有数据。这种压缩将加快网络流量,但会增加 CPU 负载。如果网络正在限制数据库性能,可通过启用压缩解决此问题。

默认值: 0

CopyFaultTolerantExpressions
布尔值,指示在转换期间是否报告记录拒绝,并在转换失败时继续 (true) 或中止 COPY 操作。

默认值: 0 (false)

CopyFromVerticaWithIdentity
允许 COPY FROM VERTICA导出到 VERTICA 将值加载到标识(或自动增量)列中。目标标识列不会自动递增。要禁用默认行为,请将此参数设置为 0(零)。

默认值: 1

DatabaseHeartbeatInterval
确定每个节点执行运行状况检查和传递检测信号的时间间隔(以秒为单位)。如果节点未在连续五个指定时间间隔内收到消息,该节点将被逐出群集。将时间间隔设置为 0 可禁用此功能。

请参阅自动逐出运行状况不佳的节点

默认值: 120

DefaultArrayBinarySize
如果在创建时未指定最大大小,则为无界集合的最大二进制大小(以字节为单位)。

默认值: 65000

DefaultTempTableLocal
布尔值,指定 CREATE TEMPORARY TABLE 是创建本地临时表还是全局临时表,为以下之一:
  • 0:创建全局临时表。

  • 1:创建本地临时表。

有关详细信息,请参阅创建临时表

默认值: 0

DivideZeroByZeroThrowsError
布尔值,指定在请求除数为零的运算时是否返回错误:
  • 0:返回 0。

  • 1:返回错误。

默认值: 1

EnableApportionedChunkingInDefaultLoadParser
布尔值,指定是否为已分隔文件启用内置解析器,以利用分摊负载和协作解析,从而获得更好的性能。

默认值: 1(启用)

EnableApportionedFileLoad
布尔值,指定是否使用 COPY FROM VERTICA 启用跨节点自动分摊文件负载。Vertica 在满足以下条件时尝试分摊负载:
  • 此参数和 EnableApportionLoad 均已启用。

  • 解析器支持分摊。

  • 负载可分为至少为 ApportionedFileMinimumPortionSizeKB 值的分区大小。

设置此参数并不能保证负载将被分摊,但禁用此参数可以保证不会被分摊。

请参阅分配加载

默认值: 1(启用)

EnableApportionLoad
布尔值,指定是否使用 COPY...WITH SOURCE 启用跨节点自动分摊数据负载。Vertica 在满足以下条件时尝试分摊负载:
  • 此参数已启用。

  • 源和解析器均支持分摊。

设置此参数并不能保证负载将被分摊,但禁用此参数可以保证不会被分摊。

有关详细信息,请参阅分配加载

默认值: 1(启用)

EnableBetterFlexTypeGuessing
布尔值,指定在使用 COMPUTE_FLEXTABLE_KEYSCOMPUTE_FLEXTABLE_KEYS_AND_BUILD_VIEW 将数据类型分配给 Flex 表 __raw__ 列中的非字符串键时,是否启用更准确的类型猜测。如果禁用此参数 (0),Vertica 将使用一组有限的 Vertica 数据类型分配。例如,请参阅计算 Flex 表键

默认值: 1(启用)

EnableCooperativeParse
布尔值,指定是否对节点实施多线程解析功能。此参数可用于分隔的负载和固定宽度的负载。

默认值: 1(启用)

EnableForceOuter
布尔值,指定 Vertica 是否使用表的 force_outer 值来实施联接。有关详细信息,请参阅控制联接输入

默认值: 0(禁用强制联接输入)

EnableMetadataMemoryTracking
布尔值,指定是否允许 Vertica 跟踪 METADATA 资源池中数据库元数据使用的内存。

默认值: 1(启用)

EnableResourcePoolCPUAffinity
布尔值,指定 Vertica 是否根据处理 CPU 的资源池调整查询。禁用时 (0),查询将在任意 CPU 上运行,无论资源池的 CPU_AFFINITY_SET 为何。

默认值: 1

EnableStrictTimeCasts
指定是否所有转换失败都会导致错误。

默认值: 0(禁用)

EnableUniquenessOptimization
布尔值,指定是否启用可保证列值唯一性的查询优化。可保证具有唯一值的列包括:

默认值: 1(启用)

EnableWithClauseMaterialization
WithClauseMaterialization 取代。
ExternalTablesExceptionsLimit
确定当 SELECT 语句引用外部表时所允许的最大 COPY 异常和拒绝数。设置为 -1 可删除任何异常限制。请参阅查询外部表

默认值: 100

FailoverToStandbyAfter
指定活动备用节点等待多长时间后替换故障节点。

此参数设置为字面量类时间间隔

默认值:

FencedUDxMemoryLimitMB
设置隔离模式 UDF 可以使用的最大内存量(以兆字节 (MB) 为单位)。如果 UDF 尝试分配的内存超过此限制,则该尝试会触发一个异常。有关详细信息,请参阅隔离和非隔离模式

默认值: -1(无限制)

FlexTableDataTypeGuessMultiplier
指定为 flex 键表分配数据类型和列宽时 COMPUTE_FLEXTABLE_KEYSCOMPUTE_FLEXTABLE_KEYS_AND_BUILD_VIEW 函数使用的系数。这两个函数都会为每个键分配一种数据类型,并用最长键值乘以此因子来估算列宽。此值不可用于在 flex 表中计算任何实际列的宽度。

默认值: 2.0

FlexTableRawSize
指定新 flex 表中 __raw__ 列的默认列宽,该值介于 1 和 32000000(包含)之间。

默认值: 130000

ForceUDxFencedMode
启用 (1) 时,将强制所有支持隔离模式的 UDx 在隔离模式下运行,即使其定义指定了 NOT FENCED 也如此。

默认值: 0

JavaBinaryForUDx
设置 Vertica 用于运行 Java UDx 的 Java 可执行文件的完整路径。请参阅在 Vertica 主机上安装 Java
JoinDefaultTupleFormat
指定在联接这些列上的表时如何调整 VARCHAR 列数据的大小,并相应地进行缓冲,为以下之一:
  • fixed:使用联接列元数据将列数据的大小调整为固定长度,并相应地进行缓冲。

  • variable:使用联接列数据的实际长度,因此每个联接的缓冲区大小不同。

默认值: fixed

KeepAliveIdleTime
发送第一个 TCP keepalive 探测器以确保客户端仍然连接之前的时间(以秒为单位)。

默认值: 7200

KeepAliveProbeCount
在客户端连接被认为丢失和关闭之前,客户端必须取消确认的 keepalive 探测器的连续数。

默认值: 9

KeepAliveProbeInterval
keepalive 探测器之间的时间间隔(以秒为单位)。

默认值: 75

LockTimeout
指定表可以锁定多长时间(以秒为单位)。您可以在所有级别设置此参数:会话、节点和数据库。

默认值: 300

LoadSourceStatisticsLimit
指定在 LOAD_SOURCES 系统表中分析的每个加载操作的最大源数。将其设置为 0 可禁用分析。

默认值: 256

MaxBundleableROSSizeKB
指定独立 ROS 文件的最小大小(以 KB 为单位)。Vertica 可将低于此大小的存储容器 ROS 文件捆绑成一个文件。捆绑可以提高任何文件密集型操作的性能,包括备份、还原和合并。

如果将此参数的值设为 0,Vertica 会捆绑 .fdb 和 .pidx 文件,而不会捆绑其他存储容器文件。

默认值: 1024

MaxClientSessions
确定可在数据库的单个节点上运行的最大客户端会话数。默认值额外允许五次管理登录。这些登录可防止在非 dbadmin 用户达到登录限制时 DBA 遭到系统阻拦。

默认值: 50 次用户登录和额外的 5 次管理登录

ParquetMetadataCacheSizeMB
读取 Parquet 数据时用于元数据的缓存大小。缓存使用本地 TEMP 存储。

默认值: 4096

PatternMatchingUseJit
布尔值,指定是否可以即时编译查询中使用的正则表达式模式匹配函数(编译成机器代码)。通常,启用此参数可以提高大型表的模式匹配性能。Perl 兼容正则表达式 (PCRE) 模式匹配库可评估正则表达式。重新启动数据库,使此参数生效。

另请参阅 正则表达式函数

默认值: 1(启用)

PatternMatchStackAllocator
布尔值,指定是否覆盖模式匹配库的堆栈内存分配器。Perl 兼容正则表达式 (PCRE) 模式匹配库可评估正则表达式。重新启动数据库,使此参数生效。

另请参阅 正则表达式函数

默认值: 1(启用覆盖)

TerraceRoutingFactor
指定在实施基于机架的容错组的任何企业模式大型群集上启用还是禁用 terrace 路由。
  • 要启用,请进行如下设置:
    其中: * numRackNodes:机架中的节点数 * numRacks:群集中的机架数
  • 要禁用,请设置为一个大到无法为最大群集启用 terrace 路由的值,例如 1000。

有关详细信息,请参阅Terrace 路由

默认值: 2

TransactionIsolationLevel
更改数据库的隔离级别。修改后,Vertica 将对每个新会话使用新的事务级别。现有会话及其事务会继续使用原始隔离级别。

另请参阅 更改事务隔离级别

默认值: READ COMMITTED

TransactionMode
指定事务处于读/写模式还是处于只读模式。默认值为读/写模式。现有会话及其事务会继续使用原始隔离级别。

默认值: READ WRITE

UDxFencedBlockTimeout
指定中止在 隔离和非隔离模式 中运行的 UDx 之前等待输出的秒数。如果服务器因此中止 UDx,它会产生类似于以下的错误消息:“ERROR 3399: Failure in UDx RPC call: timed out in receiving a UDx message”。如果经常看到此错误,可以提高此限制值。以隔离模式运行的 UDx 不在服务器进程中运行,因此提高此值不会影响服务器性能。

默认值: 60

UseLocalTzForParquetTimestampConversion
布尔值,指定读取 Parquet 文件时是否进行时区转换。Hive 版本 1.2.1 引入了一个选项,用于在写入 Parquet 文件时本地化时区。以前,它以 UTC 写入它们,而 Vertica 在读取文件时会调整值。

如果 Hive 已经调整了时区,则设置为 0。

默认值: 1(启用转换)

UseServerIdentityOverUserIdentity
布尔值,指定是否忽略用户为非 Linux 文件系统提供的凭据,并始终使用 USER 存储位置来管理对数据的访问。请参阅创建供 USER 访问的存储位置

默认值: 0(禁用)

WithClauseMaterialization
布尔值,指定是否启用 WITH 子句实体化结果。启用实体化 (1) 时,Vertica 会对每个 WITH 子句进行一次评估并将结果存储在临时表中。

对于具有复杂类型的 WITH 查询,临时关系被禁用。

默认值: 0(禁用)

WithClauseRecursionLimit
指定 WITH RECURSIVE 子句在退出之前迭代其自己的结果集内容的最大次数。有关详细信息,请参阅WITH 子句递归

默认值: 8

2 - Azure 参数

使用以下参数配置从 Azure Blob 存储读取。有关从 Azure 读取数据的详细信息,请参阅 Azure Blob 存储对象存储

查询 CONFIGURATION_PARAMETERS 系统表以确定哪些级别(节点、会话、用户、数据库)对给定参数有效。
AzureStorageCredentials
JSON 对象的集合,其中每个对象指定一个端点的连接凭据。此参数优先于 Azure 托管标识。

该集合必须至少包含一个对象,并且可能会包含多个对象。每个对象必须至少指定 accountNameblobEndpoint 之一,并且至少指定 accountKeysharedAccessSignature 之一。

  • accountName:如果未指定,则使用 blobEndpoint 标签。
  • blobEndpoint:带有可选端口的主机名 (host:port)。如果未指定,则使用 account.blob.core.windows.net
  • accountKey:帐户或端点的访问密钥。
  • sharedAccessSignature:用于更精细访问控制的访问令牌(如果 Azure 端点正在使用)。
AzureStorageEndpointConfig
JSON 对象的集合,其中每个对象指定一个端点的配置元素。每个对象必须至少指定 accountNameblobEndpoint 之一。
  • accountName:如果未指定,则使用 blobEndpoint 标签。
  • blobEndpoint:带有可选端口的主机名 (host:port)。如果未指定,则使用 account.blob.core.windows.net
  • protocol:HTTPS(默认)或 HTTP。
  • isMultiAccountEndpoint:如果端点支持多个帐户,则为 true,否则为 false(默认为 false)。要使用多帐户访问权限,则必须在 URI 中包含帐户名称。如果 URI 路径包含帐户,则系统将假定此值为 true,但显式设置为 false 则除外。

3 - 约束参数

以下配置参数控制 Vertica 评估和强制实施约束的方式。所有参数均通过 ALTER DATABASE 在数据库级别设置。

其中三个参数 — EnableNewCheckConstraintsByDefault, EnableNewPrimaryKeysByDefault 和 EnableNewUniqueKeysByDefault — 可分别用于强制执行 CHECK、PRIMARY KEY 和 UNIQUE 约束。有关详细信息,请参阅约束强制执行

EnableNewCheckConstraintsByDefault
布尔参数,设置为 0 或 1:
  • 0:禁用新 CHECK 约束的强制执行,除非表 DDL 显式启用它们。

  • 1(默认):强制执行新的 CHECK 约束,除非表 DDL 显式禁用它们。

EnableNewPrimaryKeysByDefault
布尔参数,设置为 0 或 1:
  • 0(默认):禁用新 PRIMARY KEY 约束的强制执行,除非表 DDL 显式启用它们。

  • 1:强制执行新的 PRIMARY KEY 约束,除非表 DDL 显式禁用它们。

EnableNewUniqueKeysByDefault
布尔参数,设置为 0 或 1:
  • 0(默认):禁用新 UNIQUE 约束的强制执行,除非表 DDL 显式启用它们。

  • 1:强制执行新的 UNIQUE 约束,除非表 DDL 显式禁用它们。

MaxConstraintChecksPerQuery
设置 ANALYZE_CONSTRAINTS 可以通过单个查询处理的最大约束数:
  • -1(默认):没有设置最大值,ANALYZE_CONSTRAINTS 使用单个查询来评估指定范围内的所有约束。

  • 大于 0 的整数:每个查询的最大约束数量。如果要评估的约束数量超过此值,ANALYZE_CONSTRAINTS 会使用多个查询对其进行处理。

有关详细信息,请参阅分布约束分析

4 - Database Designer 参数

下表介绍用于配置 Vertica Database Designer 的参数。

DBDCorrelationSampleRowCount
Database Designer 发现和记录相关列的最少表行数。

默认值: 4000

DBDLogInternalDesignProcess
启用或禁用 Database Designer 日志记录。

默认值: 0 (False)

DBDUseOnlyDesignerResourcePool
允许 Vertica Database Designer 使用 DBD 池。

当设置为 false 时,设计处理操作通常会限制在该用户的资源池内,但不太密集的任务可能会使用系统资源

默认值: 0 (False)

5 - Eon 模式参数

以下参数配置数据库在 Eon 模式下运行时的操作方式。 查询 CONFIGURATION_PARAMETERS 系统表以确定哪些级别(节点、会话、用户、数据库)对给定参数有效。

BackgroundDepotWarming
指定后台存储库预热行为:
  • 1:存储库在预热时加载对象,在节点变为活动状态并开始执行查询后继续在后台执行此操作。

  • 0:节点激活被延迟,直到存储库获取并加载所有排队的对象

有关详细信息,请参阅存储库预热

默认值: 1

CatalogSyncInterval
指定事务日志同步服务将元数据同步到公共存储的频率(以分钟为单位)。如果您更改此设置,Vertica 将重启间隔计数。

默认值: 5

DelayForDeletes
指定从公共存储中删除文件之前要等待的时间(以小时为单位)。Vertica 首先从存储库中删除一个文件。在指定的时间间隔之后,删除也会发生在公共存储中。

默认值: 0.分片订购者不使用该文件时,立即从公共存储中将其删除。

DepotOperationsForQuery
指定当存储库不包含查询的文件数据时的行为,为以下之一:
  • ALL (默认值):从公共存储中提取文件数据,如有必要,通过将现有文件从存储库中逐出来替换它们。

  • FETCHES:仅当空间可用时才从公共存储中提取文件数据;否则,直接从公共存储中读取查询的数据。

  • NONE:请勿将文件数据提取到存储库,而应直接从公共存储中读取查询的数据。

您还可以使用提示 DEPOT_FETCH 指定查询级别的行为。

ECSMode
字符串参数,用于设置 Vertica 在启用 ECS 的查询期间在订阅节点之间划分分片中的数据时使用的策略,为以下之一:
  • AUTO:优化器自动确定要使用的策略。

  • COMPUTE_OPTIMIZED:强制使用计算优化策略。

  • IO_OPTIMIZED:强制使用 I/O 优化策略。

有关详细信息,请参阅手动选择 ECS 策略

默认值: AUTO

ElasticKSafety
控制 Vertica 是否因 主节点丢失而调整分片订购的布尔参数:
  • 1:当主节点丢失时,Vertica 会将其他主节点订购到已关闭节点的分片订购。此操作有助于减少因分片覆盖率丢失而导致数据库进入只读模式的可能性。
  • 0:Vertica 不会因主节点丢失而更改分片订购。

默认值: 1

有关详细信息,请参阅维护分片覆盖率

EnableDepotWarmingFromPeers
布尔参数,指定 Vertica 是否在节点启动且未准备好处理查询时预热节点存储库:
  • 1:在节点开始运行时预热存储库。

  • 0:仅在节点正常运行后预热存储库。

有关详细信息,请参阅存储库预热

默认值: 0

FileDeletionServiceInterval
指定每次执行 reaper 清理服务任务之间的时间间隔(以秒为单位)。

默认值: 60 秒

MaxDepotSizePercent
一个整数值,指定存储库的最大大小(磁盘大小的百分比),

默认值: 80

PreFetchPinnedObjectsToDepotAtStartup
如果启用(设置为 1),则预热存储库获取固定在其子群集上的对象。有关详细信息,请参阅存储库预热

默认值: 0

ReaperCleanUpTimeoutAtShutdown
指定 Vertica 在关闭前等待 reaper 从公共存储中删除文件的时间(以秒为单位)。如果设置为负值,Vertica 会关闭而不等待 reaper。

默认值: 300

StorageMergeMaxTempCacheMB
每个查询分配给 StorageMerge 运算符以供缓存 S3 存储容器的数据的临时空间大小。

有关详细信息,请参阅存储容器的本地缓存

UseCommunalStorageForBatchDepotWarming
布尔参数,指定节点在预热其存储库时在何处检索数据:
  • 1:从公共存储中检索数据。

  • 0:从对等点检索数据。

默认值: 1

UseDepotForReads
布尔参数,指定 Vertica 是通过访问存储库以回答查询,还是仅访问公共存储:
  • 1:Vertica 首先在存储库中搜索查询的数据;如果不存在,Vertica 将在运行此查询和将来的查询时从公共存储中获取数据。

  • 0:Vertica 绕过存储库并始终从公共存储中获取查询的数据。

默认值: 1

UseDepotForWrites
布尔参数,指定 Vertica 是否将加载的数据写入存储库,然后将文件上传到公共存储:
  • 1:将加载的数据写入存储库,将文件上传到公共存储。

  • 0:绕过存储库并始终直接写入公共存储。

默认值: 1

UsePeerToPeerDataTransfer
布尔参数,指定 Vertica 是否将加载的数据推送给其他分片订购者:
  • 1:将加载的数据发送给所有分片订购者。

  • 0:不将数据推送到其他分片订购者。

默认值: 0

6 - 时期管理参数

下表介绍用于配置 Vertica 的时期管理参数。

查询 CONFIGURATION_PARAMETERS 系统表以确定哪些级别(节点、会话、用户、数据库)对给定参数有效。
AdvanceAHMInterval
确定 Vertica 检查历史保留状态的频率(以秒为单位)。

不能将 AdvanceAHMInterval 设置为小于 EpochMapInterval 的值。

默认值: 180(秒)

AHMBackupManagement
阻止 Ancient History Mark (AHM) 提前。启用此参数时,AHM 时期不能晚于最近一次完整备份的时期。如果您提前 AHM 来清除和删除数据,请不要启用此参数。

默认值: 0

EpochMapInterval
确定时期之间的映射粒度以及可用于 历史查询的时间。当发出历史查询 AT TIME T 请求时,Vertica 会将其映射到位于 EpochMapInterval 秒粒度内的某个时期。类似地,它会影响故障恢复期间针对 上一个完好的时期报告的时间。请注意,它不会影响时期本身的内部精度。

默认值: 180(秒)

HistoryRetentionTime
确定已删除数据作为历史参考保存的时间长度(以秒为单位)。在删除后的指定时间过去后,您可以清除数据。如果您喜欢使用 HistoryRetentionEpochs 确定可以清除的已删除数据,请使用 -1 设置。

默认值: 0(当节点关闭时保存的数据。)

HistoryRetentionEpochs
指定要保存的历史 时期数以及已删除的数据量。

除非您有理由限制时期数,否则 Vertica 建议您指定保存已删除数据的时间长度。

如果同时指定两个 History 参数,则 HistoryRetentionTime 的优先级更高。将两个参数设置为 -1 可保留所有历史数据。

请参阅设置清除策略

默认值: -1(禁用)

7 - Google Cloud Storage 参数

使用以下参数配置使用 COPY FROM 从 Google Cloud Storage (GCS) 读取。有关从 S3 读取数据的更多信息,请参阅指定加载数据的位置

查询 CONFIGURATION_PARAMETERS 系统表以确定哪些级别(节点、会话、用户、数据库)对给定参数有效。
GCSAuth
用于向 GCS 进行身份验证的 ID 和密钥。您可以使用 ALTER DATABASE...SET PARAMETERALTER SESSION...SET PARAMETER 分别设置全局参数和当前会话的参数。为了获得更高的安全性,不要将凭据存储在数据库中;而是通过 ALTER SESSION 为当前会话设置凭据。例如:
=> ALTER SESSION SET GCSAuth='ID:secret';

如果您使用共享凭据,请通过 ALTER DATABASE 在数据库中设置。

GCSEnableHttps
指定连接 GCS 时是否使用 HTTPS 协议,只能在数据库级别用 ALTER DATABASE...SET PARAMETER 设置。

默认值: 1(启用)

GCSEndpoint
连接端点地址。

默认值: storage.googleapis.com

8 - Hadoop 参数

下表介绍用于配置与 Apache Hadoop 集成的常规参数。有关详细信息,请参阅Apache Hadoop 集成

查询 CONFIGURATION_PARAMETERS 系统表以确定哪些级别(节点、会话、用户、数据库)对给定参数有效。
EnableHDFSBlockInfoCache
布尔值,是否将规划期间在启动程序上收集的块位置元数据分发到所有数据库节点以供执行。分发此元数据会减少名称节点访问,从而减少负载,但在名称节点不争用的部署中,可能会在一定程度上降低数据库性能。这种性能影响是因为必须序列化和分发此数据。如果保护名称节点比查询性能更重要,则启用分发;这通常适用于名称节点争用已造成影响的大型 HDFS 群集。

默认值: 0(禁用)

HadoopConfDir
包含从 Hadoop 复制的 XML 配置文件的目录路径。相同的路径必须在每个 Vertica 节点上都有效。您可以使用 VERIFY_HADOOP_CONF_DIR 元函数来测试该值是否设置正确。要从 HDFS 读取数据,需要设置此参数。

对于所有 Vertica 用户,文件由运行 Vertica 服务器进程的 Linux 用户访问。

设置此参数时,会刷新先前缓存的配置信息。

您可以在会话级别设置此参数。这样做会覆盖数据库值;数据库值不附加到它。例如:

  
=> ALTER SESSION SET HadoopConfDir='/test/conf:/hadoop/hcat/conf';

要附加,请获取当前值并将其包含在附加后的新路径中。在会话级别设置此参数不会更改文件的访问方式。

默认值: 从环境中获取(如果可能)

HadoopFSAuthentication
如何(或是否)将 Kerberos 身份验证与 HDFS 一起使用。默认情况下,如果设置了 KerberosKeytabFile,Vertica 会将该凭据用于 Vertica 和 HDFS。通常这是期望的行为。但是,如果您将 Kerberized Vertica 群集与非 Kerberized HDFS 群集一起使用,请将此参数设置为“none”以指示 Vertica 不应使用 Vertica Kerberos 凭据访问 HDFS。

默认值: 如果设置了 KerberosKeytabFile,则为“keytab”,否则为“none”

HadoopFSBlockSizeBytes
写入 HDFS 的块大小。较大的文件被拆分成这种大小的块。

默认值: 64MB

HadoopFSNNOperationRetryTimeout
元数据操作(例如列表目录)在失败前等待响应的秒数。接受毫秒精度的浮点值。

默认值: 6 秒

HadoopFSReadRetryTimeout
读取操作在失败前等待的秒数。接受毫秒精度的浮点值。如果确信您的文件系统失败速度更快,降低此值可提高性能。

默认值: 180 秒

HadoopFSReplication
HDFS 创建的副本数。这与 Vertica 为提供 K-safety 而进行的复制无关。除非 Vertica 支持人员另有指示,否则请勿更改此设置。

默认值: 3

HadoopFSRetryWaitInterval
在重试读取、写入和元数据操作之前等待的初始秒数。接受毫秒精度的浮点值。重试间隔随着每次重试呈指数增长。

默认值: 3 秒

HadoopFSTokenRefreshFrequency
刷新用于保存 Kerberos 票证的 Hadoop 令牌的频率(以秒为单位)(请参阅令牌过期)。

默认值: 0(令牌过期时刷新)

HadoopFSWriteRetryTimeout
写入操作在失败前等待的秒数。接受毫秒精度的浮点值。如果确信您的文件系统失败速度更快,降低此值可提高性能。

默认值: 180 秒

HadoopImpersonationConfig
会话参数,用于指定 HDFS 访问的委派令牌或 Hadoop 用户。请参阅 HadoopImpersonationConfig 格式了解有关此参数值的信息,请参阅代理用户和委托令牌了解有关更一般的上下文。
HDFSUseWebHDFS
布尔值,hdfs 方案中的 URL 是否使用 WebHDFS 而不是 LibHDFS++ 来访问数据。

默认值: 1(启用)

WebhdfsClientCertConf
用于访问一个或多个 WebHDFS 服务器的 mTLS 配置。该值是一个 JSON 字符串;每个成员具有以下属性:
  • nameservice:WebHDFS 名称服务

  • authorityhost:port

  • certName:由..定义的证书名称 CREATE CERTIFICATE

nameserviceauthority 互斥。

例如:

=> ALTER SESSION SET WebhdfsClientCertConf =
    '[{"authority" : "my.authority.com:50070", "certName" : "myCert"},
      {"nameservice" : "prod", "certName" : "prodCert"}]';

HCatalog 连接器参数

下表介绍用于配置 HCatalog 连接器的参数。有关详细信息,请参阅使用 HCatalog 连接器

EnableHCatImpersonation
布尔值,HCatalog 连接器在访问 Hive 时是否使用(模拟)当前 Vertica 用户。如果启用了模拟,HCatalog 连接器将使用已登录 Vertica 用户的 Kerberos 凭据来访问 Hive 数据。如果您使用授权服务来管理访问权限而不授予用户对基础文件的访问权限,请禁用模拟。有关详细信息,请参阅配置安全性

默认值: 1(启用)

HCatalogConnectorUseHiveServer2
布尔值,Vertica 内部是否使用 HiveServer2 而不是 WebHCat 从 Hive 获取元数据。

默认值: 1(启用)

HCatalogConnectorUseLibHDFSPP
布尔值,HCatalog 连接器是否应将 hdfs 方案而不是 webhdfs 与 HCatalog 连接器配合使用。

默认值: 1(启用)

HCatConnectionTimeout
HCatalog 连接器在返回超时错误之前成功连接到 HiveServer2(或 WebHCat)服务器所等待的秒数。

默认值: 0(无限期等待)

HCatSlowTransferLimit
HCatalog 连接器从 HiveServer2(或 WebHCat)服务器检索数据时所允许的最低传输速度(以每秒字节数为单位)。在某些情况下,从服务器到 Vertica 的数据传输率低于此阈值。这种情况下,经过 HCatSlowTransferTime 参数中的指定秒数之后,HCatalog 连接器会取消查询并关闭连接。

默认值: 65536

HCatSlowTransferTime
HCatalog 连接器在测试服务器的数据传输是否过慢之前所等待的秒数。请参阅 HCatSlowTransferLimit 参数。

默认值: 60

9 - 国际化参数

下表介绍用于配置 Vertica 的国际化参数。

查询 CONFIGURATION_PARAMETERS 系统表以确定哪些级别(节点、会话、用户、数据库)对给定参数有效。
DefaultIntervalStyle
设置要使用的默认间隔样式。如果设置为 0(默认值),则输出时间隔采用 PLAIN 样式(SQL 标准)并且没有间隔单位。如果设置为 1,则输出时间隔采用 UNITS。重新启动数据库后,此参数才会生效。

默认值: 0

DefaultSessionLocale
设置数据库的默认会话启动区域设置。重新启动数据库后,此参数才会生效。

默认值: en_US@collation=binary

EscapeStringWarning
当字符串字面量中使用反斜线时发出警告。此参数可帮助找到被视为转义字符的反斜线,以便对其进行修复,使其遵循符合字符串语法的 SQL 标准。

默认值: 1

StandardConformingStrings
确定字符串字面量将反斜线 (\) 视为字符串字面量还是视为转义字符。当设置为 -1 时,将反斜线视为字符串字面量;当设置为 0 时,将反斜线视为转义字符。

默认值: -1

10 - Kafka 用户定义的会话参数

在不使用调度程序时,使用 ALTER SESSION SET UDPARAMETER 设置 Vertica 用户定义的会话参数以配置 Kafka SSL。以 kafka 为前缀的参数为 Kafka 配置 SSL 身份验证。有关详细信息,请参阅使用 Kafka 进行 TLS/SSL 加密

查询 CONFIGURATION_PARAMETERS 系统表以确定哪些级别(节点、会话、用户、数据库)对给定参数有效。
kafka_SSL_CA
证书颁发机构证书的内容。例如:
=> ALTER SESSION SET UDPARAMETER kafka_SSL_CA='MIIBOQIBAAJBAIOL';

默认值:

kafka_SSL_Certificate
SSL 证书的内容。例如:
=> ALTER SESSION SET UDPARAMETER kafka_SSL_Certificate='XrM07O4dV/nJ5g';

当 Kafka 服务器的参数 ssl.client.auth 设置为 nonerequested 时,此参数为可选。

默认值:

kafka_SSL_PrivateKey_secret
用于加密会话的私钥。Vertica 不会记录此信息。例如:
=> ALTER SESSION SET UDPARAMETER kafka_SSL_PrivateKey_secret='A60iThKtezaCk7F';

当 Kafka 服务器的参数 ssl.client.auth 设置为 nonerequested 时,此参数为可选。

默认值:

kafka_SSL_PrivateKeyPassword_secret
用于创建私钥的密码。Vertica 不会记录此信息。

例如:

ALTER SESSION SET UDPARAMETER kafka_SSL_PrivateKeyPassword_secret='secret';

当 Kafka 服务器的参数 ssl.client.auth 设置为 nonerequested 时,此参数为可选。

默认值:

kafka_Enable_SSL
为 Vertica-Kafka 集成启用 SSL 身份验证。例如:
=> ALTER SESSION SET UDPARAMETER kafka_Enable_SSL=1;
  

默认值: 0

MaxSessionUDParameterSize
在用户定义的会话参数中设置某个值的最大长度。例如:
=> ALTER SESSION SET MaxSessionUDParameterSize = 2000
  

默认值: 1000

相关主题

用户定义的会话参数

11 - Kerberos 参数

以下参数用于配置 Kerberos 身份验证的 Vertica 主体并指定 Kerberos keytab 文件的位置。

查询 CONFIGURATION_PARAMETERS 系统表以确定哪些级别(节点、会话、用户、数据库)对给定参数有效。
KerberosServiceName
提供 Vertica Kerberos 主体的服务名称部分。默认情况下,此参数为 vertica。例如:
vertica/host@EXAMPLE.COM

默认值: vertica

KerberosHostname
提供 Vertica Kerberos 主体的实例或主机名部分。例如:
vertica/host@EXAMPLE.COM

如果您忽略可选的 KerberosHostname 参数,则 Vertica 使用 gethostname() 函数的返回值。假设每个群集节点都具有不同的主机名,那么这些节点每个都将具有不同的主体,您必须在节点的 keytab 文件中对主体进行管理。

KerberosRealm
提供 Vertica Kerberos 主体的领域部分。领域为身份验证管理域,通常以大写字母组成。例如:
vertica/hostEXAMPLE.COM
KerberosKeytabFile
提供包含 Vertica Kerberos 主体凭据的 keytab 文件的位置。默认情况下,该文件位于 /etc 中。例如:
KerberosKeytabFile=/etc/krb5.keytab
KerberosTicketDuration
确定通过执行 kinit 检索到的票证的生命周期。默认值为 0(零),表示禁用此参数。

如果您忽略设置此参数,则生命周期由默认的 Kerberos 配置确定。

12 - 机器学习参数

您可以使用机器学习参数来配置 Vertica 中机器学习功能的各个方面。

MaxModelSizeKB
设置可以导入的模型的最大大小。metadata.json 文件中指定的文件大小的总和决定了模型大小。此参数的单位是 KB。原生 Vertica 模型 (category=VERTICA_MODELS) 不受此限制。如果您可以从 Vertica 导出模型,并且模型在 Vertica 之外没有更改,则可以再次将其导入 Vertica。

MaxModelSizeKB 参数只能由超级用户设置,并且只能在数据库级别设置。它仅对超级用户可见。其默认值为 4GB,有效范围为 1KB 到 64GB(包含)。

示例:

将此参数设置为 3KB:

=> ALTER DATABASE DEFAULT SET MaxModelSizeKB = 3;

将此参数设置为 64GB(允许的最大值):

=> ALTER DATABASE DEFAULT SET MaxModelSizeKB = 67108864;

将此参数重置为默认值:

=> ALTER DATABASE DEFAULT CLEAR MaxModelSizeKB;

默认值: 4GB

13 - 内存管理参数

下表介绍用于管理 Vertica 内存利用率的参数。

查询 CONFIGURATION_PARAMETERS 系统表以确定哪些级别(节点、会话、用户、数据库)对给定参数有效。
MemoryPollerIntervalSec
指定 Vertica 内存轮询器检查 Vertica 内存利用率是否低于几个配置参数的阈值的频率(以秒为单位,见下文):
  • MemoryPollerMallocBloatThreshold

  • MemoryPollerReportThreshold

  • MemoryPollerTrimThreshold

默认值: 2

MemoryPollerMallocBloatThreshold
glibc 内存膨胀的阈值。

内存轮询器将调用 glibc 函数 malloc_info(),以获取 malloc 中的空闲内存量。然后它将 MemoryPollerMallocBloatThreshold(默认设置为 0.3)与以下表达式进行比较:

free‑memory‑in‑malloc / RSS

如果此表达式的计算结果大于 MemoryPollerMallocBloatThreshold,内存轮询器将调用 glibc 函数 malloc_trim()。此函数从 malloc 中回收空闲内存,并将其返回给操作系统。调用 malloc_trim() 的详细信息将写入系统表 MEMORY_EVENTS

要禁用此阈值的轮询,请将参数设置为 0。

默认值: 0.3

MemoryPollerReportThreshold
确定 Vertica 内存轮询器是否写入报告的内存利用率阈值。

内存轮询器将 MemoryPollerReportThreshold 与以下表达式进行比较:

RSS / available‑memory

当此表达式的计算结果大于 MemoryPollerReportThreshold(默认设置为 0.93)时,内存轮询器会将报告写入 Vertica 工作目录中的 MemoryReport.log。此报告包括有关 Vertica 内存池、单个查询和会话消耗的内存量等信息。内存轮询器还将报告作为事件记录在系统表 MEMORY_EVENTS 中,并设置 EVENT_TYPEMEMORY_REPORT

要禁用此阈值的轮询,请将参数设置为 0。

默认值: 0.93

MemoryPollerTrimThreshold
内存轮询器开始检查是否修剪 glibc 分配的内存的阈值。

内存轮询器将 MemoryPollerTrimThreshold(默认设置为 0.83)与以下表达式进行比较:

RSS / available‑memory

如果此表达式的计算结果大于 MemoryPollerTrimThreshold,则内存轮询器开始检查下一个阈值(在 MemoryPollerMallocBloatThreshold 中设置)是否存在 glibc 内存膨胀。

要禁用此阈值的轮询,请将参数设置为 0。这样做也会禁用 MemoryPollerMallocBloatThreshold 的轮询。

默认值: 0.83

14 - 监控参数

下表介绍控制用于监控 Vertica 数据库的控制选项的参数。

查询 CONFIGURATION_PARAMETERS 系统表以确定哪些级别(节点、会话、用户、数据库)对给定参数有效。
EnableDataCollector
启用和禁用数据收集器,数据收集器是工作负载分析器的内部诊断实用程序。影响所有节点上的所有会话。使用 0 关闭数据收集。

默认值: 1(启用)

SnmpTrapDestinationsList
定义 Vertica 在何处针对 SNMP 发送陷阱。请参阅为 SNMP 配置报告。例如:
=> ALTER DATABASE DEFAULT SET SnmpTrapDestinationsList = 'localhost 162 public';

默认值:

SnmpTrapsEnabled
为 SNMP 启用事件陷阱。请参阅为 SNMP 配置报告

默认值: 0

SnmpTrapEvents
定义 Vertica 通过 SNMP 捕获哪些事件。请参阅为 SNMP 配置报告。例如:
ALTER DATABASE DEFAULT SET SnmpTrapEvents = 'Low Disk Space, Recovery Failure';
  

默认值: Low Disk Space、Read Only File System、Loss of K Safety、Current Fault Tolerance at Critical Level、Too Many ROS Containers、Node State Change、Recovery Failure、Stale Checkpoint 和 CRC Mismatch。

SyslogEnabled
为系统日志启用事件陷阱。请参阅为 syslog 配置报告

默认值: 0

SyslogEvents
定义生成系统日志条目的事件。请参阅为 syslog 配置报告。例如:
ALTER DATABASE DEFAULT SET SyslogEvents = 'Low Disk Space, Recovery Failure';
  

默认值:

SyslogFacility
定义 Vertica 使用哪个 SyslogFacility。请参阅为 syslog 配置报告

默认值: user

15 - 数值精度参数

以下配置参数允许您配置数值数据类型的数值精度。有关使用这些参数的更多信息,请参阅SUM、SUM_FLOAT 和 AVG 的数字数据类型溢出

查询 CONFIGURATION_PARAMETERS 系统表以确定哪些级别(节点、会话、用户、数据库)对给定参数有效。
AllowNumericOverflow
布尔值,设置为以下值之一:
  • 1 (true):允许静默数字溢出。Vertica 不会隐式扩展数值数据类型的精度。Vertica 忽略 NumericSumExtraPrecisionDigits 的值。

  • 0 (false):如果结果超出 NumericSumExtraPrecisionDigits 设置的精度,Vertica 会产生溢出错误。

默认值: 1 (true)

NumericSumExtraPrecisionDigits
介于 0 和 20 之间的整数(包含)。如果结果超过指定的精度,Vertica 会产生溢出错误。此参数设置仅在 AllowNumericOverflow 设置为 0 (false) 时适用。

默认值: 6(超出 DDL 指定精度的位数)

16 - 分析参数

下表介绍用于配置 Vertica 的分析参数。有关分析查询的更多信息,请参阅对数据库性能执行分析

查询 CONFIGURATION_PARAMETERS 系统表以确定哪些级别(节点、会话、用户、数据库)对给定参数有效。
GlobalEEProfiling
针对在所有节点上的所有会话中运行的查询执行启用分析。

默认值: 0

GlobalQueryProfiling
针对所有节点上的所有会话启用查询分析。

默认值: 0

GlobalSessionProfiling
针对所有节点上的所有会话启用会话分析。

默认值: 0

SaveDCEEProfileThresholdUS
设置将分析信息保存到系统表 QUERY_CONSUMPTION执行_引擎_配置文件 的查询持续时间阈值(以微秒为单位)。您可以将此参数设置为最大值 2147483647(231-1,或 ~35.79 分钟)。

默认值: 60000000(60 秒)

17 - 投影参数

下列配置参数可帮助您管理投影。

查询 CONFIGURATION_PARAMETERS 系统表以确定哪些级别(节点、会话、用户、数据库)对给定参数有效。
AnalyzeRowCountInterval
指定 Vertica 多久检查一次投影行数量以及是否超出了 ARCCommitPercentage 设置的阈值。

有关详细信息,请参阅收集数据库统计信息

默认值: 86400 秒(24 小时)

ARCCommitPercentage
针对给定表设置上次记录的聚合投影行计数和当前行计数之间的差异设置阈值百分比。当差异超过此阈值时,Vertica 会使用当前行数更新编录。

默认值: 3 (%)

ContainersPerProjectionLimit
指定在发生 ROS 后推前 Vertica 为每个投影创建的 ROS 容器数。

默认值: 1024

MaxAutoSegColumns
指定在自动投影的哈希分段子句中使用的列数 (0–1024)。设置为 0 以使用所有列。

默认值: 8

MaxAutoSortColumns
指定在自动投影的排序表达式中使用的列数 (0–1024)。设置为 0 以使用所有列。

默认值: 8

RebalanceQueryStorageContainers
默认情况下,在执行重新平衡之前,Vertica 会执行系统表查询,以计算重新平衡任务中涉及的所有投影的大小。此查询使 Vertica 能够优化重新平衡,以最有效地利用可用磁盘空间。但是,此查询会大大增加执行重新平衡所需的时间。

禁用系统表查询可以减少执行重新平衡所需的时间。如果节点的磁盘空间不足,则禁用查询会增加节点磁盘空间不足的可能性。在这种情况下,重新平衡会失败。

默认值: 1(启用)

RewriteQueryForLargeDim
如果启用 (1),Vertica 会在 REFRESH_COLUMNS 操作期间通过反转目标表和源表之间的内部和外部联接来重写 SET USING 或 DEFAULT USING 查询。这样做可以在源数据所在的表大于目标表的情况下优化刷新性能。

默认值: 0

SegmentAutoProjection
确定在表定义忽略分段子句的情况下,是否对自动投影进行分段。此参数可在数据库和会话范围设置。

默认值: 1(创建分段自动投影)

18 - S3 参数

使用以下参数,配置使用 COPY 从 S3 文件系统和具有 S3 兼容 API 的本地存储进行读取。有关从 S3 读取数据的更多信息,请参阅 S3 对象存储

查询 CONFIGURATION_PARAMETERS 系统表以确定哪些级别(节点、会话、用户、数据库)对给定参数有效。
AWSAuth
用于身份验证的 ID 和密钥。为了获得更高的安全性,请不要将凭据存储在数据库中;应当使用 ALTER SESSION...SET PARAMETER 仅为当前会话设置此值。如果您使用共享凭据,您可以通过 ALTER DATABASE...SET PARAMETER 在数据库中设置。例如:
=> ALTER SESSION SET AWSAuth='ID:secret';

在 AWS 中,这些实参被命名为 AccessKeyID 和 SecretAccessKey。

要将管理工具 create_dbrevive_db 用于本地 Eon 模式,请使用以下设置创建一个名为 auth_params.conf 的配置文件:

AWSAuth = key:secret
  AWSEndpoint = IP:port
AWSCAFile
要使用的 TLS 服务器证书捆绑包的文件名。设置此参数会覆盖 SystemCABundlePath 参数中指定的 Vertica 默认 CA 捆绑包路径。 如果设置,此参数将覆盖 SystemCABundlePath 参数中指定的 Vertica 默认 CA 包路径。
=> ALTER DATABASE DEFAULT SET AWSCAFile = '/etc/ssl/ca-bundle.pem';

默认值: system-dependent

AWSCAPath
Vertica 用于查找 TLS 服务器证书的路径。要使用的 TLS 服务器证书捆绑包的文件名。 如果设置,此参数将覆盖 SystemCABundlePath 参数中指定的 Vertica 默认 CA 包路径。
=> ALTER DATABASE DEFAULT SET AWSCAPath = '/etc/ssl/';

默认值: system-dependent

AWSEnableHttps
布尔值,指定连接 S3 时是否使用 HTTPS 协议,只能在数据库级别用 ALTER DATABASE...SET PARAMETER 设置。如果选择不使用 TLS,则该参数必须设置为 0。

默认值: 1(启用)

AWSEndpoint
解释 S3 URL 时使用的端点,设置如下。
  • AWS:hostname_or_ip:port_number

  • 具有符合 FIPS 规范的 S3 端点的 AWS:S3_hostname 并启用虚拟寻址:

    AWSEndpoint = s3-fips.dualstack.us-east-1.amazonaws.com
    S3EnableVirtualAddressing = 1
    
  • 本地/Pure:Pure Storage 服务器的 IP 地址。如果使用管理工具 create_dbrevive_db,请创建配置文件 auth_params.conf 并包含以下设置:

    awsauth = key:secret
          awsendpoint = IP:port
    
  • 如果未设置 AWSEndpoint,则默认行为是使用虚拟托管的请求 URL。

默认值: s3.amazonaws.com

AWSLogLevel
日志级别,可以是以下值之一:
  • OFF

  • FATAL

  • ERROR

  • WARN

  • INFO

  • DEBUG

  • TRACE

默认值: ERROR

AWSRegion
AWS 区域,包含要从中读取文件的 S3 存储桶。此参数一次只能配置一个区域。如果您需要在多个区域中访问存储桶,则应在每次更改区域时更改参数。

如果您没有设置正确的区域,您可能会在查询失败之前遇到延迟,因为 Vertica 在放弃之前会进行多次重试。

默认值: us-east-1

AWSSessionToken
通过运行 get-session-token 命令生成的临时安全令牌,可生成可用于配置多重身份验证的临时凭据。

使用 ALTER SESSION 在用户会话中设置此参数。您可以在数据库级别设置此参数,但请注意会话令牌是临时的。令牌过期时,任何访问 AWS 的尝试都会失败。

AWSStreamingConnectionPercentage
控制 Vertica 用于流式读取的公共存储的连接数。在云环境中,此设置有助于防止来自公共存储的流式数据传输耗尽所有可用的文件句柄。它将为其他公共存储操作留下一些可用的文件句柄。

由于本地对象存储是低延迟的,因此对于使用本地公共存储的 Eon 模式数据库,无需此选项。在这种情况下,通过将其设置为 0 来禁用该参数。

S3BucketConfig
包含作为具有以下属性的 JSON 对象的 S3 存储桶配置信息。除了存储桶名称之外的每个属性都有一个相应的配置参数(显示在括号中)。如果同时设置了 S3BucketConfig 中的属性和配置参数,则 S3BucketConfig 属性优先。

属性:

  • bucket:存储桶的名称

  • region (AWSRegion):区域的名称

  • protocol (AWSEnableHttps):连接协议,httphttps

  • endpoint (AWSEndpoint):端点 URL 或 IP 地址

  • enableVirtualAddressing (S3BucketCredentials):是否重写 S3 URL 以使用虚拟托管路径

  • requesterPays (S3RequesterPays):请求者(而不是存储桶所有者)是否支付访问存储桶数据的费用

  • serverSideEncryption (S3ServerSideEncryption):使用 SSE-S3 或 SSE-KMS、AES256aws:kms 或空字符串之一时的加密算法

  • sseCustomerAlgorithm (S3SseCustomerAlgorithm):使用 SSE-C 时的加密算法;必须是 AES256

  • sseCustomerKey (S3SseCustomerKey):使用 SSE-C 加密(32 字符纯文本或 44 字符 base64 编码)时的键

  • sseKmsKeyId (S3SseKmsKeyId):使用 SSE-KMS 加密时的键 ID

给定存储桶的配置属性可能因其类型而异。例如,以下 S3BucketConfig 用于 AWS 存储桶 AWSBucket 和 Pure Storage 存储桶 PureStorageBucketAWSBucket 没有指定端点,因此 Vertica 使用 AWSEndpoint 的值,其默认为 s3.amazonaws.com

ALTER DATABASE DEFAULT SET S3BucketConfig=
'[
    {
        "bucket": "AWSBucket",
        "region": "us-east-2",
        "protocol": "https",
        "requesterPays": true
    },
    {
        "bucket": "PureStorageBucket",
        "endpoint": "pure.mycorp.net:1234",
        "protocol": "http",
        "enableVirtualAddressing": false
    }
]';
S3BucketCredentials
包含用于访问 S3 存储桶的凭据。S3BucketCredentials 中的每个属性都有一个等效参数(显示在括号中)。设置后,S3BucketCredentials 优先于 AWSAuth 和 AWSSessionToken。

为多个存储桶提供凭据可以同时对它们进行身份验证,从而允许执行跨端点联接、从一个存储桶导出到另一个存储桶等。

属性:

  • bucket:存储桶的名称

  • accessKey:存储桶的访问密钥(AWSAuth 中的 ID

  • secretAccessKey:存储桶的私密访问密钥(AWSAuth 中的 secret

  • sessionToken:会话令牌,仅在会话级别设置 S3BucketCredentials 时使用 (AWSSessionToken)

例如,以下 S3BucketCredentials 用于 AWS 存储桶 AWSBucket 和 Pure Storage 存储桶 PureStorageBucket 并设置所有可能的属性:

ALTER SESSION SET S3BucketCredentials='
[
    {
        "bucket": "AWSBucket",
        "accessKey": "<AK0>",
        "secretAccessKey": "<SAK0>",
        "sessionToken": "1234567890"
    },
    {
        "bucket": "PureStorageBucket",
        "accessKey": "<AK1>",
        "secretAccessKey": "<SAK1>"
    }
]';

此参数仅对超级用户可见。用户可以使用 ALTER SESSION 在会话级别设置此参数。

S3EnableVirtualAddressing
布尔值,指定是否重写 S3 URL 以使用虚拟托管路径。例如,如果您使用 AWS,S3 URL 将更改为 bucketname.s3.amazonaws.com 而不是 s3.amazonaws.com/bucketname。此配置设置仅在您为 AWSEndpoint 指定值时生效。

如果您将 AWSEndpoint 设置为符合 FIPS 规范的 S3 端点,则必须在 auth_params.conf 中启用 S3EnableVirtualAddressing:

AWSEndpoint = s3-fips.dualstack.us-east-1.amazonaws.com
S3EnableVirtualAddressing = 1

此参数的值不会影响指定 S3 路径的方式。

默认值: 0(禁用)

S3RequesterPays
布尔值,指定请求者(而不是存储桶所有者)是否支付访问存储桶数据的费用。此值为 true 时,存储桶所有者只负责支付存储数据的费用,而不负责与存储桶相关的所有费用;必须设置后才能访问配置为“请求者付款”存储桶的 S3 存储桶。通过将此属性设置为 true,您将接受访问数据的费用。如果未指定,则默认值为 false。
S3ServerSideEncryption
字符串,读取或写入 S3 时使用的加密算法。该值取决于为 S3 配置的静态加密类型:
  • AES256:用于 SSE-S3 加密

  • aws:kms:用于 SSE-KMS 加密

  • 空字符串 (""):无加密

SSE-C 加密不使用此参数。请参阅 S3SseCustomerAlgorithm。

有关使用 SSE 参数的详细信息,请参阅 S3 对象存储

默认值: ""(无加密)

S3SseCustomerAlgorithm
字符串,使用 SSE-C 加密读取或写入 S3 时使用的加密算法。支持的值仅包括 AES256""

对于 SSE-S3 和 SSE-KMS,请改用 S3ServerSideEncryption。

默认值: ""(无加密)

S3SseCustomerKey
如果使用 SSE-C 加密,则为 S3 访问的客户端密钥。
S3SseKmsKeyId
如果使用 SSE-KMS 加密,则将密钥标识符(不是密钥)传递给密钥管理服务器。Vertica 必须有权使用通过 KMS 管理的密钥。

19 - 安全性参数

可使用以下客户端身份验证配置参数和常规安全性参数配置 TLS。

查询 CONFIGURATION_PARAMETERS 系统表以确定哪些级别(节点、会话、用户、数据库)对给定参数有效。

数据库参数

DataSSLParams
此参数已弃用。请改用 data_channel TLS CONFIGURATION。

在数据通道上启用使用 SSL 加密。此参数的值是以逗号分隔的以下内容的列表:

  • SSL 证书(可链接)

  • 对应的 SSL 私钥

  • SSL CA(证书颁发机构)证书。

在设置此参数之前,应该设置 EncryptSpreadComm

在以下示例中,SSL 证书包含两个证书,其中非根 CA 的证书用于验证群集的证书。这称为 SSL 证书链。

=> ALTER DATABASE DEFAULT SET PARAMETER DataSSLParams =
'----BEGIN CERTIFICATE-----<certificate for Cluster>-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----<certificate for non-root CA>-----END CERTIFICATE-----,
-----BEGIN RSA PRIVATE KEY-----<private key for Cluster>-----END RSA PRIVATE KEY-----,
-----BEGIN CERTIFICATE-----<certificate for public CA>-----END CERTIFICATE-----';
DefaultIdleSessionTimeout
指示未设置 IDLESESSIONTIMEOUT 的所有用户的默认会话超时值。例如:
=> ALTER DATABASE DEFAULT SET defaultidlesessiontimeout = '300 secs';
  
DHParams
字符串,至少 2048 位的 Diffie-Hellman 组,形式为:
 -----BEGIN DH PARAMETERS-----...-----END DH PARAMETERS-----

您可以生成自己的或使用 RFC 3526 中指定的预先计算的模指数 (MODP) Diffie-Hellman 组。

对此参数的更改在重启数据库后才会生效。

默认值: RFC 3526 2048 位 MODP 组 14:

  
-----BEGIN DH PARAMETERS-----MIIBCAKCAQEA///////////
JD9qiIWjCNMTGYouA3BzRKQJOCIpnzHQCC76mOxObIlFKCHmONAT
d75UZs806QxswKwpt8l8UN0/hNW1tUcJF5IW1dmJefsb0TELppjf
tawv/XLb0Brft7jhr+1qJn6WunyQRfEsf5kkoZlHs5Fs9wgB8uKF
jvwWY2kg2HFXTmmkWP6j9JM9fg2VdI9yjrZYcYvNWIIVSu57VKQd
wlpZtZww1Tkq8mATxdGwIyhghfDKQXkYuNs474553LBgOhgObJ4O
i7Aeij7XFXfBvTFLJ3ivL9pVYFxg5lUl86pVq5RXSJhiY+gUQFXK
OWoqsqmj//////////wIBAg==-----END DH PARAMETERS-----
  
DoUserSpecificFilteringInSysTables
布尔值,指定非超级用户是否可以查看其他用户的详细信息:
  • 0:用户可以查看其他用户的详细信息。

  • 1:用户只能查看有关自己的详细信息。

默认值: 0

EnableAllRolesOnLogin
布尔值,指定是否在登录时自动启用授予用户的所有角色:
  • 0:不自动启用角色

  • 1:自动启用角色。使用此设置时,用户无需运行 SET ROLE

默认值: 0(禁用)

EnabledCipherSuites
指定哪些 SSL 密码套件用于安全的客户端-服务器通信。对此参数的更改仅适用于新连接。

默认值: Vertica 使用 Microsoft Schannel 默认密码套件。有关详细信息,请参阅 Schannel 文档

EncryptSpreadComm
在控制通道上启用 Spread 加密,设置为以下字符串之一:
  • vertica:指定 Vertica 为数据库群集生成 Spread 加密密钥。

  • aws-kms|key‑name,其中 key‑name 是 iAWS 密钥管理服务 (KMS) 中的命名密钥。在数据库重启时,Vertica 从 KMS 获取命名密钥,而不是生成自己的密钥。

如果参数为空,则 Spread 通信未加密。通常,您应该在修改其他安全参数之前启用此参数。

启用此参数需要重启数据库。

GlobalHeirUsername
字符串,指定哪些用户在删除其所有者后继承对象。此设置可确保保留那些不执行保留操作就会丢失的数据。

将此参数设置为以下字符串值之一:

  • 空字符串:已删除的用户的对象将从数据库中移除。

  • username:将已删除的用户的对象重新分配给 username。如果 username 不存在,Vertica 会创建该用户并将 GlobalHeirUsername 设置为它。

  • <auto>:将已删除的 LDAP 用户的对象重新分配给用户 dbadmin

有关用法的更多信息,请参阅示例

默认值: <auto>

HttpsTLSConfig
用于 HTTPSTLS CONFIGURATION

例如:

=> ALTER DATABASE DEFAULT SET HttpsTLSConfig = my_tls_config;

默认值: server

ImportExportTLSMode
使用 CONNECT TO VERTICA 连接到另一个 Vertica 群集进行导入或导出时,指定使用 TLS 的严格程度。可能的值为:
  • PREFER:尝试 TLS,但如果 TLS 失败,则回退到明文。

  • REQUIRE:如果服务器不支持 TLS,则使用 TLS 并失败。

  • VERIFY_CA:需要 TLS(与 REQUIRE 一样),并使用“服务器”TLS CONFIGURATION 的 CA 证书(在本例中为“ca_cert”和“ica_cert”)指定的 CA 来验证其他服务器的证书:

    => SELECT name, certificate, ca_certificates, mode FROM tls_configurations WHERE name = 'server';
      name  |   certificate    |   ca_certificates   |   mode
    --------+------------------+---------------------+-----------
     server | server_cert      | ca_cert,ica_cert    | VERIFY_CA
    (1 row)
    
  • VERIFY_FULL:需要 TLS 并验证证书(与 VERIFY_CA 一样),并验证服务器证书的主机名。

  • REQUIRE_FORCEVERIFY_CA_FORCEVERIFY_FULL_FORCE:分别与 REQUIREVERIFY_CAVERIFY_FULL 行为相同,并且不能被 CONNECT TO VERTICA 覆盖。

默认值: PREFER

InternodeTLSConfig
用于节点间加密TLS CONFIGURATION

例如:

=> ALTER DATABASE DEFAULT SET InternodeTLSConfig = my_tls_config;

默认值: data_channel

LDAPAuthTLSConfig
用于 TLS 与 LDAP 身份验证TLS CONFIGURATION

例如:

=> ALTER DATABASE DEFAULT SET LDAPAuthTLSConfig = my_tls_config;

默认值: ldapauth

LDAPLinkTLSConfig
用于 LDAP 链接服务的 TLSTLS CONFIGURATION

例如:

=> ALTER DATABASE DEFAULT SET LDAPLinkTLSConfig = my_tls_config;

默认值: ldaplink

PasswordLockTimeUnit
FAILED_LOGIN_ATTEMPTS 之后账户被锁定PASSWORD_LOCK_TIME 时间单位,为以下之一:
  • 'd':天(默认)

  • 'h':小时

  • 'm':分钟

  • 's':秒

例如,配置默认配置文件,以在 3 次登录尝试失败后锁定用户帐户 30 分钟:

  
=> ALTER DATABASE DEFAULT SET PasswordLockTimeUnit = 'm'
=> ALTER PROFILE DEFAULT LIMIT PASSWORD_LOCK_TIME 30;
  
RequireFIPS
布尔值,指定是否启用 FIPS 模式:
  • 0(禁用)

  • 1:(启用)

启动时,Vertica 会根据文件 crypto.fips_enabled 的内容自动设置此参数。您不能修改此参数。

有关详细信息,请参阅Vertica 服务器的 FIPS 合规性

默认值: 0

SecurityAlgorithm
设置哈希身份验证使用的算法,为以下之一:
  • SHA512

  • MD5

例如:

=> ALTER DATABASE DEFAULT SET SecurityAlgorithm = 'SHA512';

默认值: SHA512

ServerTLSConfig
用于客户端-服务器 TLSTLS CONFIGURATION

例如:

=> ALTER DATABASE DEFAULT SET ServerTLSConfig = my_tls_config;

默认值: server

SystemCABundlePath
受信任 CA 的证书捆绑包的绝对路径。当通过各自的 SDK 和 libcurl 与 AWS 或 Azure 等外部服务建立 TLS 连接时,将使用此 CA 捆绑包。在所有节点上,CA 捆绑包文件必须在相同位置。

如果此参数为空,Vertica 将搜索 CA 捆绑包的“标准”路径,这在不同的分发版中有所不同:

  • 基于 Red Hat: /etc/pki/tls/certs/ca-bundle.crt
  • 基于 Debian: /etc/ssl/certs/ca-certificates.crt
  • SUSE: /var/lib/ca-certificates/ca-bundle.pem

示例

=> ALTER DATABASE DEFAULT SET SystemCABundlePath = 'path/to/ca_bundle.pem';
  

默认值: Empty

TLS 参数

要设置 Vertica 数据库的 TLSMode、私钥、服务器证书和 CA 证书,请参阅 TLS 配置。在 11.0.0 之前的版本中,这些参数分别称为 EnableSSL、SSLPrivateKey、SSLCertificate 和 SSLCA。

示例

设置数据库参数 GlobalHeirUsername

=> \du
      List of users
 User name | Is Superuser
-----------+--------------
 Joe       | f
 SuzyQ     | f
 dbadmin   | t
(3 rows)

=> ALTER DATABASE DEFAULT SET PARAMETER GlobalHeirUsername='SuzyQ';
ALTER DATABASE
=>  \c - Joe
You are now connected as user "Joe".
=> CREATE TABLE t1 (a int);
CREATE TABLE

=> \c
You are now connected as user "dbadmin".
=> \dt t1
             List of tables
 Schema | Name | Kind  | Owner | Comment
--------+------+-------+-------+---------
 public | t1   | table | Joe   |
(1 row)

=> DROP USER Joe;
NOTICE 4927:  The Table t1 depends on User Joe
ROLLBACK 3128:  DROP failed due to dependencies
DETAIL:  Cannot drop User Joe because other objects depend on it
HINT:  Use DROP ... CASCADE to drop the dependent objects too
=> DROP USER Joe CASCADE;
DROP USER
=> \dt t1
             List of tables
 Schema | Name | Kind  | Owner | Comment
--------+------+-------+-------+---------
 public | t1   | table | SuzyQ |
(1 row)

20 - 文本搜索参数

您可以对 Vertica 进行配置,以便使用以下值参数进行文本搜索:

TextIndexMaxTokenLength
控制文本索引中某个字符串的最大大小。

例如:

ALTER DATABASE database_name SET PARAMETER TextIndexMaxTokenLength=760;

如果将参数设置为一个大于 65000 个字符的值,分词器将在 65000 个字符的位置截断该字符串。

默认值: 128(字符)

21 - Tuple Mover 参数

这些参数控制着 Tuple Mover 的操作方式。

查询 CONFIGURATION_PARAMETERS 系统表以确定哪些级别(节点、会话、用户、数据库)对给定参数有效。
ActivePartitionCount
设置活动分区的数量。活动分区是最近创建的分区。例如:
=> ALTER DATABASE DEFAULT SET ActivePartitionCount = 2;

有关 Tuple Mover 在合并操作期间如何对待主动和被动分区的信息,请参阅分区合并

默认值: 1

CancelTMTimeout
当分区、复制表和重新平衡操作与内部 Tuple Mover 作业存在冲突时,这些操作会尝试取消冲突的 Tuple Mover 作业。此参数指定拦截操作等待 Tuple Mover 取消生效的时间量(以秒为单位)。如果操作无法在此参数指定的限制内取消 Tuple Mover 作业,则操作将显示错误并回退。

默认值: 300

EnableTMOnRecoveringNode
布尔值,指定 Tuple Mover 是否在节点状态为 RECOVERING 的节点上执行合并活动。启用 Tuple Mover 会减少恢复期间生成的 ROS 容器的数量。如果每个投影的 ROS 容器少于 1024 个,则可以使 Vertica 保持最佳恢复性能。

默认值: 1(启用)

MaxMrgOutROSSizeMB
指定作为合并操作的候选的 ROS 容器的最大大小(以 MB 为单位)。Tuple Mover 避免合并大于此设置的 ROS 容器。

默认值: -1(没有最大限制)

MergeOutInterval
指定 Tuple Mover 检查合并请求队列是否有待处理请求的频率(以秒为单位):
  1. 如果队列包含合并请求,则 Tuple Mover 不执行任何操作并重新进入睡眠状态。

  2. 如果队列为空,Tuple Mover:

    • 处理待处理的存储位置移动请求。

    • 检查新的未排队清除请求并将它们添加到队列中。

    然后它重新进入睡眠状态。

默认值: 600

PurgeMergeoutPercent
指定调用自动合并操作以清除这些记录的 ROS 容器中的已删除记录阈值 (%)。Vertica 仅计算“过期”删除向量的数量,即删除“旧”或早于 Ancient History Mark (AHM) 时期的向量。

此阈值适用于非分区表的所有 ROS 容器。它也适用于所有非活动分区的 ROS 容器。在这两种情况下,过期的删除向量都会从 ROS 容器中永久清除。

默认值: 20 (%)