这是本节的多页打印视图。
点击此处打印.
返回本页常规视图.
配置参数
Vertica 支持一系列影响数据库多个方面行为的配置参数。通过在一个或多个级别使用适当的 ALTER 语句,可以设置这些参数。以下按优先级降序对其进行排列:
-
用户 (ALTER USER)
-
会话 (ALTER SESSION)
-
节点 (ALTER NODE)
-
数据库 (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 才会跨多个节点分摊文件负载:
另请参阅 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
- DivideZeroByZeroThrowsError
- 布尔值,指定在请求除数为零的运算时是否返回错误:
默认值: 1
- EnableApportionedChunkingInDefaultLoadParser
- 布尔值,指定是否为已分隔文件启用内置解析器,以利用分摊负载和协作解析,从而获得更好的性能。
默认值: 1(启用)
- EnableApportionedFileLoad
- 布尔值,指定是否使用 COPY FROM VERTICA 启用跨节点自动分摊文件负载。Vertica 在满足以下条件时尝试分摊负载:
设置此参数并不能保证负载将被分摊,但禁用此参数可以保证不会被分摊。
请参阅分配加载。
默认值: 1(启用)
- EnableApportionLoad
- 布尔值,指定是否使用 COPY...WITH SOURCE 启用跨节点自动分摊数据负载。Vertica 在满足以下条件时尝试分摊负载:
设置此参数并不能保证负载将被分摊,但禁用此参数可以保证不会被分摊。
有关详细信息,请参阅分配加载。
默认值: 1(启用)
- EnableBetterFlexTypeGuessing
- 布尔值,指定在使用
COMPUTE_FLEXTABLE_KEYS
或 COMPUTE_FLEXTABLE_KEYS_AND_BUILD_VIEW
将数据类型分配给 Flex 表 __raw__
列中的非字符串键时,是否启用更准确的类型猜测。如果禁用此参数 (0),Vertica 将使用一组有限的 Vertica 数据类型分配。例如,请参阅计算 Flex 表键。
默认值: 1(启用)
- EnableCooperativeParse
- 布尔值,指定是否对节点实施多线程解析功能。此参数可用于分隔的负载和固定宽度的负载。
默认值: 1(启用)
- EnableForceOuter
- 布尔值,指定 Vertica 是否使用表的
force_oute
r 值来实施联接。有关详细信息,请参阅控制联接输入。
默认值: 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_KEYS
和 COMPUTE_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
- 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 遭到系统阻拦。
提示
将此参数设置为 0 可防止当您正在关闭数据库时有新的客户端会话打开。重新启动数据库后,此参数将还原为其原始设置。有关详细信息,请参阅
管理会话。
默认值: 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 子句递归。
重要
请务必将 WithClauseRecursionLimit 设置为遍历最深层次结构所需的高度。Vertica 对此参数没有设置限制;但是,较高的值会产生相当大的开销,从而对性能产生不利影响并耗尽系统资源。
如果需要较高的递归计数,则考虑启用实体化。有关详细信息,请参阅 WITH RECURSIVE 实体化。
默认值: 8
2 - Azure 参数
使用以下参数配置从 Azure Blob 存储读取。有关从 Azure 读取数据的详细信息,请参阅 Azure Blob 存储对象存储。
查询
CONFIGURATION_PARAMETERS 系统表以确定哪些级别(节点、会话、用户、数据库)对给定参数有效。
- AzureStorageCredentials
- JSON 对象的集合,其中每个对象指定一个端点的连接凭据。此参数优先于 Azure 托管标识。
该集合必须至少包含一个对象,并且可能会包含多个对象。每个对象必须至少指定 accountName
或 blobEndpoint
之一,并且至少指定 accountKey
或 sharedAccessSignature
之一。
accountName
:如果未指定,则使用 blobEndpoint
标签。
blobEndpoint
:带有可选端口的主机名 (host:port
)。如果未指定,则使用
account.blob.core.windows.net
。
accountKey
:帐户或端点的访问密钥。
sharedAccessSignature
:用于更精细访问控制的访问令牌(如果 Azure 端点正在使用)。
- AzureStorageEndpointConfig
- JSON 对象的集合,其中每个对象指定一个端点的配置元素。每个对象必须至少指定
accountName
或 blobEndpoint
之一。
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:
- EnableNewPrimaryKeysByDefault
- 布尔参数,设置为 0 或 1:
注意
Vertica 建议同时强制执行约束 PRIMARY KEY 和 UNIQUE。
- EnableNewUniqueKeysByDefault
- 布尔参数,设置为 0 或 1:
- MaxConstraintChecksPerQuery
- 设置
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
- CatalogSyncInterval
- 指定事务日志同步服务将元数据同步到公共存储的频率(以分钟为单位)。如果您更改此设置,Vertica 将重启间隔计数。
默认值: 5
- DelayForDeletes
- 指定从公共存储中删除文件之前要等待的时间(以小时为单位)。Vertica 首先从存储库中删除一个文件。在指定的时间间隔之后,删除也会发生在公共存储中。
默认值: 0.分片订购者不使用该文件时,立即从公共存储中将其删除。
- DepotOperationsForQuery
- 指定当存储库不包含查询的文件数据时的行为,为以下之一:
-
ALL
(默认值):从公共存储中提取文件数据,如有必要,通过将现有文件从存储库中逐出来替换它们。
-
FETCHES
:仅当空间可用时才从公共存储中提取文件数据;否则,直接从公共存储中读取查询的数据。
-
NONE
:请勿将文件数据提取到存储库,而应直接从公共存储中读取查询的数据。
您还可以使用提示
DEPOT_FETCH
指定查询级别的行为。
- ECSMode
- 字符串参数,用于设置 Vertica 在启用 ECS 的查询期间在订阅节点之间划分分片中的数据时使用的策略,为以下之一:
有关详细信息,请参阅手动选择 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。
注意
reaper 是删除磁盘文件的服务任务。
默认值: 300
- StorageMergeMaxTempCacheMB
- 每个查询分配给 StorageMerge 运算符以供缓存 S3 存储容器的数据的临时空间大小。
有关详细信息,请参阅存储容器的本地缓存。
- UseCommunalStorageForBatchDepotWarming
- 布尔参数,指定节点在预热其存储库时在何处检索数据:
-
1:从公共存储中检索数据。
-
0:从对等点检索数据。
注意
实际分配的临时空间是两个设置中的较小者:
默认值: 1
重要
此参数仅供内部使用。除非得到 Vertica 支持人员的指示,否则请勿更改。
- UseDepotForReads
- 布尔参数,指定 Vertica 是通过访问存储库以回答查询,还是仅访问公共存储:
注意
启用存储库读取以提高查询性能并支持 K-safety。
默认值: 1
- UseDepotForWrites
- 布尔参数,指定 Vertica 是否将加载的数据写入存储库,然后将文件上传到公共存储:
默认值: 1
- UsePeerToPeerDataTransfer
- 布尔参数,指定 Vertica 是否将加载的数据推送给其他分片订购者:
-
1:将加载的数据发送给所有分片订购者。
-
0:不将数据推送到其他分片订购者。
注意
设置为 1 有助于在节点关闭时提高性能。
默认值: 0
重要
此参数仅供内部使用。除非得到 Vertica 支持人员的指示,否则请勿更改。
6 - 时期管理参数
下表介绍用于配置 Vertica 的时期管理参数。
查询
CONFIGURATION_PARAMETERS 系统表以确定哪些级别(节点、会话、用户、数据库)对给定参数有效。
- AdvanceAHMInterval
- 确定 Vertica 检查历史保留状态的频率(以秒为单位)。
不能将 AdvanceAHMInterval 设置为小于 EpochMapInterval 的值。
默认值: 180(秒)
- AHMBackupManagement
- 阻止 Ancient History Mark (AHM) 提前。启用此参数时,AHM 时期不能晚于最近一次完整备份的时期。如果您提前 AHM 来清除和删除数据,请不要启用此参数。
当心
在获取完整备份之前不要启用此参数,因为它将阻止 AHM 提前。
默认值: 0
- EpochMapInterval
- 确定时期之间的映射粒度以及可用于
历史查询的时间。当发出历史查询
AT TIME T
请求时,Vertica 会将其映射到位于 EpochMapInterval 秒粒度内的某个时期。类似地,它会影响故障恢复期间针对
上一个完好的时期报告的时间。请注意,它不会影响时期本身的内部精度。
提示
减小此间隔会增加在磁盘上保存的时期数。因此,请考虑减小 HistoryRetentionTime 参数来限制 Vertica 保留的历史时期数。
默认值: 180(秒)
- HistoryRetentionTime
- 确定已删除数据作为历史参考保存的时间长度(以秒为单位)。在删除后的指定时间过去后,您可以清除数据。如果您喜欢使用
HistoryRetentionEpochs
确定可以清除的已删除数据,请使用 -1 设置。
提示
如果您依赖于“回退 (Roll Back)”选项来移除当前加载的数据,请考虑设置一个单天窗口用于移除加载的数据。例如:
ALTER DATABASE DEFAULT SET HistoryRetentionTime = 86400;
默认值: 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 PARAMETER 和 ALTER 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++ 来访问数据。
已弃用
此参数已弃用,因为 LibHDFS++ 已弃用。将来,Vertica 将对所有 hdfs
URL 使用 WebHDFS。
默认值: 1(启用)
- WebhdfsClientCertConf
- 用于访问一个或多个 WebHDFS 服务器的 mTLS 配置。该值是一个 JSON 字符串;每个成员具有以下属性:
nameservice
和 authority
互斥。
例如:
=> 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 连接器配合使用。
已弃用
Vertica 默认使用 hdfs
方案。要使用 webhdfs
,请设置 HDFSUseWebHDFS 参数。
默认值: 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 时,将反斜线视为转义字符。
提示
若要将反斜线视为转义字符,请使用“扩展 (Extended)”字符串语法
(E'...');
默认值: -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
设置为 none
或 requested
时,此参数为可选。
默认值: 无
- kafka_SSL_PrivateKey_secret
- 用于加密会话的私钥。Vertica 不会记录此信息。例如:
=> ALTER SESSION SET UDPARAMETER kafka_SSL_PrivateKey_secret='A60iThKtezaCk7F';
当 Kafka 服务器的参数 ssl.client.auth
设置为 none
或 requested
时,此参数为可选。
默认值: 无
- kafka_SSL_PrivateKeyPassword_secret
- 用于创建私钥的密码。Vertica 不会记录此信息。
例如:
ALTER SESSION SET UDPARAMETER kafka_SSL_PrivateKeyPassword_secret='secret';
当 Kafka 服务器的参数 ssl.client.auth
设置为 none
或 requested
时,此参数为可选。
默认值: 无
- 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 内存利用率的参数。
当心
只能在 Vertica 支持的指导下修改这些参数。
查询
CONFIGURATION_PARAMETERS 系统表以确定哪些级别(节点、会话、用户、数据库)对给定参数有效。
- MemoryPollerIntervalSec
- 指定 Vertica 内存轮询器检查 Vertica 内存利用率是否低于几个配置参数的阈值的频率(以秒为单位,见下文):
-
MemoryPollerMallocBloatThreshold
-
MemoryPollerReportThreshold
-
MemoryPollerTrimThreshold
重要
要禁用轮询所有阈值,请将此参数设置为 0。这样做可以有效地禁用自动内存利用率
报告和
修剪。
默认值: 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_TYPE
为 MEMORY_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)
- 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 容器数。
当心
增加此参数的值会导致数据库性能严重下降。Vertica 强烈建议您在未咨询客户支持专业人员之前不要修改此参数。
默认值: 1024
- MaxAutoSegColumns
- 指定在自动投影的哈希分段子句中使用的列数 (0–1024)。设置为
0
以使用所有列。
默认值: 8
- MaxAutoSortColumns
- 指定在自动投影的排序表达式中使用的列数 (0–1024)。设置为
0
以使用所有列。
默认值: 8
- RebalanceQueryStorageContainers
- 默认情况下,在执行重新平衡之前,Vertica 会执行系统表查询,以计算重新平衡任务中涉及的所有投影的大小。此查询使 Vertica 能够优化重新平衡,以最有效地利用可用磁盘空间。但是,此查询会大大增加执行重新平衡所需的时间。
禁用系统表查询可以减少执行重新平衡所需的时间。如果节点的磁盘空间不足,则禁用查询会增加节点磁盘空间不足的可能性。在这种情况下,重新平衡会失败。
默认值: 1(启用)
- RewriteQueryForLargeDim
- 如果启用 (1),Vertica 会在 REFRESH_COLUMNS 操作期间通过反转目标表和源表之间的内部和外部联接来重写 SET USING 或 DEFAULT USING 查询。这样做可以在源数据所在的表大于目标表的情况下优化刷新性能。
重要
仅当 SET USING 源数据所在的表大于目标表时,才启用此参数。如果源数据所在的表小于目标表,则启用 RewriteQueryForLargeDim 会对刷新性能产生不利影响。
默认值: 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_db
或 revive_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 端点包含 http(s)://
。
-
AWS:hostname_or_ip:port_number。
-
具有符合 FIPS 规范的 S3 端点的 AWS:S3_hostname 并启用虚拟寻址:
重要
不要包括 http(s)://
AWSEndpoint = s3-fips.dualstack.us-east-1.amazonaws.com
S3EnableVirtualAddressing = 1
-
本地/Pure:Pure Storage 服务器的 IP 地址。如果使用管理工具 create_db
或 revive_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 的尝试都会失败。
注意
如果在会话级别使用会话令牌,则必须在会话级别设置所有参数,即使其中一些参数是在数据库级别设置的。使用
ALTER SESSION 设置会话参数。
- AWSStreamingConnectionPercentage
- 控制 Vertica 用于流式读取的公共存储的连接数。在云环境中,此设置有助于防止来自公共存储的流式数据传输耗尽所有可用的文件句柄。它将为其他公共存储操作留下一些可用的文件句柄。
由于本地对象存储是低延迟的,因此对于使用本地公共存储的 Eon 模式数据库,无需此选项。在这种情况下,通过将其设置为 0 来禁用该参数。
- S3BucketConfig
- 包含作为具有以下属性的 JSON 对象的 S3 存储桶配置信息。除了存储桶名称之外的每个属性都有一个相应的配置参数(显示在括号中)。如果同时设置了 S3BucketConfig 中的属性和配置参数,则 S3BucketConfig 属性优先。
属性:
-
bucket
:存储桶的名称
-
region
(AWSRegion):区域的名称
-
protocol
(AWSEnableHttps):连接协议,http
或 https
-
endpoint
(AWSEndpoint):端点 URL 或 IP 地址
-
enableVirtualAddressing
(S3BucketCredentials):是否重写 S3 URL 以使用虚拟托管路径
-
requesterPays
(S3RequesterPays):请求者(而不是存储桶所有者)是否支付访问存储桶数据的费用
-
serverSideEncryption
(S3ServerSideEncryption):使用 SSE-S3 或 SSE-KMS、AES256
、aws:kms
或空字符串之一时的加密算法
-
sseCustomerAlgorithm
(S3SseCustomerAlgorithm):使用 SSE-C 时的加密算法;必须是 AES256
-
sseCustomerKey
(S3SseCustomerKey):使用 SSE-C 加密(32 字符纯文本或 44 字符 base64 编码)时的键
-
sseKmsKeyId
(S3SseKmsKeyId):使用 SSE-KMS 加密时的键 ID
给定存储桶的配置属性可能因其类型而异。例如,以下 S3BucketConfig 用于 AWS 存储桶 AWSBucket
和 Pure Storage 存储桶 PureStorageBucket
。 AWSBucket
没有指定端点,因此 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(禁用)
注意
自 2020 年 9 月 30 日起,AWS 需要为新创建的存储桶提供虚拟地址路径。
- 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(禁用)
- EnabledCipherSuites
- 指定哪些 SSL 密码套件用于安全的客户端-服务器通信。对此参数的更改仅适用于新连接。
默认值: Vertica 使用 Microsoft Schannel 默认密码套件。有关详细信息,请参阅 Schannel 文档。
- EncryptSpreadComm
- 在控制通道上启用 Spread 加密,设置为以下字符串之一:
如果参数为空,则 Spread 通信未加密。通常,您应该在修改其他安全参数之前启用此参数。
启用此参数需要重启数据库。
- GlobalHeirUsername
- 字符串,指定哪些用户在删除其所有者后继承对象。此设置可确保保留那些不执行保留操作就会丢失的数据。
将此参数设置为以下字符串值之一:
有关用法的更多信息,请参阅示例。
默认值: <auto>
- HttpsTLSConfig
- 用于 HTTPS 的 TLS 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_FORCE
、VERIFY_CA_FORCE
和 VERIFY_FULL_FORCE
:分别与 REQUIRE
、VERIFY_CA
和 VERIFY_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 链接服务的 TLS 的 TLS 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 模式:
启动时,Vertica 会根据文件 crypto.fips_enabled
的内容自动设置此参数。您不能修改此参数。
有关详细信息,请参阅Vertica 服务器的 FIPS 合规性。
默认值: 0
- SecurityAlgorithm
- 设置哈希身份验证使用的算法,为以下之一:
例如:
=> ALTER DATABASE DEFAULT SET SecurityAlgorithm = 'SHA512';
默认值: SHA512
- ServerTLSConfig
- 用于客户端-服务器 TLS 的 TLS 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 个字符的位置截断该字符串。
当心
避免将此参数设置在最大值 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 容器。
注意
在
重新平衡操作之后,Tuple Mover 将 ROS 容器分组为小于 MaxMrgOutROSSizeMB 的批次。大于 MaxMrgOutROSSizeMB 的 ROS 容器单独合并
默认值: -1(没有最大限制)
- MergeOutInterval
- 指定 Tuple Mover 检查合并请求队列是否有待处理请求的频率(以秒为单位):
-
如果队列包含合并请求,则 Tuple Mover 不执行任何操作并重新进入睡眠状态。
-
如果队列为空,Tuple Mover:
-
处理待处理的存储位置移动请求。
-
检查新的未排队清除请求并将它们添加到队列中。
然后它重新进入睡眠状态。
默认值: 600
- PurgeMergeoutPercent
- 指定调用自动合并操作以清除这些记录的 ROS 容器中的已删除记录阈值 (%)。Vertica 仅计算“过期”删除向量的数量,即删除“旧”或早于 Ancient History Mark (AHM) 时期的向量。
此阈值适用于非分区表的所有 ROS 容器。它也适用于所有非活动分区的 ROS 容器。在这两种情况下,过期的删除向量都会从 ROS 容器中永久清除。
默认值: 20 (%)