- Подключение к источнику данных PostgreSQL (мастер импорта и экспорта SQL Server) Connect to a PostgreSQL Data Source (SQL Server Import and Export Wizard)
- Получение драйвера ODBC для PostgreSQL Get the PostgreSQL ODBC driver
- Установка драйвера ODBC с помощью построителя стека Install the ODBC driver with Stack Builder
- Скачивание последней версии драйвера ODBC Or, download the latest ODBC driver
- Подключение к PostgreSQL с помощью драйвера ODBC для PostgreSQL (psqlODBC) Connect to PostgreSQL with the PostgreSQL ODBC driver (psqlODBC)
- Указываемые параметры (драйвер ODBC для PostgreSQL) Options to specify (PostgreSQL ODBC driver)
- Формат строки подключения Connection string format
- Ввод строки подключения Enter the connection string
- Другие поставщики данных и дополнительные сведения Other data providers and more info
- Перенос базы данных PostgreSQL с помощью экспорта и импорта Migrate your PostgreSQL database using export and import
- Предварительные требования Prerequisites
- Создание файла сценария, содержащего загружаемые данные, с помощью pg_dump Create a script file using pg_dump that contains the data to be loaded
- Импорт данных в целевую базу данных Azure для PostrgeSQL Import the data on target Azure Database for PostgreSQL
- Интеграция PostgreSQL с MS SQL Server
- Установка и настройка tds_fdw
- Импорт определения таблиц с MS SQL Server
Подключение к источнику данных PostgreSQL (мастер импорта и экспорта SQL Server) Connect to a PostgreSQL Data Source (SQL Server Import and Export Wizard)
Применимо к: Applies to: SQL Server SQL Server (все поддерживаемые версии) SQL Server SQL Server (all supported versions) Azure-SSIS Integration Runtime в Фабрике данных Azure SSIS Integration Runtime in Azure Data Factory Azure-SSIS Integration Runtime в Фабрике данных Azure SSIS Integration Runtime in Azure Data Factory Применимо к: Applies to: SQL Server SQL Server (все поддерживаемые версии) SQL Server SQL Server (all supported versions) Azure-SSIS Integration Runtime в Фабрике данных Azure SSIS Integration Runtime in Azure Data Factory Azure-SSIS Integration Runtime в Фабрике данных Azure SSIS Integration Runtime in Azure Data Factory
В этом разделе показано, как подключаться к источникам данных PostgreSQL со страницы Выбор источника данных или Выбор назначения в мастере импорта и экспорта SQL Server. This topic shows you how to connect to a PostgreSQL data source from the Choose a Data Source or Choose a Destination page of the SQL Server Import and Export Wizard.
Подробные требования и необходимые условия для подключения к базе данных PostgreSQL выходят за рамки этой статьи Майкрософт. The detailed requirements and prerequisites for connecting to a PostgreSQL database are beyond the scope of this Microsoft article. В ней предполагается, что у вас уже установлено клиентское программное обеспечение PostgreSQL и вы можете успешно подключиться к целевой базе данных PostgreSQL. This article assumes that you already have PostgreSQL client software installed and that you can already connect successfully to the target PostgreSQL database. Для получения дополнительных сведений обратитесь к администратору базы данных PostgreSQL или к документации по PostgreSQL. For more info, consult your PostgreSQL database administrator or the PostgreSQL documentation.
Получение драйвера ODBC для PostgreSQL Get the PostgreSQL ODBC driver
Установка драйвера ODBC с помощью построителя стека Install the ODBC driver with Stack Builder
Запустите построитель стека, чтобы добавить драйвер ODBC для PostgreSQL (psqlODBC) в вашу установку PostgreSQL. Run Stack Builder to add the PostgreSQL ODBC driver (psqlODBC) to your installation of PostgreSQL.
Скачивание последней версии драйвера ODBC Or, download the latest ODBC driver
Или скачайте установщик Windows для последней версии драйвера ODBC для PostgreSQL (psqlODBC) прямо с этого FTP-сайта — https://www.postgresql.org/ftp/odbc/versions/msi/. Or, download the Windows installer for the latest version of the PostgreSQL ODBC driver (psqlODBC) directly from this FTP site — https://www.postgresql.org/ftp/odbc/versions/msi/. Извлеките содержимое ZIP-файла и запустите файл MSI. Extract the files from the .zip file and run the .msi file.
Подключение к PostgreSQL с помощью драйвера ODBC для PostgreSQL (psqlODBC) Connect to PostgreSQL with the PostgreSQL ODBC driver (psqlODBC)
Драйверы ODBC не приводятся в раскрывающемся списке источников данных. ODBC drivers aren’t listed in the drop-down list of data sources. Чтобы подключиться с помощью драйвера ODBC, сначала выберите поставщик данных .NET Framework для ODBC в качестве источника данных на странице Выбор источника данных или Выбор назначения. To connect with an ODBC driver, start by selecting the .NET Framework Data Provider for ODBC as the data source on the Choose a Data Source or Choose a Destination page. Этот поставщик служит оболочкой для драйвера ODBC. This provider acts as a wrapper around the ODBC driver.
Ниже показан экран, который появляется сразу после выбора поставщика данных .NET Framework для ODBC. Here’s the generic screen that you see immediately after selecting the .NET Framework Data Provider for ODBC.
Указываемые параметры (драйвер ODBC для PostgreSQL) Options to specify (PostgreSQL ODBC driver)
Параметры подключения для этого поставщика данных и драйвера ODBC одинаковы независимо от того, является ли PostgreSQL источником или назначением. The connection options for this data provider and ODBC driver are the same whether PostgreSQL is your source or your destination. Таким образом, на страницах Выбор источника данных и Выбор назначения мастера отображаются одинаковые параметры. That is, the options you see are the same on both the Choose a Data Source and the Choose a Destination pages of the wizard.
Чтобы подключиться к PostgreSQL с помощью драйвера ODBC для PostgreSQL, соберите строку подключения, используя указанные ниже параметры и их значения. To connect to PostgreSQL with the PostgreSQL ODBC driver, assemble a connection string that includes the following settings and their values. Полный формат строки подключения приведен после списка параметров. The format of a complete connection string immediately follows the list of settings.
Вы можете получить помощь в построении строки подключения. Get help assembling a connection string that’s just right. Кроме того, вместо указания строки подключения вы можете предоставить существующее имя DSN (имя источника данных) или создать новое. Or, instead of providing a connection string, provide an existing DSN (data source name) or create a new one. Дополнительные сведения об этих возможностях см. в разделе Подключение к источнику данных ODBC. For more info about these options, see Connect to an ODBC Data Source.
Драйвер Driver
Имя драйвера ODBC — PostgreSQL ODBC Driver(UNICODE) или PostgreSQL ODBC Driver(ANSI). The name of the ODBC driver — either PostgreSQL ODBC Driver(UNICODE) or PostgreSQL ODBC Driver(ANSI).
Server Server
Имя сервера PostgreSQL. The name of the PostgreSQL server.
порт. Port
Порт, используемый для подключения к серверу PostgreSQL. The port to use to connect to the PostgreSQL server.
База данных Database
Имя базы данных PostgreSQL. The name of the PostgreSQL database.
Uid и Pwd Uid and Pwd
Uid (идентификатор пользователя) и Pwd (пароль) для подключения. The Uid (user id) and Pwd (password) to connect.
Формат строки подключения Connection string format
Ниже приведен формат типичной строки подключения. Here’s the format of a typical connection string.
Ввод строки подключения Enter the connection string
Введите строку подключения в поле ConnectionString либо введите имя DSN в поле Dsn на странице Выбор источника данных или Выбор назначения. Enter the connection string in the ConnectionString field, or enter the DSN name in the Dsn field, on the Choose a Data Source or Choose a Destination page. После того как вы введете строку подключения, мастер проанализирует ее и отобразит отдельные свойства и их значения в списке. After you enter the connection string, the wizard parses the string and displays the individual properties and their values in the list.
В приведенном ниже примере используется следующая строка подключения: The following example uses this connection string.
Ниже показан экран, который появляется после ввода строки подключения. Here’s the screen that you see after entering the connection string.
Другие поставщики данных и дополнительные сведения Other data providers and more info
Сведения о подключении к PostgreSQL с помощью поставщика данных, не представленного в этом списке, см. в разделе Строки подключения PostgreSQL. For info about how to connect to PostgreSQL with a data provider that’s not listed here, see PostgreSQL connection strings. Этот сторонний сайт также содержит дополнительные сведения о поставщиках данных и параметрах подключения, описанных на этой странице. This third-party site also contains more info about the data providers and the connection parameters described on this page.
Перенос базы данных PostgreSQL с помощью экспорта и импорта Migrate your PostgreSQL database using export and import
ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для PostgreSQL — отдельный сервер
База данных Azure для PostgreSQL — гибкий сервер
Можно извлечь базу данных PostgreSQL в файл сценария с помощью pg_dump и импортировать данные из этого файла в целевую базу данных с помощью psql. You can use pg_dump to extract a PostgreSQL database into a script file and psql to import the data into the target database from that file.
Предварительные требования Prerequisites
Прежде чем приступить к выполнению этого руководства, необходимы следующие компоненты: To step through this how-to guide, you need:
- сервер базы данных Azure для PostgreSQL с правилами брандмауэра, разрешающими доступ к этом серверу и его базам данных; An Azure Database for PostgreSQL server with firewall rules to allow access and database under it.
- установленная программа командной строки pg_dump; pg_dump command-line utility installed
- установленная программа командной строки psql. psql command-line utility installed
Выполните приведенные ниже действия, чтобы экспортировать и импортировать базу данных PostgreSQL. Follow these steps to export and import your PostgreSQL database.
Создание файла сценария, содержащего загружаемые данные, с помощью pg_dump Create a script file using pg_dump that contains the data to be loaded
Чтобы экспортировать имеющуюся базу данных PostgreSQL в локальную среду или на виртуальную машину в виде файла сценария SQL, выполните следующую команду: To export your existing PostgreSQL database on-premises or in a VM to a sql script file, run the following command in your existing environment:
Например, если в нем есть локальный сервер и база данных с именем TestDB : For example, if you have a local server and a database called testdb in it:
Импорт данных в целевую базу данных Azure для PostrgeSQL Import the data on target Azure Database for PostgreSQL
Вы можете использовать командную строку psql с параметром —dbname (-d), чтобы импортировать данные в базу данных Azure для сервера PostrgeSQL и загрузить данные из SQL-файла. You can use the psql command line and the —dbname parameter (-d) to import the data into the Azure Database for PostgreSQL server and load data from the sql file.
В этом примере используется программа psql и файл сценария testdb.sql из предыдущего шага, чтобы импортировать данные в базу данных mypgsqldb на целевом сервере mydemoserver.postgres.database.azure.com. This example uses psql utility and a script file named testdb.sql from previous step to import data into the database mypgsqldb on the target server mydemoserver.postgres.database.azure.com.
Для одного сервера используйте эту команду. For Single Server, use this command
Для гибкого сервера используйте эту команду. For Flexible Server, use this command
Интеграция PostgreSQL с MS SQL Server
В предыдущей статье мой коллега Дмитрий Васильев описал настройку интеграции PostgreSQL с MySQL и описал, как более эффективно выполнять некоторые запросы.
В этой статье я хотел бы описать настройку подключения PostgreSQL, работающего под управлением Linux, к MS SQL Server. А также, как импортировать все таблицы определенной схемы базы данных MS SQL Server в PostgreSQL без описания структуры каждой таблицы.
Установка и настройка tds_fdw
Для интеграции PostgreSQL и MS SQL Server используется tds_fdw. Этот модуль общается с базой данных через протокол TDS (Tabular Data Stream). TDS используется такими СУБД, как MS SQL Server и Sybase SQL Server.
Прежде чем собирать и устанавливать tds_fdw, необходимо установить библиотеку FreeTDS. Для Ubuntu это пакеты freetds-dev и freetds-common:
Далее скачиваем и собираем tds_fdw (для сборки нам также понадобится установленный PostgreSQL и pg_config в переменной окружения PATH):
Перед использованием tds_fdw необходимо настроить FreeTDS. Настройка FreeTDS для подключения к MS SQL Server выполняется с помощью файла /etc/freetds/freetds.conf. Например, добавим такое содержимое:
Теперь мы можем создать необходимые объекты в PostgreSQL:
Здесь, mssql01 — название сервера в freetds.conf, pguser — пользователь PostgreSQL, msuser — пользователь MS SQL Server.
После этого мы бы могли создать для каждой таблицы MS SQL Server внешнюю таблицу в PostgreSQL. Но вместо этого мы можем использовать команду IMPORT FOREIGN SCHEMA .
Импорт определения таблиц с MS SQL Server
Команда IMPORT FOREIGN SCHEMA была реализована в PostgreSQL 9.5. Его поддержку реализовали такие обертки сторонних данных, как oracle_fdw, mysql_fdw. Но не было поддержки у tds_fdw.
Для одного из наших проектов также необходима была поддержка этой команды со стороны tds_fdw. Нами команда была реализована и был создан pull request. Разработчики радостно его приняли в тот же день. Перед этим они за пару часов исправили скрипты для тестирования, которые реализованы на Python, т.к. тесты выполняются для PostgreSQL 9.2, 9.3, 9.4 и 9.5. Но команда IMPORT FOREIGN SCHEMA была добавлена только в версии 9.5.
Теперь мы можем выполнить такую команду:
Схемы msschema01 и pgschema01 уже должны существовать. Команда принимает следующие опции:
- import_default — добавлять или нет выражение DEFAULT при описании столбцов таблиц (по умолчанию, false).
- import_not_null — добавлять или нет ограничение NOT NULL при описании столбцов таблиц (по умолчанию, true).
При импорте описания столбцов таблиц используется следующее сопоставление типов:
Тип MS SQL Server | Тип PostgreSQL |
---|
Таким образом миграция данных с использованием tds_fdw стала намного проще, не нужно импортировать каждую таблицу отдельно.
Спасибо за внимание!
UPDATE Обновилась таблица сопоставления типов. Теперь типы rowversion и timestamp MS SQL Server соответствуют типу bytea PostgreSQL (см. коммит).