Skip to content

Предварительные требования

Совместимость версий

  • Версии SQL Server:
  • Официально заявленные: 2016 - 2022
  • Фактически протестированные: 2017, 2022
  • Версии Spark: 2.3.x - 3.5.x
  • Версии Java: 8 - 20

См. официальную документацию и официальную матрицу совместимости.

Установка PySpark

Для использования коннектора MSSQL у вас должен быть установлен PySpark (или добавлен в sys.path) ДО создания экземпляра коннектора.

См. инструкцию по установке для получения дополнительной информации.

Подключение к MSSQL

Порт подключения

Подключение обычно выполняется через порт 1433. Порт может отличаться для разных экземпляров MSSQL. Пожалуйста, обратитесь к администратору MSSQL для получения необходимой информации.

Для именованных экземпляров MSSQL (опция instanceName), номер порта необязателен и может быть опущен.

Хост подключения

Можно подключиться к MSSQL, используя либо DNS-имя хоста, либо его IP-адрес.

Если вы используете кластер MSSQL, в настоящее время возможно подключение только к одному конкретному узлу. Подключение к нескольким узлам для балансировки нагрузки, а также автоматическое переключение на новый master/replica не поддерживаются.

Необходимые разрешения

Попросите администратора кластера MSSQL установить следующие разрешения для пользователя, используемого для создания соединения:

    -- разрешить создание таблиц для пользователя
    GRANT CREATE TABLE TO username;

    -- разрешить доступ на чтение и запись к определенной таблице
    GRANT SELECT, INSERT ON username.mytable TO username;

    -- только если используется if_exists="replace_entire_table":
    -- разрешить удаление/очистку таблиц в любой схеме
    GRANT ALTER ON username.mytable TO username;
    -- разрешить создание таблиц для пользователя
    GRANT CREATE TABLE TO username;

    -- разрешить управление таблицами в определенной схеме и вставку данных в таблицы
    GRANT ALTER, SELECT, INSERT ON SCHEMA::someschema TO username;
    -- разрешить доступ на чтение к определенной таблице
    GRANT SELECT ON someschema.mytable TO username;

Более подробную информацию можно найти в официальной документации: