#sql-server #amazon-web-services #aws-glue
#sql-сервер #amazon-веб-сервисы #aws-glue
Вопрос:
Для проекта мне нужно переместить данные с SQL Server в AWS Redshift.
Для процесса ETL я хотел бы использовать AWS glue и подключиться к своему источнику (SQL Server), но при тестировании соединения я всегда получаю следующее сообщение об ошибке
Убедитесь, что определение подключения ссылается на вашу базу данных JDBC с правильным синтаксисом URL, именем пользователя и паролем. Произошел сбой TCP/ IP-соединения с хостом, порт 1433. Ошибка: «Время ожидания подключения истекло: дополнительной информации нет. Проверьте свойства подключения. Убедитесь, что экземпляр SQL Server запущен на хосте и принимает соединения TCP / IP через порт. Убедитесь, что TCP-соединения с портом не заблокированы брандмауэром
Порт правильно открыт на моем сервере и прошел проверку с помощью других инструментов (к нему могут подключаться PowerBI и SQL Workbench)
Вот используемая строка подключения :
jdbc:sqlserver://host:1433;databaseName=AdventureWorksDW2012
Я не уверен, в чем проблема на данный момент
если у кого-нибудь есть объяснение, спасибо, что поделились
Спасибо!
Комментарии:
1. Пытались ли вы выполнить telnet, запустив компьютер EC2 в той же подсети, где вы пытаетесь создать соединение Glue?
2. также это должно помочь aws.amazon.com/premiumsupport/knowledge-center /…
3. Привет, @PrabhakarReddy, спасибо за ответ! Нужен ли мне шлюз NAT для разрешения такого подключения?
4. нет, вам не нужен шлюз NAT. убедитесь, что вы следуете docs.aws.amazon.com/glue/latest/dg /…
5. @PrabhakarReddy Я следовал этому руководству, чтобы получить доступ к исходному исходному коду, но это не сработало aws.amazon.com/blogs/big-data /…
Ответ №1:
У меня была такая же проблема при попытке подключиться к встроенному серверу sqlserver и переместить данные в корзину s3. Странным было то, что мой поисковый робот glue и соединение работали, как и другие приложения, использующие драйверы JDBC, поэтому определенно не было проблемой брандмауэра. Я изменил версию glue в сведениях о задании с «Spark 2.4, Python 3 с улучшенным временем запуска заданий (версия Glue 2)» на «Spark 2.4, версия Glue Python 2 1». Это исправило это для меня. Я не пробовал использовать какие-либо другие версии. Я думаю, что это может быть ошибкой и возникло при поддержке AWS.
Ответ №2:
У меня есть аналогичный код в моей работе по склеиванию
jdbcDF = spark.read.format("jdbc")
.option("url", "jdbc:sqlserver://sqlserverip:1433;databaseName=databasename")
.option("dbtable", "sqltable")
.option("user", "username")
.option("password", "password")
.option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver")
.load()
Вы настроили VPC для подключения к вашему SQL Server с помощью AWS Glue?
Комментарии:
1. Мне пришлось настроить свой VPC да, но в итоге я использовал другой метод (команда копирования Redshift)