YMatrix
Quick Start
Connecting
Benchmarks
Deployment
Data Usage
Manage Clusters
Upgrade
Global Maintenance
Expansion
Monitoring
Security
Best Practice
Technical Principles
Data Type
Storage Engine
Execution Engine
Streaming Engine(Domino)
MARS3 Index
Extension
Advanced Features
Advanced Query
Federal Query
Grafana
Backup and Restore
Disaster Recovery
Guide
Performance Tuning
Troubleshooting
Tools
Configuration Parameters
SQL Reference
This example demonstrates how to connect to SQL Server 2016 using 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
Initialize PXF:
pxf cluster init
Download the JDBC driver from:
https://docs.microsoft.com/en-us/sql/connect/jdbc/using-the-jdbc-driver?view=sql-server-ver15
File: sqljdbc4.jar
Copy the JDBC driver to the PXF library directory (required on all nodes):
cp sqljdbc4.jar $PXF_CONF/lib
Synchronize configuration to all cluster nodes:
pxf cluster sync
Start PXF services on all nodes:
pxf cluster start
Check cluster status:
pxf cluster status
Create the extension:
postgres=# CREATE EXTENSION pxf_fdw ;
CREATE EXTENSION
Define the foreign server:
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 a user mapping:
CREATE USER MAPPING FOR mxadmin SERVER sqlserv_server OPTIONS (user '{username}', pass '{password}');
Create a foreign table:
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}');
Query data from SQL Server through the foreign table:
SELECT * FROM foreign_sqlserver LIMIT 10;