Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Типовое обслуживание
Секционирование
Резервное копирование и восстановление
Масштабирование
Мониторинг
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Конфигурация
Индексы
Расширения
Справочник по SQL
Часто задаваемые вопросы
В этом примере показано, как подключиться к SQL Server 2016 с использованием PXF.
sudo yum install pxf-matrixdb3-5.16.1-1.el7.x86_64.rpm -y
sudo mkdir /usr/local/pxfconf
sudo chown mxadmin.mxadmin -R /usr/local/pxfconf
sudo chown mxadmin.mxadmin -R /usr/local/pxf-matrixdb4
export PXF_HOME=/usr/local/pxf-matrixdb4
export PXF_CONF=/usr/local/pxfconf
export PATH=$PXF_HOME/bin:$PATH
cd $PXF_CONF/servers
mkdir sqlserv_server
Инициализация PXF:
pxf cluster init
Скачайте драйвер JDBC по ссылке:
https://docs.microsoft.com/en-us/sql/connect/jdbc/using-the-jdbc-driver?view=sql-server-ver15
Файл: sqljdbc4.jar
Скопируйте драйвер JDBC в каталог библиотек PXF (требуется на всех узлах):
cp sqljdbc4.jar $PXF_CONF/lib
Синхронизируйте конфигурацию на всех узлах кластера:
pxf cluster sync
Запустите службы PXF на всех узлах:
pxf cluster start
Проверьте состояние кластера:
pxf cluster status
Создайте расширение:
postgres=# CREATE EXTENSION pxf_fdw ;
CREATE EXTENSION
Определите внешний сервер:
DROP SERVER sqlserv_server CASCADE;
CREATE SERVER sqlserv_server FOREIGN DATA WRAPPER jdbc_pxf_fdw OPTIONS (
jdbc_driver 'com.microsoft.sqlserver.jdbc.SQLServerDriver',
db_url 'jdbc:sqlserver://{ip}:{port};databaseName={database_name}',
batch_size '10000',
fetch_size '2000'
);
Создайте отображение пользователя:
CREATE USER MAPPING FOR mxadmin SERVER sqlserv_server OPTIONS (user '{username}', pass '{password}');
Создайте внешнюю таблицу:
CREATE FOREIGN TABLE foreign_sqlserver (
id int4,
banzu varchar(20),
banzu_name varchar(50),
realdate timestamp
)
SERVER sqlserv_server
OPTIONS (resource '{source_database_schema.table_name}');
Выполните запрос данных из SQL Server через внешнюю таблицу:
SELECT * FROM foreign_sqlserver LIMIT 10;