Как вытащить данные из aws rds postgresql, используя kafka локально? - PullRequest
0 голосов
/ 07 января 2019

У меня есть сервер базы данных postgresql на aws. Я настроил кластер Kafka на одном узле на моей локальной машине и хочу получить данные с сервера базы данных postgresql. я использовал разъем источника jdbc вот конфигурация (изменил фактические значения)

name=test-source-postgresql-jdbc-01
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=1
key.converter=io.confluent.connect.avro.AvroConverter
key.converter.schema.registry.url=http://localhost:8081
connection.url=jdbc:postgresql://hostname:5432/dbname? 
user=abc&password=pwd
connection.user=abc
connection.password=pwd
table.whitelist=abc1
mode=timestamp
timestamp.column.name=timestamp
topic.prefix=test-postgresql-

и получение следующей ошибки при запуске

ERROR Failed to create job for etc/kafka-connect-jdbc/quickstart-postgresql.properties (org.apache.kafka.connect.cli.ConnectStandalone:102)
ERROR Stopping after connector error (org.apache.kafka.connect.cli.ConnectStandalone:113)
java.util.concurrent.ExecutionException: org.apache.kafka.connect.runtime.rest.errors.BadRequestException: Connector 
configuration is invalid and contains the following 2 error(s):
Invalid value org.postgresql.util.PSQLException: Connection to hostname:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections. for configuration Couldn't open connection to jdbc:postgresql://abc:5432/dbname?user=abc&password=pwd

curl localhost: 8083 / connector-plugins Пожалуйста, нажмите на ссылку

ls share / java / kafka-connect-jdbc -l Пожалуйста, нажмите на ссылку

Буду признателен за любую помощь!

1 Ответ

0 голосов
/ 09 января 2019

Как вы упомянули, вы подключаетесь к RDS через SSH-туннель. Я не думаю, что вы можете настроить соединитель Kafka JDBC для туннелирования через SSH автоматически, но вы можете создать туннель SSH вручную, а затем настроить соединитель Kafka для подключения к RDS через этот туннель - подробное описание здесь .

Следуя вашей конфигурации, вы можете создать SSH-туннель с помощью команды

ssh -N -L 5432:rds.hostname:5432 uername@ec2instnace.com -i ~/.ssh/your_key

Вы можете проверить соединение с БД, используя:

psql -h localhost -p 5432

И ваша конфигурация коннектора будет

connection.url=jdbc:postgresql://localhost:5432/dbname?user=abc&password=pwd
...