Before googling, check errors

  • https://drill.apache.org/docs/troubleshooting/
  • https://drill.apache.org/docs/alter-system/

Change store format

use dfs.tmp;
alter session set store.`format`='json';

After that,

CREATE TABLE movieRegions (region, title, purchases) as  SELECT region, title, count(*) as numberOfPurchases  FROM dfs.`/home/user/data/some/path/some_file.json` group by region, title;

will create table on /tmp/movieRegions/SOME_NUMBERS.json

query custom *sv file (fields delimited by another character)

select * from table(dfs.`/path/to/file/some_data.xsv` (type => 'text', fieldDelimiter => '~', extractHeader => true));

Query file given absolute path

select * from dfs./home/patrick/dev/tvmetrix/extractor/data/liveevents/2018-01-18/liveevents_DF_2018-01-18_153010_469.json.gz limit 20;

Query the system

Identify the Foreman

Issue the following query to identify the Foreman node:

SELECT hostname FROM sys.drillbits WHERE `current` = true

Get drill version

SELECT version FROM sys.version;

Get a complete list of planning and execution options that are currently set at the system or session level

SELECT name, type FROM sys.options WHERE type in ('SYSTEM','SESSION') order by name;

Change system settings

alter system set planner.enable_hashagg = true;
alter system set planner.enable_multiphase_agg = false;

Change port of web UI

$ vim conf/drill-override.conf
drill.exec: {
  cluster-id: "drillbits1"
  rpc: {
        user: {
          server: {
            port: 31910
            }
        },
        bit: {
          server: {
            port : 31911,
            retry:{
              count: 7200,
              delay: 500
            },
            threads: 1
          }
        },
    },
    http: {
          enabled: true,
          ssl_enabled: false,
          port: 8989
          session_max_idle_secs: 3600, # Default value 1hr
          cors: {
            enabled: false,
            allowedOrigins: ["null"],
            allowedMethods: ["GET", "POST", "HEAD", "OPTIONS"],
            allowedHeaders: ["X-Requested-With", "Content-Type", "Accept", "Origin"],
            credentials: true
          }
        },
}
drill.logical.function.package+=[com.mapr.drill]

Change log level

Edit /conf/logback.xml