2
votes

Le nom SF_KAFKA_CONNECTOR est vide ou erreur non valide à l'aide du connecteur Confluent Cloud et Snowflake Kafka

J'ai un cluster fonctionnant dans Confluent Cloud et je suis capable de produire et de consommer des données à l'aide d'autres applications. Cependant, lorsque j'essaye de connecter le connecteur Snowflake Kafka, je reçois les erreurs suivantes:

{
  "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"
   }
}

Voici mon fichier de configuration Snowflake nettoyé:

[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)

Des idées? Merci.


2 commentaires

Avez-vous snowflake.topic2table.map dans votre fichier de configuration?


@sdmgill est-ce que l'une de ces solutions vous a aidé?


3 Réponses :


0
votes

Vous devez changer le nom de votre connecteur ( source-snow ) pour supprimer le - de celui-ci (afin qu'il corresponde à 0 commentaires


0
votes

Le nom du connecteur doit être un identifiant SQL valide pour Snowflake. De nombreux exemples de sujets kafka contiennent des tirets que lorsque j'ai essayé le connecteur Snowflake Kafka pour la première fois, j'ai eu la même erreur.

Selon la documentation , un tuyau Snowflake est créé à l'aide du nom_connecteur spécifié et les noms de canaux doivent être des identificateurs SQL valides.

Le connecteur crée un tube pour chaque partition de rubrique. Le nom est:

SNOWFLAKE_KAFKA_CONNECTOR_ TUYAU _.

Également du même page doc à "Champs dans le fichier de configuration" pour le nom:

Nom de l'application. Cela doit être unique pour tous les connecteurs Kafka utilisés par le client. Ce nom doit être un identifiant Snowflake valide sans guillemets.

Si le sujet contient un tiret, il devra être mappé à un nom de table qui est également un identifiant SQL approprié dans la configuration de votre connecteur, sinon il essaiera de créer le nom de la table comme le même que le nom du sujet et échouer sur le "-" dans le nom.


0 commentaires

0
votes

Vous devez avoir l'entrée ci-dessous dans votre fichier de configuration, sous l'entrée des rubriques.

"topics": "tp-snow-test",

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


0 commentaires