Skip to content

Instantly share code, notes, and snippets.

View arina-ielchiieva's full-sized avatar

Arina Ielchiieva arina-ielchiieva

  • Toronto, Canada
View GitHub Profile
@arina-ielchiieva
arina-ielchiieva / TemporaryTablesSupport.md
Last active February 24, 2017 12:23
Apache Drill: Temporary Tables Support

Temporary Tables Support

1 Motivation

Currently (starting from Drill version 1.8 and older) Drill supports only permanent tables [1] which are created using create table as select statement (hereinafter CTAS). They are created physically on disk and can be accessed by all users and persist after user session is closed. Data format stored in permanent tables can be regulated using store.format option. Permanent tables which store data in parquet format can be partitioned [2]. Permanent tables can be dropped using DROP command [3]. Permanent tables can be created only using CTAS statement and currently do not support INSERT statement.

Drill also supports views [4] which are created as files on disk with .view.drill extension. Such files contain select statement which can combine multiple sources. Access to views can be restricted using impersonalization [5]. As permanent tables views persist after user session is closed. Views can be dropped using DROP command [6].

Permanent tables and views can be cre

@arina-ielchiieva
arina-ielchiieva / DynamicUDFsSupport.md
Created December 6, 2016 12:47
Apache Drill: Dynamic UDFs Support

Dynamic UDFs Support

1 Motivation

Currently (starting from Drill version 1.7 and older) adding a new UDF requires two steps [1]:

  1. Coping the UDF jars (source and binary) to every drillbit.
  2. Restarting the drillbits so they read the UDF jars and register all found UDFs.

Jira DRILL-4726 was created to allow user register / unregister UDFs dynamically without drillbits restart.

@arina-ielchiieva
arina-ielchiieva / 0_reuse_code.js
Created December 6, 2016 11:18
Here are some things you can do with Gists in GistBox.
// Use Gists to store code you would like to remember later on
console.log(window); // log the "window" object to the console