apache tajo - an open source big data warehouse

Post on 16-Apr-2017

271 Views

Category:

Technology

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Apache  Tajo:  An  Open  Source    Big  Data  Warehouse  

(what’s  new  in  recent  releases) HadoopSphere  -­‐  Virtual  Conclave  2015  

Hyunsik  Choi,  Gruter  Inc.  (hschoi  @  gruter.com)  

1  

Agenda

•  Tajo  Overview  • Milestones  and  0.10  Features  • What’s  Next  

2  

Tajo:  A  Big  Data  Warehouse  System

•  Apache  Top-­‐level  project  

•  Distributed  and  scalable  data  warehouse  system  on  various  data  sources  (e.g,  HDFS,  S3,  Hbase,  …)  

•  Low  latency,  and  long  running  batch  queries  in  a  single  system  

•  Features  •  ANSI  SQL  compliance  •  Mature  SQL  features  •  ParYYoned  table  support  •  Java/Python  UDF  support  •  JDBC  driver  and  Java-­‐based  asynchronous  API  •  Read/Write  support  of  CSV,  JSON,  RCFile,  SequenceFile,  Parquet,  ORC  

3  

����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  Master����������� ������������������  Server����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  

TajoMaster����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  Slave����������� ������������������  Server����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  

����������� ������������������  ����������� ������������������  ����������� ������������������  

TajoWorker����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  

QueryMaster����������� ������������������  

Local����������� ������������������  Query����������� ������������������  Engine����������� ������������������  

StorageManager����������� ������������������  

HDFS����������� ������������������   HBase����������� ������������������  

����������� ������������������  ����������� ������������������  Client����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  

JDBC����������� ������������������   TSql����������� ������������������   Web����������� ������������������  UI����������� ������������������  

����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  Slave����������� ������������������  Server����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  

����������� ������������������  ����������� ������������������  ����������� ������������������  

TajoWorker����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  

QueryMaster����������� ������������������  

Local����������� ������������������  Query����������� ������������������  Engine����������� ������������������  

StorageManager����������� ������������������  

����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  Slave����������� ������������������  Server����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  

����������� ������������������  ����������� ������������������  ����������� ������������������  

TajoWorker����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  

QueryMaster����������� ������������������  

Local����������� ������������������  Query����������� ������������������  Engine����������� ������������������  

StorageManager����������� ������������������  

CatalogStore����������� ������������������  

DBMS����������� ������������������  

HCatalog����������� ������������������  Submit����������� ������������������  ����������� ������������������  a����������� ������������������  query����������� ������������������  

Manage����������� ������������������  metadata����������� ������������������  

Allocate����������� ������������������  a����������� ������������������  query����������� ������������������  

send����������� ������������������  tasks����������� ������������������  &����������� ������������������  monitor����������� ������������������  ����������� ������������������  

send����������� ������������������  tasks����������� ������������������  &����������� ������������������  monitor����������� ������������������  ����������� ������������������  

Tajo  Overall  Architecture

HDFS����������� ������������������   HBase����������� ������������������   HDFS����������� ������������������   HBase����������� ������������������  

4  

Common  Scenarios

•  ExtracYon,  TransformaYon,  Loading  (ETL)  

•  InteracYve  BI/analyYcs  on  web-­‐scale  big  data  

• Data  discovery/Exploratory  analysis  with  R  and  exisYng  SQL  tools  

5  

Use  Cases:  Replacement  of  Commercial  DW

•  Example:  Biggest  Telco  Company  in  South  Korea  •  Goal:  

•  Replacement  of  slow  ETL  workloads  on  several  TB  datasets  •  Lots  daily  reports  generaYon  about  users’  behaviors  •  Ad-­‐hoc  analysis  on  Terabytes  data  sets  

•  Key  Benefits  of  Tajo:  •  SimplificaYon  of  DW  ETL,  OLAP,  and  Hadoop  ETL  into  an  unified  system  

•  Saved  license  over  commercial  DW  •  Much  less  cost,  more  data  analysis  within  the  same  SLA  

6  

Use  Cases:  Data  Discovery

•  Example:  Music  streaming  service                                      (26  million  users)  

• Goal:    •  Analysis  on  purchase  history  for  target  markeYng    

• Benefits:  •  Query  interacYvity  on  large  data  sets  •  Ability  to  use  exisYng  BI  visualizaYon  tools  

7  

When  Tajo  is  right  choice?

•  You  want  an  unified  system  for  batch  and  interacYve  queries  on  Hadoop,  Amazon  S3,  or  Hbase.  

•  You  want  a  mixed  use  of  Hadoop-­‐based  DW  and  RDBMS-­‐based  DW  or  want  to  replace  exisYng  RDBMS  DW.  

•  You  want  to  use  exisYng  SQL  tools  on  Hadoop  DW  

8  

Milestones

0.8   0.9   0.10   0.11  More  features  &    SQL  compaYbility  

Stability  &  AnalyYcal  funcYon  

Eco-­‐system  expansion  

More  features  •  Python  UDF  •  Nested  Schema  •  Tablespace  support  •  Query  federaYon  •  Beker  query  scheduler  

9  

Selected  Features  in  0.10

10  

Hbase  Storage  Support

•  You  can  use  SQL  to  access  Hbase  tables.  •  Tajo  supports  Hbase  storage  •  CREATE  (EXTERNAL)/DROP/INSERT  (OVERWRITE)/SELECT  

•  Bulk  InserYon  through  Direct  HFile  wriYng    CREATE TABLE hbase_t1 (key TEXT, col1 TEXT, col2 INT) USING hbase WITH ( ‘table’ = ‘t1’, ‘columns’ = ‘:key,cf1:col1,cf2:col2`, ‘hbase.zookeeper.quorum’ = ‘host1:2181,host2:2181’ )

11  

BeNer  AWS  support

• OpYmized  for  S3  and  EMR  environments  •  Fixed  many  bugs  related  to  S3  •  EMR  bootstrap  supported  in  AWS  Labs  Github  repo  

•  A  quick  guide  for  Tajo  on  EMR  •  hkp://www.gruter.com/blog/semng-­‐up-­‐a-­‐tajo-­‐cluster-­‐on-­‐amazon-­‐emr/  

•  EMR  bootstrap  for  Tajo  on  EMR  •  hkps://github.com/awslabs/emr-­‐bootstrap-­‐acYons/tree/master/tajo  

12  

Tajo  JDBC  

Tajo  Cluster

ETL  Tools   BI  Tools   Repor.ng  tools  

BeNer  SQL  tool  support  via  thin  JDBC

HDFS   HBase   S3   Swin  13  

Zeppelin  IntegraTon

14  

Improved  Performance  and  Stability

•  Ooeap  sort  operator  for  ORDER  BY  (TAJO-­‐907)  •  Hash  shuffle  IO  improvement  (TAJO-­‐374,  TAJO-­‐987)  •  Skewness  handling  of  hash  shuffle  •  AutomaYc  parallel  degree  choice  during  runYme  •  Lots  of  query  opYmizer  improvements  •  Add  Master  HA  (TAJO-­‐704)  •  More  error-­‐tolerant  shuffle  fetch  (TAJO-­‐789,  TAJO-­‐953)  

15  

What’s  New  in  Tajo  0.11

16  

Nested  data  and  JSON  support

•  Nested  data  is  becoming  common  •  JSON,  BSON,  XML,  Protocol  Buffer,  Avro,  Parquet,  …  •  Many  web  applicaYons  in  common  use  JSON.  •  MongoDB  by  default  uses  JSON  document  •  Many  Hbase  users  also  store  JSON  document  in  a  cell.  

•  Flakening  causes  lots  of  data/computaYon  overhead.  

•  Tajo  0.11  naYvely  supports  nested  data  types.  

17  

How  to  create  a  nested  schema  table

Use  ‘RECORD’  keyword  to  define  complex  data  type  

18  

Loose  schema  for  self-­‐describing  formats

You  can  handle  schema  evolving  with  ALTER  ADD  COLUMN!  

19  

How  to  retrieve  nested  fields

Input  Data  

Table  DefiniYon  

SQL  

20  

Query  federaTon  and  Tablespace  support

•  Query  support  across  mulYple  data  sources  •  You  can  perform  join  or  union  among  tables  on  different  systems.  

•  Benefits:  •  Data  offload  from  RDBMS  to  Hadoop  vice  versa  •  A  mixed  use  of  exisYng  RDBMS  and  Hadoop.  •  Access  to  NoSQL  and  various  storages  through  SQL  •  An  unified  interface  for  SQL  tools  

HDFS   NoSQL   S3   Swin  

Apache  Tajo  

21  

Sequence  File  

RCFile  Protocol  Buffer  

Data  Formats  

Storage  Types  

Datasets  stored  in  Various  Formats/Storages

ORC  

22  

Tablespace

•  Tablespace  •  Registered  storage  space  

•  A  table  space  is  idenYfied  by  an  unique  URI  

•  ConfiguraYon  and  Policy  shared  in  all  tables  in  the  same  tablespace  

•  It  allows  users  to  reuse  registered  storages  and  their  configuraYon.  

23  

Tablespace  ConfiguraTon

Tablespace  name  

Tablespace  URI  

24  

Create  Table  on  a  specified  Tablespace

> CREATE TABLE uptodate (key TEXT, …) TABLESPACE hbase1;

> CREATE TABLE archive (l_orderkey bigint, …) TABLESPACE warehouse USING text WITH (‘text.delimiter’ = ‘|’);

Tablespace  Name  

Format  name  

25  

OperaTon  Push  Down

SELECT X, SUM(Y)FROM table1 WHERE x > 100GROUP BY x

Underlying  Storage  

Filter,  ProjecYon  or  Groupby  can  be  pushed  down  into  Underlying  storages  (like  RDBMS,  Hbase,    ElasYcsearch,  …)  

26  

Current  Status  of  Storages

•  Storages:  •  HDFS  support  •  Amazon  S3  and  Openstack  Swin  •  Hbase  Scanner  and    Writer  -­‐  HFile  and  Put  Mode  •  JDBC-­‐based  Scanner  and  Writer  (Working)  •  Kara  Scanner  (Patch  Available)  •  ElasYc  Search  (Patch  Available)  

• Data  Formats  •  Text,  JSON,  RCFile,  SequenceFile,  Avro,  Parquet,  and  ORC  (Patch  Available)  

27  

Python  UDF

•  Python  UDF  and  UDAF  are  supported  in  Tajo  •  hkp://tajo.apache.org/docs/devel/funcYons/python.html  

@output_type('int4') def return_one():  return 1 @output_type('text') def helloworld():  return 'Hello, World’ @output_type('int4') def sum_py(a,b):  return a+b

28  

Get  Involved! •  We  are  recruiYng  contributors!  

•  General  •  hkp://tajo.apache.org  

•  Gemng  Started  •  hkp://tajo.apache.org/docs/0.10.0/gemng_started.html  

•  Downloads  •  hkp://tajo.apache.org/downloads.html  

•  Jira  –  Issue  Tracker  •  hkps://issues.apache.org/jira/browse/TAJO  

•  Join  the  mailing  list  •  dev-­‐subscribe@tajo.apache.org  •  issues-­‐subscribe@tajo.apache.org  

29  

Q&A

30  

top related