【问题标题】:SF_KAFKA_CONNECTOR name is empty or invalid error using Confluent Cloud and Snowflake Kafka Connector使用 Confluent Cloud 和 Snowflake Kafka 连接器时,SF_KAFKA_CONNECTOR 名称为空或无效错误
【发布时间】:2019-10-15 22:51:47
【问题描述】:

我有一个在 Confluent Cloud 中运行的集群,并且能够使用其他应用程序生成和使用数据。但是,当我尝试连接 Snowflake Kafka 连接器时,我收到以下错误:

[2019-10-15 22:12:08,979] INFO Creating connector source-snowflake of type com.snowflake.kafka.connector.SnowflakeSinkConnector (org.apache.kafka.connect.runtime.Worker)
[2019-10-15 22:12:08,983] INFO Instantiated connector source-snowflake with version 0.5.1 of type class com.snowflake.kafka.connector.SnowflakeSinkConnector (org.apache.kafka.connect.runtime.Worker)
[2019-10-15 22:12:08,986] INFO 
[SF_KAFKA_CONNECTOR] Snowflake Kafka Connector Version: 0.5.1 (com.snowflake.kafka.connector.Utils)
[2019-10-15 22:12:09,029] INFO 
[SF_KAFKA_CONNECTOR] SnowflakeSinkConnector:start (com.snowflake.kafka.connector.SnowflakeSinkConnector)
[2019-10-15 22:12:09,030] ERROR 
[SF_KAFKA_CONNECTOR] name is empty or invalid. It should match Snowflake object identifier syntax. Please see the documentation. (com.snowflake.kafka.connector.Utils)
[2019-10-15 22:12:09,033] ERROR WorkerConnector{id=source-snowflake} Error while starting connector (org.apache.kafka.connect.runtime.WorkerConnector)
com.snowflake.kafka.connector.internal.SnowflakeKafkaConnectorException: 
[SF_KAFKA_CONNECTOR] Exception: Invalid input connector configuration
[SF_KAFKA_CONNECTOR] Error Code: 0001
[SF_KAFKA_CONNECTOR] Detail: input kafka connector configuration is null, missing required values, or wrong input value
at com.snowflake.kafka.connector.internal.SnowflakeErrors.getException(SnowflakeErrors.java:347)
at com.snowflake.kafka.connector.internal.SnowflakeErrors.getException(SnowflakeErrors.java:306)
at com.snowflake.kafka.connector.Utils.validateConfig(Utils.java:400)
at com.snowflake.kafka.connector.SnowflakeSinkConnector.start(SnowflakeSinkConnector.java:131)
at org.apache.kafka.connect.runtime.WorkerConnector.doStart(WorkerConnector.java:111)
at org.apache.kafka.connect.runtime.WorkerConnector.start(WorkerConnector.java:136)
at org.apache.kafka.connect.runtime.WorkerConnector.transitionTo(WorkerConnector.java:196)
at org.apache.kafka.connect.runtime.Worker.startConnector(Worker.java:252)
at org.apache.kafka.connect.runtime.distributed.DistributedHerder.startConnector(DistributedHerder.java:1079)
at org.apache.kafka.connect.runtime.distributed.DistributedHerder.access$1300(DistributedHerder.java:117)
at org.apache.kafka.connect.runtime.distributed.DistributedHerder$15.call(DistributedHerder.java:1095)
at org.apache.kafka.connect.runtime.distributed.DistributedHerder$15.call(DistributedHerder.java:1091)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

这是我清理过的 Snowflake 配置文件:

{
  "name":"snowsink",
  "config":{
    "connector.class":"com.snowflake.kafka.connector.SnowflakeSinkConnector",
    "tasks.max":"8",
    "topics":"tp-snow-test",
    "buffer.count.records":"100",
    "buffer.flush.time":"60",
    "buffer.size.bytes":"65536",
    "snowflake.url.name":"xxxxxxx.east-us-2.azure.snowflakecomputing.com",
    "snowflake.user.name":"svc_cc_strm",
    "snowflake.private.key":"<key>",
    "snowflake.private.key.passphrase":<password>,
    "snowflake.database.name":"testdb",
    "snowflake.schema.name":"test1",
    "key.converter":"org.apache.kafka.connect.storage.StringConverter",
    "value.converter":"com.snowflake.kafka.connector.records.SnowflakeJsonConverter"
   }
}

有什么想法吗?谢谢。

【问题讨论】:

  • 你的配置文件中有snowflake.topic2table.map吗?
  • @sdmgill 这些解决方案对您有帮助吗?

标签: apache-kafka apache-kafka-connect snowflake-cloud-data-platform


【解决方案1】:

连接器的名称应该是 Snowflake 的有效 SQL 标识符。如此多的 kafka 主题示例中都有破折号,以至于当我第一次尝试 Snowflake Kafka 连接器时,我遇到了同样的错误。

根据documentation,使用指定的connector_name创建雪花管道,管道名称必须是有效的SQL标识符。

连接器为每个主题分区创建一个管道。名字是:

SNOWFLAKE_KAFKA_CONNECTOR_管道_。

同样来自同一doc page 在“配置文件中的字段”的名称:

应用程序名称。这在客户使用的所有 Kafka 连接器中必须是唯一的。此名称 name 必须是有效的 Snowflake 不带引号的标识符。

如果主题中有一个破折号,那么它需要映射到一个表名,该表名也是连接器配置中的正确 SQL 标识符,否则它将尝试创建与主题名相同的表名,并且名称中的“-”失败。

【讨论】:

    【解决方案2】:

    您需要更改连接器的名称 (source-snow) 以从中删除 -(使其与 this validation pattern 匹配)。

    ?‍♂️

    【讨论】:

      【解决方案3】:

      您需要在您的配置文件中有以下条目,在主题条目下方。

      “主题”:“tp-snow-test”,

      "snowflake.topic2table.map": "tp-snow-test:TestKafkaTable",

      【讨论】:

        猜你喜欢
        • 2021-11-04
        • 1970-01-01
        • 2021-11-17
        • 2020-10-11
        • 2021-08-14
        • 2021-05-31
        • 2019-03-31
        • 1970-01-01
        • 2020-03-28
        相关资源
        最近更新 更多