Подключение AWS Glue к SQL Server

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