GraphQL ETL Source
In this article
See the Connector Marketplace topic. Please request your administrator to start a trial or subscribe to the Premium GraphQL connector.
In Gathr, it can be added as a channel to help in fetching customers’ and prospects’ data and transform it as needed before storing it in a desired data warehouse to run further analytics.
Schema Type
See the topic Provide Schema for ETL Source → to know how schema details can be provided for data sources.
After providing schema type details, the next step is to configure the data source.
Data Source Configuration
Configure the data source parameters as explained below.
Connection Name
Connections are the service identifiers. A connection name can be selected from the list if you have created and saved connection details for GraphQL earlier. Or create one as explained in the topic - GraphQL Connection →
Use the Test Connection option to ensure that the connection with the GraphQL channel is established successfully.
A success message states that the connection is available. In case of any error in test connection, edit the connection to resolve the issue before proceeding further.
Entity
Tables in GraphQL are statically defined to model GraphQL entities.
If you selected the Fetch From Source method to design the application, the Entities will list as per the configured connection. Select the entity to be read from GraphQL.
If you selected the Upload Data File method to design the application, the exact name of the entity should be provided to read the data from GraphQL.
If you selected the Fetch From Source method to design the application, the Fields would list as per the Entity chosen in the previous configuration parameter. Select the fields or provide a custom query to read the desired records from GraphQL.
Fields
The conditions to fetch source data from a GraphQL table can be specified using this option.
Select Fields: Select the column(s) of the entity that should be read.
Custom Query: Provide an SQL query specifying the read conditions for the source data.
Example: SELECT "Id" FROM Companies
If you selected the Upload Data File method to design the application, provide a custom query to fetch records from the GraphQL entity specified in the previous configuration.
Query
The conditions to fetch source data from a GraphQL table can be specified using this option.
Provide an SQL query specifying the read conditions for the source data.
Example: SELECT "Id" FROM Companies
Read Options
This section contains additional read configuration parameters.
Page size
The maximum number of results to return per page from GraphQL.
The Page size property affects the maximum number of results to return per page from GraphQL.
Setting a higher value may result in better performance at the cost of additional memory eaten up per page consumed. The Page size is proportional to the GraphQL query cost.
Custom Headers
Other headers as determined by the user (optional).
This property can be set to a string of headers to be appended to the HTTP request headers created from other properties, like ContentType, From, and so on.
Header lines should be separated by the carriage return and line feed (CRLF) characters.
Use this property with caution. If this property contains invalid headers, HTTP requests may fail.
This property is useful for fine-tuning the functionality of the connector to integrate with specialized or nonstandard APIs.
Expand Arguments Depth
This property is used to determine how far the provider should search for columns inside the arguments of type INPUT_OBJECT.
Example
{
"variables": {
"input": {
"filters": {
"type": "SUPPLIER"
}
}
},
"query": "query($input:FilteredCompaniesInput!) {\r\nfilteredCompanies(input:$input) {\r\nid:id\r\nvalue:value\r\n}\r\n}\r\n"
}
For the SQL query:
SELECT id,value FROM filteredCompanies WHERE type='SUPPLIER'
In this case the nested FilteredCompaniesInput
is itself of type INPUT_OBJECT.
In a column search, the ‘Expand Columns Depth’ property controls how many nested levels of type INPUT_OBJECT are subjected to searching
Expand Tables Depth
This property is used to determine the depth of the child tables.
Expand Columns Depth
This property is used to determine how far the provider should search for columns inside the GraphQL objects.
Include Deprecated Metadata
This property is used to determine whether the provider should expose deprecated tables and columns or not.
Partitioning
This section contains partitioning-related configuration parameters.
Enable Partitioning
This enables parallel reading of the data from the entity.
Partitioning is disabled by default.
If enabled, an additional option will appear to configure the partitioning conditions.
Column
The selected column will be used to partition the data.
Max Rows per Partition: Enter the maximum number of rows to be read in a single request.
Example: 10,000
It implies that a maximum number of 10,000 rows can be read in one partition.
Advanced Configuration
This section contains additional configuration parameters.
Fetch Size
The number of rows to be fetched per round trip. The default value is 1000.
Add Configuration: Additional properties can be added using this option as key-value pairs.
Detect Schema
Check the populated schema details. For more details, see Schema Preview →
Pre Action
To understand how to provide SQL queries or Stored Procedures that will be executed during pipeline run, see Pre-Actions →.
Notes
Optionally, enter notes in the Notes → tab and save the configuration.
If you have any feedback on Gathr documentation, please email us!