调度程序工具选项
vkconfig 脚本的调度程序工具可用于配置将数据从 Kafka 不断加载到 Vertica 的调度程序。使用调度程序工具创建、更新或删除由 config-schema
定义的调度程序。如果未指定调度程序,则命令适用于默认 stream_config 调度程序。
语法
vkconfig scheduler {--create | --read | --update | --drop} other_options...
--create
创建新的负载规范,不能与
‑‑delete
、‑‑read
或‑‑update
一起使用。--read
- 以 JSON 格式输出调度程序的当前设置。不能与
--create
、--delete
或--update
配合使用。 --update
更新现有的 Set Snippet Variable Value in Topic。不能与
--create
、--delete
或--read
配合使用。--drop
- 删除调度程序的架构。删除其架构将删除调度程序。删除调度程序的架构后,无法将其恢复。
--add-operator
user_name- 授予某个 Vertica 用户帐户或角色使用和修改调度程序的权限。需要使用
--update
共享的实用程序选项。 --auto-sync``{TRUE|FALSE}
- 如果为 TRUE,Vertica 将以
--config-refresh
中指定的间隔自动同步调度程序源信息。有关调度程序在每个间隔同步哪些内容的详细信息,请参阅使用调度程序自动使用来自 Kafka 的数据中的“验证调度程序”和“同步调度程序”部分。
默认值: TRUE
--config-refresh
HH:MM:SS- 调度程序在同步其设置或更新其缓存元数据(例如使用
--update
选项所做的更改)之前运行的时间间隔。默认值: 00:05:00
--consumer-group-id
id_nameKafka 使用者组(Vertica 将向其报告消费消息进度)的名称。设置此值以禁用向 Kafka 使用者组报告进度。有关详细信息,请参阅通过使用者组监控 Vertica 消息使用情况。
默认值:
vertica_database-name
--dump
当您将此选项与
--read
选项一起使用时,vkconfig 会输出用来检索数据的 Vertica 查询,而不是输出数据本身。如果您想从 Vertica 中访问数据而无需通过 vkconfig,则此选项很有用。如果不与--read
一起使用,此选项无效。--eof-timeout-ms
number of milliseconds- 如果 COPY 命令在 eof-timeout-ms 间隔内未收到任何消息,Vertica 会通过结束该 COPY 语句做出响应。
有关详细信息,请参阅手动使用来自 Kafka 的数据。
默认值: 1 秒
--fix-config
- 修复配置并重新创建所有缺失的表。仅在使用
--update
共享的配置选项时有效。 --frame-duration
HH:MM:SS- 所有各个时间范围在此调度程序中持续的时间间隔。调度程序必须有足够的时间运行每个微批处理(每个微批处理都将执行 COPY 语句)。您可以使用以下等式估算估计每个微批处理的平均可用时间:
TimePerMicrobatch=(FrameDuration*Parallelism)/Microbatches
这只是粗略估计,因为有多种因素会影响每个微批处理能够运行的时间量。
如果为每个微批处理分配的时间低于 2 秒,vkconfig 实用程序会向您发出警告。您通常应该为每个微批处理分配两秒以上的时间,以便让调度程序能够加载数据流中的所有数据。
注意
在低于 10.0 的 Vertica 版本中,默认时间范围持续时间为 10 秒。在版本 10.0 中,此默认值已增加到 5 分钟,以在某种程度上补偿移除了 WOS。如果已在 10.0 之前的版本中创建具有默认时间范围持续时间的调度程序,则时间范围持续时间不会更新为新的默认值。在这种情况下,请考虑手动调整时间范围持续时间。有关详细信息,请参阅选择时间范围持续时间。默认值: 00:05:00
--message_max_bytes
max_message_size指定 Kafka 协议批处理消息的最大大小(以字节为单位)。
重要
如果您使用 Vertica 9.1.0 或更早版本创建调度程序,则可能需要手动更新此值。Kafka 的 max.message.bytes 设置的含义在 0.10 和 0.11 版本之间发生了变化。有关详细信息,请参阅在 Kafka 0.11 及更高版本中对 message.max.bytes 设置的更改。默认值: 25165824
--new-source-policy``{FAIR|START|END}
- 确定 Vertica 如何将资源分配给以下任一新添加的源:
-
FAIR:采用以前批处理中的平均时间长度,并适当地调度自己。
-
START:所有新源均在时间范围开始时启动。批处理获得的运行时间最短。
-
END:所有新源均在时间范围结束时启动。批处理获得的运行时间最长。
默认值: FAIR
-
--operator
username- 允许 dbadmin 为之前创建的 Vertica 用户或角色授予权限。
此选项会为指定用户授予对调度程序实例的所有权限以及对 libkafka 库及其所有 UDx 的 EXECUTE 权限。
授予操作员权限会让用户有权从任何群集(可从 Vertica 节点进行访问)中的任何源读取数据。
dbadmin 必须为用户授予单独的权限,使其对目标表具有写入权限。
需要使用
--create
共享的实用程序选项。创建调度程序后,使用--add-operator
选项授予操作权限。要撤销权限,请使用
--remove-operator
选项。 --remove-operator
user_name- 从 Vertica 用户帐户中移除对调度程序的访问权限。需要使用
--update
共享的实用程序选项。 --resource-pool
pool_name- 此调度程序执行的所有查询将使用的资源池。必须提前创建此池。
默认值: GENERAL 池
注意
调度程序只能使用 GENERAL 池的 PLANNEDCONCURRENCY 的四分之一。 --upgrade
- 将现有调度程序和配置架构升级到当前 Vertica 版本。升级后的调度程序版本不会向后兼容早期版本。要将调度程序升级到备用架构,请使用
upgrade-to-schema
参数。有关详细信息,请参阅在 Vertica 升级后更新调度程序。 --upgrade-to-schema
schema name- 将调度程序的架构复制到由 schema name 指定的新架构,然后进行升级使其与当前版本的 Vertica 兼容。Vertica 不会修改旧架构。需要使用
--upgrade
调度程序实用程序选项。 --validation-type``{ERROR|WARN|SKIP}
- 已重命名自
--skip-validation
,用于指定在调度程序上执行的验证级别。无效的 SQL 语法和其他错误可能会导致微批处理无效。Vertica 支持以下验证类型:-
错误如果验证失败,则取消配置或创建。
-
WARN:如果验证失败,则继续执行任务,但会显示警告。
-
SKIP:不执行验证。
有关验证的详细信息,请参考使用调度程序自动使用来自 Kafka 的数据。
默认值: ERROR
-
请参阅常用 vkconfig 脚本选项以了解所有 vkconfig 工具中提供的选项。
示例
以下示例显示如何使用调度程序实用程序选项。
授予用户 Jim 对 StreamConfig 调度程序的权限。指定使用 --config-schema
选项对 stream_config 调度程序进行编辑:
$ /opt/vertica/packages/kafka/bin/vkconfig scheduler --update --config-schema stream_config --add-operator Jim
编辑默认 stream_config 调度程序,以便每个微批处理在结束前等待数据一秒钟:
$ /opt/vertica/packages/kafka/bin/vkconfig scheduler --update --eof-timeout-ms 1000
将名为 iot_scheduler_8.1 的调度程序升级到与当前 Vertica 版本兼容的名为 iot_scheduler_9.0 的新调度程序:
$ /opt/vertica/packages/kafka/bin/vkconfig scheduler --upgrade --config-schema iot_scheduler_8.1 \
--upgrade-to-schema iot_scheduler_9.0
删除架构 scheduler219a:
$ /opt/vertica/packages/kafka/bin/vkconfig scheduler --drop --config-schema scheduler219a --username dbadmin
对于 weblogs.conf 中定义的调度程序,请读取可以使用调度程序工具设置的选项的当前设置。
$ vkconfig scheduler --read --conf weblog.conf
{"version":"v9.2.0", "frame_duration":"00:00:10", "resource_pool":"weblog_pool",
"config_refresh":"00:05:00", "new_source_policy":"FAIR",
"pushback_policy":"LINEAR", "pushback_max_count":5, "auto_sync":true,
"consumer_group_id":null}