Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Типовое обслуживание
Секционирование
Резервное копирование и восстановление
Масштабирование
Мониторинг
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Потоковая передача
Восстановление после сбоев
Конфигурация
Индексы
Расширения
Справочник по 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;