Create an Apache Drill Data Source
Beta Feature
Support for Apache Drill Data Source Manager (DSMs) is currently a beta feature and is still under active development. Do not use beta features in your production environment.
Known limitations
- Date arithmetic:
WEEK
granularities are not supported (such asWEEK
orDOW
)DOY
granularity is not supported- Not all
period-over-period
functionality works due to partially missingINTERVAL
shifting in Drill
- Functions:
MEDIAN
(or any alternative likePERCENTILE_CONT
) analytics function is not supported by Drill.- You can implement your own
MEDIAN
and plug it into Drill, see How to develop and install custom functions into Apache Drill. - Or you may use third party solutions:
MEDIAN
and other statistics functions have already been implemented by Drill community (by @cgivre), see drill-stats-function on Github.
- You can implement your own
GREATEST
andLEAST
functions treat NULL values incorrectly- Some
WINDOW
frames are not supported SUM
inCASE
may not workREGR_R2
is 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.
For additional considerations, refer to Preparing Data Source Managers for GoodData.
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
user
andpassword
.
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.