[ https://issues.apache.org/jira/browse/DRILL-8169?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vitalii Diravka resolved DRILL-8169. ------------------------------------ Resolution: Fixed > Add UDFs to HTTP Plugin to Facilitate Joins > ------------------------------------------- > > Key: DRILL-8169 > URL: https://issues.apache.org/jira/browse/DRILL-8169 > Project: Apache Drill > Issue Type: Improvement > Components: Storage - Other > Affects Versions: 1.20.0 > Reporter: Charles Givre > Assignee: Charles Givre > Priority: Major > Fix For: 2.0.0 > > > There are some situations where a user might want to join data with an API > result and the pushdowns prevent that from happening. The main situation > where this happens is when > an API has parameters which are part of the URL AND these parameters are > dynamically populated via a join. > In this case, there are two functions `http_get_url` and `http_get` which you > can use to faciliate these joins. > * `http_get('<storage_plugin_name>', <params>)`: This function accepts a > storage plugin as input and an optional list of parameters to include in a > URL. > * `http_get_url(<url>, <params>)`: This function works in the same way except > that it does not pull any configuration information from existing storage > plugins. > ### Example Queries > Let's say that you have a storage plugin called `github` with an endpoint > called `repos` which points to the url: https://github.com/orgs/\{org}/repos. > It is easy enough to > write a query like this: > ```sql > SELECT * > FROM github.repos > WHERE org='apache' > ``` > However, if you had a file with organizations and wanted to join this with > the API, the query would fail. Using the functions listed above you could get > this data as follows: > ```sql > SELECT http_get('github.repos', `org`) > FROM dfs.`some_data.csvh` > ``` > or > ```sql > SELECT http_get('https://github.com/orgs/\{org}/repos', `org`) > FROM dfs.`some_data.csvh` > ``` > ** WARNING: This functionality will execute an HTTP Request FOR EVERY ROW IN > YOUR DATA. Use with caution. ** > -- This message was sent by Atlassian Jira (v8.20.7#820007)