Kafka connect Debezium Postgres Cloud SQL

Я пытаюсь подключиться к Postgres Cloud SQL с помощью коннектора Debezium Postgres. И я получаю в журналах следующую ошибку.

connect_1    | org.apache.kafka.connect.errors.ConnectException: org.postgresql.util.PSQLException: FATAL: must be superuser or replication role to start walsender
connect_1    |  at io.debezium.connector.postgresql.PostgresConnectorTask.start(PostgresConnectorTask.java:127)

Мне пришло в голову, что мне нужно добавить REPLICATION к моей роли пользователя. Однако в документации CloudSQL говорится следующее.

Когда вы создаете новый экземпляр Cloud SQL для PostgreSQL, пользователь postgres по умолчанию уже создается для вас, хотя вы должны установить его пароль. Пользователь postgres является частью роли cloudqlsuperuser и имеет следующие атрибуты (привилегии): CREATEROLE, CREATEDB и LOGIN. У него нет атрибутов SUPERUSER или REPLICATION.

Теперь из-за этого я не могу ALTER ROLE, чтобы добавить REPLICATION

ps: экземпляр облачного SQL настроен для обеспечения высокой доступности.


person Amit Basuri    schedule 19.10.2019    source источник
comment
Google Cloud SQL - это управляемая служба. Вы не получаете этих прав. Если они требуются вашему приложению, вам нужно будет развернуть собственный PostgreSQL на Compute Engine. Убедитесь, что вам действительно нужны эти роли. В 99% случаев вы этого не делаете.   -  person John Hanley    schedule 20.10.2019


Ответы (1)


Для Debezium требуется расширение Postgres wal2json, которое в настоящее время не поддерживается Cloud SQL. Сейчас выполняется запрос функции для этого вы можете проверить. Вам нужно будет настроить Postgresql на GCE и установить там Debezium.

Если это поможет, примите ответ

person Jayadeep Jayaraman    schedule 20.10.2019
comment
Спасибо за ответ. Я вижу следующее примечание из документации. Начиная с Debezium 0.10, коннектор поддерживает потоковую логическую репликацию PostgreSQL 10+ с использованием pgoutput. Это означает, что дополнительный модуль вывода логического декодирования больше не нужен, и изменения могут быть отправлены непосредственно из потока репликации через соединитель. - person Amit Basuri; 20.10.2019
comment
Это правильно, и существует внутренний запрос функции на внесение изменений, позволяющих не суперпользователям включить репликацию. Как только функция будет реализована, вы сможете включить репликацию. Надеюсь, это поможет. - person Jayadeep Jayaraman; 21.10.2019