![]() |
VOOZH | about |
There are a vast number of PostgreSQL clients available on the Internet. PostgreSQL is a popular interface for data access. When you pair PostgreSQL with CData Connect AI, you gain database-like access to live Zuora data from PostgreSQL. In this article, we walk through the process of connecting to Zuora data in Connect AI and establishing a connection between Connect AI and PostgreSQL using a TDS foreign data wrapper (FDW).
CData Connect AI provides a pure SQL Server interface for Zuora, allowing you to query data from Zuora without replicating the data to a natively supported database. Using optimized data processing out of the box, CData Connect AI pushes all supported SQL operations (filters, JOINs, etc.) directly to Zuora, leveraging server-side processing to return the requested Zuora data quickly.
CData Connect AI uses a straightforward, point-and-click interface to connect to data sources.
Zuora uses the OAuth standard to authenticate users. See the online Help documentation for a full OAuth authentication guide.
In order to create a valid connection with the provider you need to choose one of the Tenant values (USProduction by default) which matches your account configuration. The following is a list with the available options:
Two Zuora services are available: Data Query and AQuA API. By default ZuoraService is set to AQuADataExport.
The Data Query feature enables you to export data from your Zuora tenant by performing asynchronous, read-only SQL queries. We recommend to use this service for quick lightweight SQL queries.
LimitationsAQuA API export is designed to export all the records for all the objects ( tables ). AQuA query jobs have the following limitations:
LimitationsWhen connecting to Connect AI through the REST API, the OData API, or the Virtual SQL Server, a Personal Access Token (PAT) is used to authenticate the connection to Connect AI. It is best practice to create a separate PAT for each service to maintain granularity of access.
With the connection configured and a PAT generated, you are ready to connect to Zuora data from PostgreSQL.
The Foreign Data Wrapper can be installed as an extension to PostgreSQL, without recompiling PostgreSQL. The tds_fdw extension is used as an example (https://github.com/tds-fdw/tds_fdw).
sudo apt-get install git git clone https://github.com/tds-fdw/tds_fdw.git cd tds_fdw make USE_PGXS=1 sudo make USE_PGXS=1 installNote: If you have several PostgreSQL versions and you do not want to build for the default one, first locate where the binary for pg_config is, take note of the full path, and then append PG_CONFIG=
sudo service postgresql start
psql -h localhost -U postgres -d postgresNote: Instead of localhost you can put the IP where your PostgreSQL is hosted.
After you have installed the extension, follow the steps below to start executing queries to Zuora data:
CREATE EXTENSION tds_fdw;
CREATE SERVER "Zuora1" FOREIGN DATA WRAPPER tds_fdw OPTIONS (servername'tds.cdata.com', port '14333', database 'Zuora1');
CREATE USER MAPPING for postgres SERVER "Zuora1" OPTIONS (username '[email protected]', password 'your_personal_access_token' );
CREATE SCHEMA "Zuora1";
#Using a table_name definition: CREATE FOREIGN TABLE "Zuora1".Invoices ( id varchar, BillingCity varchar) SERVER "Zuora1" OPTIONS(table_name 'Zuora.Invoices', row_estimate_method 'showplan_all'); #Or using a schema_name and table_name definition: CREATE FOREIGN TABLE "Zuora1".Invoices ( id varchar, BillingCity varchar) SERVER "Zuora1" OPTIONS (schema_name 'Zuora', table_name 'Invoices', row_estimate_method 'showplan_all'); #Or using a query definition: CREATE FOREIGN TABLE "Zuora1".Invoices ( id varchar, BillingCity varchar) SERVER "Zuora1" OPTIONS (query 'SELECT * FROM Zuora.Invoices', row_estimate_method 'showplan_all'); #Or setting a remote column name: CREATE FOREIGN TABLE "Zuora1".Invoices ( id varchar, col2 varchar OPTIONS (column_name 'BillingCity')) SERVER "Zuora1" OPTIONS (schema_name 'Zuora', table_name 'Invoices', row_estimate_method 'showplan_all');
SELECT id, BillingCity FROM "Zuora1".Invoices;
Now, you have created a simple query from live Zuora data. For more information on connecting to Zuora (and more than 200 other data sources), visit the Connect AI page. Sign up for a free trial and start working with live Zuora data in PostgreSQL.
Learn more about CData Connect AI or sign up for free trial access:
Free Trial