调度程序工具选项

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-operatoruser_name
授予某个 Vertica 用户帐户或角色使用和修改调度程序的权限。需要使用 --update 共享的实用程序选项。
--auto-sync``{TRUE|FALSE}
如果为 TRUE,Vertica 将以 --config-refresh 中指定的间隔自动同步调度程序源信息。

有关调度程序在每个间隔同步哪些内容的详细信息,请参阅使用调度程序自动使用来自 Kafka 的数据中的“验证调度程序”和“同步调度程序”部分。

默认值: TRUE

--config-refreshHH:MM:SS
调度程序在同步其设置或更新其缓存元数据(例如使用 --update 选项所做的更改)之前运行的时间间隔。

默认值: 00:05:00

--consumer-group-idid_name

Kafka 使用者组(Vertica 将向其报告消费消息进度)的名称。设置此值以禁用向 Kafka 使用者组报告进度。有关详细信息,请参阅通过使用者组监控 Vertica 消息使用情况

默认值: vertica_database-name

--dump

当您将此选项与 --read 选项一起使用时,vkconfig 会输出用来检索数据的 Vertica 查询,而不是输出数据本身。如果您想从 Vertica 中访问数据而无需通过 vkconfig,则此选项很有用。如果不与 --read 一起使用,此选项无效。

--eof-timeout-msnumber of milliseconds
如果 COPY 命令在 eof-timeout-ms 间隔内未收到任何消息,Vertica 会通过结束该 COPY 语句做出响应。

有关详细信息,请参阅手动使用来自 Kafka 的数据

默认值: 1 秒

--fix-config
修复配置并重新创建所有缺失的表。仅在使用 --update 共享的配置选项时有效。
--frame-durationHH:MM:SS
所有各个时间范围在此调度程序中持续的时间间隔。调度程序必须有足够的时间运行每个微批处理(每个微批处理都将执行 COPY 语句)。您可以使用以下等式估算估计每个微批处理的平均可用时间:
TimePerMicrobatch=(FrameDuration*Parallelism)/Microbatches

这只是粗略估计,因为有多种因素会影响每个微批处理能够运行的时间量。

如果为每个微批处理分配的时间低于 2 秒,vkconfig 实用程序会向您发出警告。您通常应该为每个微批处理分配两秒以上的时间,以便让调度程序能够加载数据流中的所有数据。

默认值: 00:05:00

--message_max_bytesmax_message_size

指定 Kafka 协议批处理消息的最大大小(以字节为单位)。

默认值: 25165824

--new-source-policy``{FAIR|START|END}
确定 Vertica 如何将资源分配给以下任一新添加的源:
  • FAIR:采用以前批处理中的平均时间长度,并适当地调度自己。

  • START:所有新源均在时间范围开始时启动。批处理获得的运行时间最短。

  • END:所有新源均在时间范围结束时启动。批处理获得的运行时间最长。

默认值: FAIR

--operatorusername
允许 dbadmin 为之前创建的 Vertica 用户或角色授予权限。

此选项会为指定用户授予对调度程序实例的所有权限以及对 libkafka 库及其所有 UDx 的 EXECUTE 权限。

授予操作员权限会让用户有权从任何群集(可从 Vertica 节点进行访问)中的任何源读取数据。

dbadmin 必须为用户授予单独的权限,使其对目标表具有写入权限。

需要使用 --create 共享的实用程序选项。创建调度程序后,使用 --add-operator 选项授予操作权限。

要撤销权限,请使用 --remove-operator 选项。

--remove-operatoruser_name
从 Vertica 用户帐户中移除对调度程序的访问权限。需要使用 --update 共享的实用程序选项。
--resource-poolpool_name
此调度程序执行的所有查询将使用的资源池。必须提前创建此池。

默认值: GENERAL

--upgrade
将现有调度程序和配置架构升级到当前 Vertica 版本。升级后的调度程序版本不会向后兼容早期版本。要将调度程序升级到备用架构,请使用 upgrade-to-schema 参数。有关详细信息,请参阅在 Vertica 升级后更新调度程序
--upgrade-to-schemaschema 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}