Apache Drill interactive, ad-hoc query at scale...Apache Drill interactive, ad-hoc query at scale...

Post on 27-May-2020

15 views 0 download

Transcript of Apache Drill interactive, ad-hoc query at scale...Apache Drill interactive, ad-hoc query at scale...

Apache Drillinteractive, ad-hoc query at scale

Michael Hausenblas, Chief Data Engineer EMEA, MapRHadoop ecosystem - Open Source drives innovation and adoption in Big Data, 2013-01-05

Whichworkloads doyouencounter in

http

://ww

w.flickr.co

m/p

ho

tos/kevin

om

ara/28

66

64

83

30

encounter inyourenvironment?

http

://ww

w.flickr.co

m/p

ho

tos/kevin

om

ara/28

66

64

83

30

/licen

sedu

nd

erC

CB

Y-NC

-ND

2.0

Batch processing

… for recurring tasks such as large-scale data mining, aggregation,ETL offloading, etc.

OLTP

… for example user-facing eCommerce transactions, real-timemessaging at scale (FB) , etc.

Stream processing

… in order to handle stream sources such as social media feedsor sensor data (mobile phones, RFID, weather stations, etc.)

Search

… retrieval of items from semi-structured data formats(XML, JSON, etc.), documents (plain text, etc.) anddatastores (MongoDB, CouchDB, etc.)

But what aboutinteractive,ad-hoc queryat scale?

But what aboutinteractive,ad-hoc queryat scale?

http://www.flickr.com/photos/9479603@N02/4144121838/ licensed under CC BY-NC-ND 2.0

Impala

Interactive Query (?)

Impala

low-latency

Use Case I

• Jane, a marketing analyst

• Determine target segments

• Data from different sources

Use Case II

• Logistics – supplier status

• Queries

– How many shipments from supplier X?

– How many shipments in region Y?– How many shipments in region Y?

SUPPLIER_ID NAME REGION

ACM ACME Corp US

GAL GotALot Inc US

BAP Bits and Pieces Ltd Europe

ZUP Zu Pli Asia

{"shipment": 100123,"supplier": "ACM",“timestamp": "2013-02-01","description": ”first delivery today”},{"shipment": 100124,"supplier": "BAP","timestamp": "2013-02-02","description": "hope you enjoy it”}…

Requirements

• Support for different data sources

• Support for different query interfaces

• Low-latency/real-time

• Ad-hoc queries• Ad-hoc queries

• Scalable, reliable

And now for something completely different …

Google’s Dremel

Dremel is a scalable, interactive ad-hoc query system foranalysis of read-only nested data. By combining multi-level execution trees and columnar data layout, it iscapable of running aggregation queries over trillion-row

Dremel is a scalable, interactive ad-hoc query system foranalysis of read-only nested data. By combining multi-level execution trees and columnar data layout, it iscapable of running aggregation queries over trillion-row

http://research.google.com/pubs/pub36632.html

Sergey Melnik, Andrey Gubarev, Jing Jing Long, Geoffrey Romer, Shiva Shivakumar, Matt Tolton,Theo Vassilakis, Proc. of the 36th Int'l Conf on Very Large Data Bases (2010), pp. 330-339

capable of running aggregation queries over trillion-rowtables in seconds. The system scales to thousands ofCPUs and petabytes of data, and has thousands of usersat Google.…

capable of running aggregation queries over trillion-rowtables in seconds. The system scales to thousands ofCPUs and petabytes of data, and has thousands of usersat Google.…

Google’s Dremel

multi-level execution trees

columnar data layout

Google’s Dremel

mapping nested data to tables

nested data + schema column-striped representation

Google’s Dremel

experiments:datasets & query performance

Back to Apache Drill …

Apache Drill–key facts

• Inspired by Google’s Dremel

• Standard SQL 2003 support

• Plug-able data sources

• Nested data is a first-class citizen• Nested data is a first-class citizen

• Schema is optional

• Community driven, open, 100’s involved

High-level Architecture

Wire-level Architecture

• Each node: Drillbit - maximize data locality

• Co-ordination, query planning, execution, etc, are distributed

• By default Drillbits hold all roles

• Any node can act as endpoint for a query

StorageProcess

Drillbit

nodenode

StorageProcess

Drillbit

nodenode

StorageProcess

Drillbit

nodenode

StorageProcess

Drillbit

nodenode

Wire-level Architecture

• Zookeeper for ephemeral cluster membership info

• Distributed cache (Hazelcast) for metadata, localityinformation, etc.

Curator/Zk

Distributed Cache

StorageProcess

Drillbit

nodenode

StorageProcess

Drillbit

nodenode

StorageProcess

Drillbit

nodenode

StorageProcess

Drillbit

nodenode

Distributed Cache Distributed Cache Distributed Cache

Wire-level Architecture

• Originating Drillbit acts as foreman, manages query execution,scheduling, locality information, etc.

• Streaming data communication avoiding SerDe

Curator/Zk

Distributed Cache

StorageProcess

Drillbit

nodenode

StorageProcess

Drillbit

nodenode

StorageProcess

Drillbit

nodenode

StorageProcess

Drillbit

nodenode

Distributed Cache Distributed Cache Distributed Cache

Principled Query Execution

SourceQuery Parser

LogicalPlan Optimizer

PhysicalPlan Execution

SQL 2003DrQLMongoQLDSL

scanner APItopologyquery: [{@id: "log",op: "sequence",do: [{op: "scan",source: “logs”},{op:"filter",

condition:"x > 3”

},

parser API

Drillbit Modules

DFS Engine

RPC Endpoint

SQL

HiveQL

Logi

calP

lan

Ph

ysic

alP

lan

Optimizer

Sto

rage

Engi

ne

Inte

rfac

eScheduler

Foreman

HBase EnginePig

Parser

Distributed Cache

Logi

calP

lan

Ph

ysic

alP

lan

Optimizer

Sto

rage

Engi

ne

Inte

rfac

e

Foreman

OperatorsMongo

Key features

• Full SQL – ANSI SQL 2003

• Nested Data as first class citizen

• Optional Schema

• Extensibility Points …• Extensibility Points …

Extensibility Points

• Source query parser API

• Custom operators, UDF logical plan

• Serving tree, CF, topology physical plan/optimizer

• Data sources &formats scanner API• Data sources &formats scanner API

SourceQuery Parser

LogicalPlan Optimizer

PhysicalPlan Execution

… and Hadoop?

• HDFS can be a data source

• Complementary use cases*

• … use Apache Drill

*)

http

s://clou

d.go

ogle

.com

/files/

• … use Apache Drill

– Find record with specified condition

– Aggregation under dynamic conditions

• … use MapReduce

– Data mining with multiple iterations

– ETL

://clou

d.go

ogle

.com

/files/B

igQu

eryTe

chn

icalWP

.pd

f

Basic Demo{"id": "0001","type": "donut",”ppu": 0.55,"batters":{"batter”:[

{ "id": "1001", "type": "Regular" },{ "id": "1002", "type": "Chocolate" },

data source: donuts.json

{"sales" : 700.0,"typeCount" : 1,"quantity" : 700,"ppu" : 1.0

}{"sales" : 109.71,

https://cwiki.apache.org/confluence/display/DRILL/Demo+HowTo

data source: donuts.json

query:[ {op:"sequence",do:[

{op: "scan",ref: "donuts",source: "local-logs",selection: {data: "activity"}

},{op: "filter",expr: "donuts.ppu < 2.00"

},…

logical plan: simple_plan.json

result: out.json

"sales" : 109.71,"typeCount" : 2,"quantity" : 159,"ppu" : 0.69

}{"sales" : 184.25,"typeCount" : 2,"quantity" : 335,"ppu" : 0.55

}

BE A PART OF IT!

Status

• Heavy development by multiple organizations

• Available

– Logical plan (ADSP)– Logical plan (ADSP)

– Reference interpreter

– Basic SQL parser

– Basic demo

Status

May 2013

• Full SQL support (+JDBC)

• Physical plan• Physical plan

• In-memory compressed data interfaces

• Distributed execution

• HBase and MySQL storage engine

• WebUI client

Contributing

Contributions appreciated (besides code drops)!

• Test data & test queries

• Use case scenarios (textual/SQL queries)• Use case scenarios (textual/SQL queries)

• Documentation

• Further schedule

– Alpha Q2

– Beta Q3

Kudos to …

• Julian Hyde, Pentaho

• Lisen Mu, XingCloud

• Tim Chen, Microsoft

• Chris Merrick, RJMetrics• Chris Merrick, RJMetrics

• David Alves, UT Austin

• Sree Vaadi, SSS/NGData

• Jacques Nadeau, MapR

• Ted Dunning, MapR

Engage!

• Follow @ApacheDrill on Twitter

• Sign up at mailing lists (user | dev)http://incubator.apache.org/drill/mailing-lists.html

• Standing G+ hangouts every Tuesday at 5pm GMThttp://j.mp/apache-drill-hangouts

• Keep an eye on http://drill-user.org/