Reading OData data in SQL Server using ZappySys Data Gateway
This section covers steps for setting up OData Connector in the ZappySys Data Gateway data source (based on API Driver) to read OData data in SQL Server:
Create Data Source in ZappySys Data Gateway based on API Driver
-
Download and install ODBC PowerPack.
-
Search for gateway in start menu and Open ZappySys Data Gateway:
-
Go to Users Tab to add our first Gateway user. Click Add; we will give it a name tdsuser and enter password you like to give. Check Admin option and click OK to save. We will use these details later when we create linked server:
-
Now we are ready to add a data source. Click Add, give data source a name (Copy this name somewhere, we will need it later) and then select Native - ZappySys API Driver. Finally, click OK. And it will create the Data Set for it and open the ZS driver UI.
OdataDSN
-
When the Configuration window appears give your data source a name if you haven't done that already, then select "OData" from the list of Popular Connectors. If "OData" is not present in the list, then click "Search Online" and download it. Then set the path to the location where you downloaded it. Finally, click Continue >> to proceed with configuring the DSN:
OdataDSNOData -
Now it's time to configure the Connection Manager. Select Authentication Type, e.g. Token Authentication. Then select API Base URL (in most cases, the default one is the right one). More info is available in the Authentication section.
Fill in all required parameters and set optional parameters if needed:
OdataDSNODataNo Authentication [Http]https://services.odata.org/V3/Northwind/Northwind.svcOptional Parameters RetryMode RetryWhenStatusCodeMatch RetryStatusCodeList 429 RetryCountMax 5 RetryMultiplyWaitTime True IgnoreSSLCertificateErrors SslVersion Fill in all required parameters and set optional parameters if needed:
OdataDSNODataWindows Authentication [Http]https://services.odata.org/V3/Northwind/Northwind.svcThis Authentication Type has no parameters to fill-in. Fill in all required parameters and set optional parameters if needed:
OdataDSNODataBasic Authentication [Http]https://services.odata.org/V3/Northwind/Northwind.svcRequired Parameters UserName Fill-in the parameter... Password Fill-in the parameter... Optional Parameters RetryMode RetryWhenStatusCodeMatch RetryStatusCodeList 429 RetryCountMax 5 RetryMultiplyWaitTime True IgnoreSSLCertificateErrors SslVersion Fill in all required parameters and set optional parameters if needed:
OdataDSNODataNTLM Authentication [Http]https://services.odata.org/V3/Northwind/Northwind.svcRequired Parameters UserName (i.e. Domain\UserName) Fill-in the parameter... Password Fill-in the parameter... Optional Parameters RetryMode RetryWhenStatusCodeMatch RetryStatusCodeList 429 RetryCountMax 5 RetryMultiplyWaitTime True IgnoreSSLCertificateErrors SslVersion Fill in all required parameters and set optional parameters if needed:
OdataDSNODataToken Authentication [Http]https://services.odata.org/V3/Northwind/Northwind.svcRequired Parameters Token Fill-in the parameter... Optional Parameters AuthScheme Bearer AuthHeader Authorization RetryMode RetryWhenStatusCodeMatch RetryStatusCodeList 429 RetryCountMax 5 RetryMultiplyWaitTime True IgnoreSSLCertificateErrors SslVersion Fill in all required parameters and set optional parameters if needed:
OdataDSNODataOAuth Connection for OData API [OAuth]https://services.odata.org/V3/Northwind/Northwind.svcOptional Parameters GrantType Default OAuthVersion Default ClientId ClientSecret UserName Password Scope AuthUrl https://some-domain.com/api/auth TokenUrl https://some-domain.com/api/token ReturnUrl https://zappysys.com/oauth ExtraAttributesForTokenRequest ExtraAttributesForAuthRequest DoNotIncludeCredentialsInHeader DoNotIncludeCredentialsInBody RenewBeforeSec ExtraHeaders (e.g. x-hdr1:AAA||x-hdr2:BBB) ContentType EnableCodeVerifier RemoveAuthHeader CustomAuthHeader CustomTokenPrefix RetryMode RetryWhenStatusCodeMatch RetryStatusCodeList 429 RetryCountMax 5 RetryMultiplyWaitTime True IgnoreSSLCertificateErrors SslVersion -
Once the data source connection has been configured, it's time to configure the SQL query. Select the Preview tab and then click Query Builder button to configure the SQL query:
- ODataOData Connector can be used to integrated any REST API which supports OData Standard. You can view tables, read data from tables using this connector. It also comes with some example OData Services to get started.OdataDSN -
Start by selecting the Table or Endpoint you are interested in and then configure the parameters. This will generate a query that we will use in to retrieve data from OData. Hit OK button to use this query in the next step.
SELECT * FROM Customers
Some parameters configured in this window will be passed to the OData API, e.g. filtering parameters. It means that filtering will be done on the server side (instead of the client side), enabling you to get only the meaningful datamuch faster . -
Now hit Preview Data button to preview the data using the generated SQL query. If you are satisfied with the result, use this query in :
- ODataOData Connector can be used to integrated any REST API which supports OData Standard. You can view tables, read data from tables using this connector. It also comes with some example OData Services to get started.OdataDSNSELECT * FROM Customers
You can also access data quickly from the tables dropdown by selecting <Select table>.AWHERE
clause,LIMIT
keyword will be performed on the client side, meaning that thewhole result set will be retrieved from the OData API first, and only then the filtering will be applied to the data. If possible, it is recommended to use parameters in Query Builder to filter the data on the server side (in OData servers). -
Click OK to finish creating the data source.
Read data in SQL Server
-
First, let's open SQL Server Management Studio, create a new Linked Server, and start configuring it:
LS_TO_ODATA_IN_GATEWAYMicrosoft OLE DB Driver for SQL Serverlocalhost,5000OdataDSNOdataDSNChoose SQL Server Native Client 11.0 as Provider if you don't see the option shown above. -
Then click on Security option and configure username we created in ZappySys Data Gateway in one of the previous steps:
-
Optional step. Under the Server Options, Enable RPC and RPC Out and Disable Promotion of Distributed Transactions(MSDTC).
You need to enable RPC Out if you plan to use
EXEC(...) AT [LS_TO_ODATA_IN_GATEWAY]
rather than OPENQUERY.
If don't enabled it, you will encounter theServer 'LS_TO_ODATA_IN_GATEWAY' is not configured for RPC
error.Query Example:
EXEC('SELECT * FROM Customers') AT [LS_TO_ODATA_IN_GATEWAY]
If you plan to use
'INSERT INTO <TABLE> EXEC(...) AT [LS_TO_ODATA_IN_GATEWAY]'
in that case you need to Disable Promotion of Distributed Transactions(MSDTC).
If don't disabled it, you will encounter theThe operation could not be performed because OLE DB provider "SQLNCLI11" for linked server "MY_LINKED_SERVER_NAME" was unable to begin a distributed transaction.
error.Query Example:
INSERT INTO dbo.Products EXEC('SELECT * FROM Customers') AT [LS_TO_ODATA_IN_GATEWAY]
-
Finally, open a new query and execute a query we saved in one of the previous steps:
SELECT * FROM OPENQUERY([LS_TO_ODATA_IN_GATEWAY], 'SELECT * FROM Customers')
SELECT * FROM OPENQUERY([LS_TO_ODATA_IN_GATEWAY], 'SELECT * FROM Customers')
OData Connector Examples
The ZappySys API Driver is a user-friendly interface designed to facilitate the seamless integration of various applications with the OData API. With its intuitive design and robust functionality, the ZappySys API Driver simplifies the process of configuring specific API endpoints to efficiently read or write data from OData.
Click here to find more OData Connector examples designed for seamless integration with the ZappySys API ODBC Driver under ODBC Data Source (36/64) or ZappySys Data Gateway, enhancing your ability to connect and interact with Prebuilt Connectors effectively.
Consume Data inside your App / Programming Language
Once you know how to load data from OData Connector, you can click on one of the below links to learn the steps how to consume data inside your App / Programming Language from OData Connector.ODBC inside ETL / Reporting / BI Tools
- Power BI
- Tableau
- Excel
- Informatica PowerCenter
- QlikView
- SQL Server / Linked Server
- SSRS (SQL Server Reporting Services)
ODBC inside Programming Languages
Key features of the ZappySys API Driver include:
The API ODBC driver facilitates the reading and writing of data from numerous popular online services (refer to the complete list here) using familiar SQL language without learning complexity of REST API calls. The driver allows querying nested structure and output as a flat table. You can also create your own ODBC / Data Gateway API connector file and use it with this driver.
Intuitive Configuration: The interface is designed to be user-friendly, enabling users to easily set up the specific API endpoints within OData without requiring extensive technical expertise or programming knowledge.
Customizable Endpoint Setup: Users can conveniently configure the API endpoint settings, including the HTTP request method, endpoint URL, and any necessary parameters, to precisely target the desired data within OData.
Data Manipulation Capabilities: The ZappySys API Driver allows for seamless data retrieval and writing, enabling users to fetch data from OData and perform various data manipulation operations as needed, all through an intuitive and straightforward interface.
Secure Authentication Integration: The driver provides secure authentication integration, allowing users to securely connect to the OData API by inputting the necessary authentication credentials, such as API tokens or other authentication keys.
Error Handling Support: The interface is equipped with comprehensive error handling support, ensuring that any errors or exceptions encountered during the data retrieval or writing process are efficiently managed and appropriately communicated to users for prompt resolution.
Data Visualization and Reporting: The ZappySys API Driver facilitates the seamless processing and presentation of the retrieved data from OData, enabling users to generate comprehensive reports and visualizations for further analysis and decision-making purposes.
Overall, the ZappySys API Driver serves as a powerful tool for streamlining the integration of applications with OData, providing users with a convenient and efficient way to access and manage data, all through a user-friendly and intuitive interface.