Create an Apache Drill Data Source
Beta Feature
The support for Apache Drill is currently a beta feature and is still under active development. Do not use beta features in your production environment.
Known limitations
- Date arithmetic:
WEEKgranularities are not supported (such asWEEKorDOW)DOYgranularity is not supported- Not all
period-over-periodfunctionality works due to partially missingINTERVALshifting in Drill
- Functions:
MEDIAN(or any alternative likePERCENTILE_CONT) analytics function is not supported by Drill.- You can implement your own
MEDIANand plug it into Drill, see How to develop and install custom functions into Apache Drill. - Or you may use third party solutions:
MEDIANand other statistics functions have already been implemented by Drill community (by @cgivre), see drill-stats-function on Github.
- You can implement your own
GREATESTandLEASTfunctions treat NULL values incorrectly- Some
WINDOWframes are not supported SUMinCASEmay not workREGR_R2is not supported- When using aggregations with an empty dimensionality and when all values are NULL, report result may be incorrect
Prepare Apache Drill for GoodData
To learn how to register Data Sources to Apache Drill, refer to the official Apache Drill documentation for connecting a Data Source.
Data Source Details
- The following considerations apply when you are configuring the JDBC URL:
- If you start Apache Drill as a docker container, you can connect using this URL:
jdbc:drill:drillbit=drill:31010. - If you run Apache Drill outside of a docker container, consult the official Apache Drill documentation for configuring the JDBC URL.
- There are no limits for the driver setup. For all possibilities, see the official documentation.
- If you start Apache Drill as a docker container, you can connect using this URL:
- Basic authentication is most likely supported but is untested. You can test authentication by specifying the
userandpassword.
You must configure the writable storage plugin so that the path for dfs.data points to the local filesystem.
You can find more information in the official Apache Drill documentation for Configuring Storage Plugins.
You can configure the DSM through the web UI, or you can store the configuration into the file storage-plugins-override.conf and mount it as a volume into the container.
The following example is a snippet that demonstrates the configuration settings for the Apache Drill DSM:
"storage": {
dfs: {
type: "file",
connection: "file:///",
enabled: true,
workspaces: {
"tmp": {
"location": "/tmp",
"writable": true,
"defaultInputFormat": null,
"allowAccessOutsideWorkspace": false
},
"root": {
"location": "/",
"writable": false,
"defaultInputFormat": null,
"allowAccessOutsideWorkspace": false
},
"data": {
"location": "/data",
"writable": true,
"defaultInputFormat": null,
"allowAccessOutsideWorkspace": false
}
},
formats: {
"parquet": {
"type": "parquet"
},
.... add other formats based on your needs ....
}
}
}
}
Performance Tips
If you want to query large datasets or even join large datasets from different data sources, we recommend you first snapshot the datasets into Apache Drill (CREATE TABLE AS) and then querying the table snapshots.
Query Timeout
Query timeout is not supported for Apache Drill yet.