Кафка соединяется с CockroachDB - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь использовать CockroachDB (v2.0.6) в качестве приемника для одной из моих тем Kafka.

Мне не удалось найти какой-либо соединитель Kafka специально для CockroachDB, поэтому я решил использовать jdbcконнектор приемника от Confluent, поскольку CockroachDB поддерживает синтаксис postgreSQL.

Строка подключения, которую я использую в Kafka Connect, выглядит следующим образом:

"connection.url": "jdbc:postgresql://roach1:26257/mydb?sslmode=disable"

, что по сути является единственным, что я изменил на существующей рабочейРазъем приемника Postgres.

К сожалению, я не смог заставить его работать, так как соединитель выходит из строя с ошибкой

Caused by: org.apache.kafka.connect.errors.ConnectException: java.sql.SQLException: org.postgresql.util.PSQLException: ERROR: syntax error at or near "."
  Detail: source SQL:
SELECT NULL AS TABLE_CAT, n.nspname AS TABLE_SCHEM,   ct.relname AS TABLE_NAME, a.attname AS COLUMN_NAME,   (i.keys).n AS KEY_SEQ, ci.relname AS PK_NAME FROM pg_catalog.pg_class ct   JOIN pg_catalog.pg_attribute a ON (ct.oid = a.attrelid)   JOIN pg_catalog.pg_namespace n ON (ct.relnamespace = n.oid)   JOIN (SELECT i.indexrelid, i.indrelid, i.indisprimary,              information_schema._pg_expandarray(i.indkey) AS keys         FROM pg_catalog.pg_index i) i     ON (a.attnum = (i.keys).x AND a.attrelid = i.indrelid)   JOIN pg_catalog.pg_class ci ON (ci.oid = i.indexrelid) WHERE true  AND ct.relname = 'my_topic' AND i.indisprimary  ORDER BY table_name, pk_name, key_seq
    at io.confluent.connect.jdbc.sink.JdbcSinkTask.put(JdbcSinkTask.java:88)
    at org.apache.kafka.connect.runtime.WorkerSinkTask.deliverMessages(WorkerSinkTask.java:564)
    ... 10 more
Caused by: java.sql.SQLException: org.postgresql.util.PSQLException: ERROR: syntax error at or near "."
  Detail: source SQL:
SELECT NULL AS TABLE_CAT, n.nspname AS TABLE_SCHEM,   ct.relname AS TABLE_NAME, a.attname AS COLUMN_NAME,   (i.keys).n AS KEY_SEQ, ci.relname AS PK_NAME FROM pg_catalog.pg_class ct   JOIN pg_catalog.pg_attribute a ON (ct.oid = a.attrelid)   JOIN pg_catalog.pg_namespace n ON (ct.relnamespace = n.oid)   JOIN (SELECT i.indexrelid, i.indrelid, i.indisprimary,              information_schema._pg_expandarray(i.indkey) AS keys         FROM pg_catalog.pg_index i) i     ON (a.attnum = (i.keys).x AND a.attrelid = i.indrelid)   JOIN pg_catalog.pg_class ci ON (ci.oid = i.indexrelid) WHERE true  AND ct.relname = 'collect_flow_tracking' AND i.indisprimary  ORDER BY table_name, pk_name, key_seq 

Так что мой вопрос: кто-нибудь успешно использовал Kafka Connect с CockroachDB?Также есть ли у кого-нибудь указатели на эту ошибку (что ее вызывает) и как ее обойти и заставить это работать?

1 Ответ

0 голосов
/ 02 октября 2018

PM Таракана здесь.Похоже, что проблема заключается в неподдерживаемом запросе самоанализа базы данных, выполняемом соединителем Kafka Connect Postgres.Хорошей новостью является то, что этот конкретный запрос, похоже, поддерживается CockroachDB 2.1.Можете ли вы попробовать еще раз, используя последнюю бета-версию CockroachDB ?

...