Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Drilling into Data with Apache Drill - Tokyo Apache Drill Meetup 2015/11/12

1,636 views

Published on

Apache Drillの主要な機能やアーキテクチャをデモを交えて紹介。また、Drillの起動方法、クエリのやり方、HBase、Hive、Parquet、Avro、さらにはより複雑な構造のJSONドキュメントといった様々なデータソースに対するSQLの書き方を学べます。2015年11月12日に開催されたTokyo Apache Drill Meetupでの講演資料です。

Published in: Data & Analytics
  • If you want to download or read this book, copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • If you want to download or read this book, copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • If you want to download or read this book, Copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ...................................ALL FOR EBOOKS................................................. Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • If you want to download or read this book, copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Drilling into Data with Apache Drill - Tokyo Apache Drill Meetup 2015/11/12

  1. 1. ® © 2015 MapR Technologies 1 ® © 2015 MapR Technologies Drilling Into Data With Apache Drill Ted Dunning – Chef Application Architect, MapR Technologies 2015 年年 11 ⽉月  12 ⽇日
  2. 2. ® © 2015 MapR Technologies 2 {“about” : “me”}
  3. 3. ® © 2015 MapR Technologies 3 アジェンダ •  Why Drill? •  オープンデータの探索索の例例 •  どのように動作するのか?
  4. 4. ® © 2015 MapR Technologies 4 1980 2000 20101990 2020 固定スキーマ DB管理理者が構造を管理理 動的/柔軟なスキーマ アプリケーションが構造を管理理 ⾮非リレーショナルデータベースリレーショナルデータベース GB〜~TB TB〜~PBデータサイズ データベース データは⾮非リレーショナルデータストアに向かう データ構造 開発スタイル 構造化 構造化、半構造化、⾮非構造化 計画的(リリースサイクル=数ヶ⽉月〜~数年年) 反復復的(リリースサイクル=数⽇日〜~数週間)
  5. 5. ® © 2015 MapR Technologies 5 ⾮非リレーショナルデータストアにSQLを持ち込む SQL の親しみやすさ NoSQL の機敏さ •  ANSI SQL セマンティクス •  低レイテンシ •  ツール/アプリケーションと の連携 •  スキーマ管理理なし –  HDFS (Parquet、JSON など) –  HBase –  … •  データ変換・複製なし –  データのサイロ化を防ぐ •  使いやすさ
  6. 6. ® © 2015 MapR Technologies 6 即時分析により「即断可能な」ビジネスを実現 Hadoop
 データ データ モデリング 変換 データ移動 (任意) ユーザー Hadoop
 データ ユーザー 管理理された アプローチ 探索索的な アプローチ 新しいビジネスの問いかけソースデータの変更更 結果を得るまでの合計時間: 数週間から数ヶ⽉月 結果を得るまでの合計時間: 数分
  7. 7. ® © 2015 MapR Technologies 7 Drill は  動的なスキーマディスカバリ  をサポート •  固定スキーマ •  中央管理理されたレポジトリのスキー   マを利利⽤用  (Hive メタストア) •  固定スキーマ、変化するスキーマ、   もしくはスキーマレス •  中央管理理されたレポジトリのスキーマ、   ⾃自⼰己記述型データのスキーマを利利⽤用 2動的にスキーマを発⾒見見事前にスキーマを宣⾔言 SCHEMA ON WRITE SCHEMA BEFORE READ SCHEMA ON THE FLY
  8. 8. ® © 2015 MapR Technologies 8 -  サブディレクトリ -  HBase ネームスペース -  Hive データベース Drill は「SQL on Everything」を可能にする SELECT  *  FROM  dfs.yelp.`business.json`  ! ワークスペース -  パス名 -  Hive テーブル -  HBase テーブル テーブル -  DFS (Text, Parquet, JSON) -  HBase/MapR-DB -  Hive メタストアHCatalog/ - Hadoop 以外にも対応する簡単な API ストレージプラグインインスタンス
  9. 9. ® © 2015 MapR Technologies 9 Drill のデータモデルはフレキシブル JSON BSON HBase Parquet Avro CSV TSV 動的スキーマ固定スキーマ 複雑 フラット 柔軟性 Name! Gender! Age! Michael! M! 6! Jennifer! F! 3! {! name: {! first: Michael,! last: Smith! },! hobbies: [ski, soccer],! district: Los Altos! }! {! name: {! first: Jennifer,! last: Gates! },! hobbies: [sing],! preschool: CCLC! }! RDBMS/SQL-on-Hadoop テーブル Apache Drill テーブル 複雑性
  10. 10. ® © 2015 MapR Technologies 10 Yelp Dataset  をドリルしてみる http://www.yelp.com/dataset_challenge
  11. 11. ® © 2015 MapR Technologies 11 Business データセット {    "business_id":  "4bEjOyTaDG24SY5TxsaUNQ",    "full_address":  "3655  Las  Vegas  Blvd  SnThe  StripnLas  Vegas,  NV  89109",    "hours":  {      "Monday":  {"close":  "23:00",  "open":  "07:00"},      "Tuesday":  {"close":  "23:00",  "open":  "07:00"},      "Friday":  {"close":  "00:00",  "open":  "07:00"},      "Wednesday":  {"close":  "23:00",  "open":  "07:00"},      "Thursday":  {"close":  "23:00",  "open":  "07:00"},      "Sunday":  {"close":  "23:00",  "open":  "07:00"},      "Saturday":  {"close":  "00:00",  "open":  "07:00"}    },    "open":  true,    "categories":  ["Breakfast  &  Brunch",  "Steakhouses",  "French",  "Restaurants"],    "city":  "Las  Vegas",    "review_count":  4084,    "name":  "Mon  Ami  Gabi",    "neighborhoods":  ["The  Strip"],    "longitude":  -­‐115.172588519464,    "state":  "NV",    "stars":  4.0,      "attributes":  {      "Alcohol":  "full_bar”,        "Noise  Level":  "average",      "Has  TV":  false,      "Attire":  "casual",      "Ambience":  {        "romantic":  true,        "intimate":  false,        "touristy":  false,        "hipster":  false,          "classy":  true,        "trendy":  false,          "casual":  false      },      "Good  For":  {"dessert":  false,  "latenight":  false,  "lunch":  false,                                                  "dinner":  true,  "breakfast":  false,  "brunch":  false},    }   }  
  12. 12. ® © 2015 MapR Technologies 12 Review データセット {      "votes":  {"funny":  0,  "useful":  2,  "cool":  1},      "user_id":  "Xqd0DzHaiyRqVH3WRG7hzg",      "review_id":  "15SdjuK7DmYqUAj6rjGowg",      "stars":  5,      "date":  "2007-­‐05-­‐17",      "text":  "dr.  goldberg  offers  everything  ...",      "type":  "review",      "business_id":  "vcNAWiLM4dR7D2nwwJ7nCA"   }  
  13. 13. ® © 2015 MapR Technologies 13 ゼロから結果を得るまでは  2 分 $  tar  -­‐xvzf  apache-­‐drill-­‐1.2.0.tar.gz     $  bin/drill-­‐embedded     >  SELECT  state,  city,  count(*)  AS  businesses      FROM  dfs.yelp.`business.json`      GROUP  BY  state,  city      ORDER  BY  businesses  DESC  LIMIT  10;     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |      state        |        city        |    businesses  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  NV                  |  Las  Vegas    |  12021              |   |  AZ                  |  Phoenix        |  7499                |   |  AZ                  |  Scottsdale  |  3605                |   |  EDH                |  Edinburgh    |  2804                |   |  AZ                  |  Mesa              |  2041                |   |  AZ                  |  Tempe            |  2025                |   |  NV                  |  Henderson    |  1914                |   |  AZ                  |  Chandler      |  1637                |   |  WI                  |  Madison        |  1630                |   |  AZ                  |  Glendale      |  1196                |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   インストール ファイルやディ レクトリにクエ リ実⾏行行 結果 シェルを起動 (embedded モード)
  14. 14. ® © 2015 MapR Technologies 14 複雑なデータに対する直感的な SQL アクセス //  午後10時のラスベガス、おいしい中東料理が食べたい     >  SELECT  name,  stars,  b.hours.Friday  friday,  categories      FROM  dfs.yelp.`business.json`  b      WHERE  b.hours.Friday.`open`  <  '22:00'  AND                  b.hours.Friday.`close`  >  '22:00'  AND                  REPEATED_CONTAINS(categories,  'Mediterranean')  AND                  city  =  'Las  Vegas'      ORDER  BY  stars  DESC      LIMIT  2;     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |        name        |      stars        |      friday      |  categories  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  Olives          |  4.0                |  {"close":"22:30","open":"11:00"}  |   ["Mediterranean","Restaurants"]  |   |  Marrakech  Moroccan  Restaurant  |  4.0                |  {"close":"23:00","open":"17:30"}  |   ["Mediterranean","Middle  Eastern","Moroccan","Restaurants"]  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   どのネスト の階層の データも検 索索できる  
  15. 15. ® © 2015 MapR Technologies 15 ANSI SQL 互換性 //  Cool  評価が高いレストランを取得     >  SELECT  b.name  from  dfs.yelp.`business.json`  b          WHERE  b.business_id  IN      (SELECT  r.business_id  FROM  dfs.yelp.`review.json`  r        GROUP  BY  r.business_id  HAVING  SUM(r.votes.cool)  >  2000  ORDER  BY          SUM(r.votes.cool)  DESC);     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |        name  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  Earl  of  Sandwich  |   |  XS  Nightclub  |   |  The  Cosmopolitan  of  Las  Vegas  |   |  Wicked  Spoon  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   使い慣れた SQL   の機能 (ジョイン、 集計、ソート、 サブクエリ、 SQL データ型)   を利利⽤用
  16. 16. ® © 2015 MapR Technologies 16 論論理理ビュー //  business  および review データセットを組み合わせたビューを作成     >  CREATE  OR  REPLACE  VIEW  dfs.tmp.BusinessReviews  AS          SELECT  b.name,  b.stars,  r.votes.funny,                        r.votes.useful,  r.votes.cool,  r.`date`              FROM  dfs.yelp.`business.json`  b,  dfs.yelp.`review.json`  r              WHERE  r.business_id  =  b.business_id;     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |          ok          |    summary      |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  true              |  View  'BusinessReviews'  created  successfully  in  'dfs.tmp'  schema  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+     >  SELECT  COUNT(*)  AS  Total  FROM  dfs.tmp.BusinessReviews;     +------------+ | Total | +------------+ | 1125458 | +------------+ 粒粒度度が細かく、 分散的な管理理を 可能にする、軽 量量なファイルシ ステムベースの ビュー  
  17. 17. ® © 2015 MapR Technologies 17 マテリアライズドビュー、またの名を、テーブル >  ALTER  SESSION  SET  `store.format`  =  'parquet';     >  CREATE  TABLE  dfs.yelp.BusinessReviewsTbl  AS          SELECT  b.name,  b.stars,  r.votes.funny  funny,                        r.votes.useful  useful,  r.votes.cool  cool,  r.`date`              FROM  dfs.yelp.`business.json`  b,  dfs.yelp.`review.json`  r              WHERE  r.business_id  =  b.business_id;     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |    Fragment    |  Number  of  records  written  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  1_0                |  176448                                        |   |  1_1                |  192439                                        |   |  1_2                |  198625                                        |   |  1_3                |  200863                                        |   |  1_4                |  181420                                        |   |  1_5                |  175663                                        |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   使い慣れた   CTAS  シンタッ クスを利利⽤用し、 分析結果をテー ブルとして保存
  18. 18. ® © 2015 MapR Technologies 18 繰り返し値のサポート //  カテゴリの繰り返しをフラット化     >  SELECT  name,  categories      FROM  dfs.yelp.`business.json`  LIMIT  3;     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |        name        |  categories  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  Eric  Goldberg,  MD  |  ["Doctors","Health  &  Medical"]  |   |  Pine  Cone  Restaurant  |  ["Restaurants"]  |   |  Deforest  Family  Restaurant  |  ["American  (Traditional)","Restaurants"]  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+     >  SELECT  name,  FLATTEN(categories)  AS  categories      FROM  dfs.yelp.`business.json`  LIMIT  5;   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |        name        |  categories  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  Eric  Goldberg,  MD  |  Doctors        |   |  Eric  Goldberg,  MD  |  Health  &  Medical  |   |  Pine  Cone  Restaurant  |  Restaurants  |   |  Deforest  Family  Restaurant  |  American  (Traditional)  |   |  Deforest  Family  Restaurant  |  Restaurants  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   SQL  クエリの ⼀一部として、繰 り返しやネスト データ要素を動 的にフラット化
  19. 19. ® © 2015 MapR Technologies 19 繰り返し値を扱うための  ANSI SQL の拡張 //  Get  most  common  business  categories       >  SELECT  category,  count(*)  AS  categorycount      FROM  (SELECT  name,  FLATTEN(categories)  AS  category                  FROM  dfs.yelp.`business.json`)  c      GROUP  BY  category  ORDER  BY  categorycount  DESC;     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |    category    |  categorycount|   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  Restaurants  |  14303            |   …   |  Australian  |  1                    |   |  Boat  Dealers  |  1                    |   |  Firewood      |  1                    |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  
  20. 20. ® © 2015 MapR Technologies 20 Check in データセット {          "checkin_info":{                "3-­‐4":1,              "13-­‐5":1,              "6-­‐6":1,              "14-­‐5":1,              "14-­‐6":1,              "14-­‐2":1,              "14-­‐3":1,              "19-­‐0":1,              "11-­‐5":1,              "13-­‐2":1,              "11-­‐6":2,              "11-­‐3":1,              "12-­‐6":1,              "6-­‐5":1,              "5-­‐5":1,              "9-­‐2":1,              "9-­‐5":1,              "9-­‐6":1,              "5-­‐2":1,              "7-­‐6":1,              "7-­‐5":1,              "7-­‐4":1,              "17-­‐5":1,              "8-­‐5":1,              "10-­‐2":1,              "10-­‐5":1,              "10-­‐6":1        },        "type":"checkin",        "business_id":"JwUE5GmEO-­‐sH1FuwJgKBlQ"   }  
  21. 21. ® © 2015 MapR Technologies 21 動的な/未知のカラムのサポート >  SELECT  KVGEN(checkin_info)  checkins          FROM  dfs.yelp.`checkin.json`  LIMIT  1;   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |    checkins    |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  [{"key":"3-­‐4","value":1},{"key":"13-­‐5","value":1},{"key":"6-­‐6","value":1},{"key":"14-­‐5","value":1}, {"key":"14-­‐6","value":1},{"key":"14-­‐2","value":1},{"key":"14-­‐3","value":1},{"key":"19-­‐0","value":1}, {"key":"11-­‐5","value":1},{"key":"13-­‐2","value":1},{"key":"11-­‐6","value":2},{"key":"11-­‐3","value":1}, {"key":"12-­‐6","value":1},{"key":"6-­‐5","value":1},{"key":"5-­‐5","value":1},{"key":"9-­‐2","value":1}, {"key":"9-­‐5","value":1},{"key":"9-­‐6","value":1},{"key":"5-­‐2","value":1},{"key":"7-­‐6","value":1}, {"key":"7-­‐5","value":1},{"key":"7-­‐4","value":1},{"key":"17-­‐5","value":1},{"key":"8-­‐5","value":1}, {"key":"10-­‐2","value":1},{"key":"10-­‐5","value":1},{"key":"10-­‐6","value":1}]  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+     >  SELECT  FLATTEN(KVGEN(checkin_info))  checkins  FROM   dfs.yelp.`checkin.json`  limit  6;     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |    checkins    |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  {"key":"3-­‐4","value":1}  |   |  {"key":"13-­‐5","value":1}  |   |  {"key":"6-­‐6","value":1}  |   |  {"key":"14-­‐5","value":1}  |   |  {"key":"14-­‐6","value":1}  |   |  {"key":"14-­‐2","value":1}  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   動的なカラムを 数多く伴う Map を key- value ペアの配 列列に変換
  22. 22. ® © 2015 MapR Technologies 22 動的な/未知のカラムの扱いを簡単に //  日曜深夜のチェックイン数の合計を求める     >  SELECT  SUM(checkintbl.checkins.`value`)  as  SundayMidnightCheckins   FROM          (SELECT  FLATTEN(KVGEN(checkin_info))  checkins          FROM  dfs.yelp.checkin.json`)  checkintbl            WHERE  checkintbl.checkins.key='23-­‐0';     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  SundayMidnightCheckins  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  8575                                      |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  
  23. 23. ® © 2015 MapR Technologies 23 データソースをまたいだクエリ //  JSON  ファイル、Parquet、MongoDB  コレクションをジョイン     >  SELECT  u.name,  b.category,  count(1)  nb_review   FROM  mongo.yelp.`user`  u,  dfs.yelp.`review.parquet`  r,  (select  business_id,   flatten(categories)  category  from  dfs.yelp.`business.json`  )  b   WHERE  u.user_id  =  r.user_id   AND  b.business_id  =  r.business_id   GROUP  BY  u.user_id,  u.name,  b.category   ORDER  BY  nb_review  DESC   LIMIT  10;     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |      name        |      category      |  nb_review    |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  Rand            |  Restaurants    |  1086              |   |  J                  |  Restaurants    |  661                |   |  Jennifer    |  Restaurants    |  657                |   ...............  
  24. 24. ® © 2015 MapR Technologies 24 ディレクトリは暗黙的なパーティション logs   ├──  2014   │      ├──  1   │      ├──  2   │      ├──  3   │      └──  4   └──  2015          └──  1   select  dir0,  count(1)   from  dfs.logs.`*`   where  dir1  in  (1,2,3)   group  by  dir0  
  25. 25. ® © 2015 MapR Technologies 25 どのように動作するのか?
  26. 26. ® © 2015 MapR Technologies 26 すべては「Drillbit」 •  「Drillbit」が各ノードで動作 •  インメモリカラムナ実⾏行行 •  コーディネーション、プランニング、実⾏行行 •  ネットワーク接続もしくは未接続 •  JDBC, ODBC, REST をサポート •  組み込み  Web UI および  CLI •  拡張性 –  カスタム関数 –  データソース Drillbit
  27. 27. ® © 2015 MapR Technologies 27 データ局所性 HDFS HDFS HDFS mongod mongod Windows HDFS HDFS HDFS HBase HBase HBase Mac クラスタ デスクトップ HDFS & HBase クラスタ HDFS クラスタ MongoDB クラスタ
  28. 28. ® © 2015 MapR Technologies 28 データのあるところで  Drillbit を動作させる HDFS HDFS HDFS mongod mongod Windows HDFS HDFS HDFS HBase HBase HBase Mac Drillbit Drillbit Drillbit Drillbit Drillbit Drillbit Drillbit Drillbit Drillbit Drillbit クラスタ デスクトップ HDFS & HBase クラスタ HDFS クラスタ MongoDB クラスタ
  29. 29. ® © 2015 MapR Technologies 29 クエリ実⾏行行 •  クライアントがいずれかの  Drillbit  に接続 •  その  Drillbit は  Foreman(監督)になる •  Foreman は実⾏行行プランを⽣生成 –  コストベースクエリ最適化 Drillbit Drillbit Drillbit クライアント
  30. 30. ® © 2015 MapR Technologies 30 クエリ実⾏行行 •  実⾏行行  Fragment が他の  Drillbit  に委託される •  Drillbit は必要に応じてデータを交換 Drillbit Drillbit Drillbit クライアント
  31. 31. ® © 2015 MapR Technologies 31 クエリ実⾏行行 •  結果は  Foreman を経由してユーザに返る Drillbit Drillbit Drillbit クライアント
  32. 32. ® © 2015 MapR Technologies 32 セキュリティは?
  33. 33. ® © 2015 MapR Technologies 33 Drill View を介した粒粒度度の細かいセキュリティ Name City State Credit Card # Dave San Jose CA 1374-7914-3865-4817 John Boulder CO 1374-9735-1794-9711 Raw ファイル (/raw/cards.csv) オーナー Admins パーミッション   Admins ビジネスアナリスト データサイエンティスト Name City State Credit Card # Dave San Jose CA 1374-1111-1111-1111 John Boulder CO 1374-1111-1111-1111 データサイエンティスト  View (/views/maskedcards.csv) 物理理データコピーではない Name City State Dave San Jose CA John Boulder CO ビジネスアナリスト  View オーナー Admins パーミッション Business Analysts オーナー Admins パーミッション Data Scientists
  34. 34. ® © 2015 MapR Technologies 34 拡張性
  35. 35. ® © 2015 MapR Technologies 35 Apache Drill の拡張 •  ファイルフォーマット –  ORC –  XML –  ... •  データソース –  NoSQL データベース –  検索索エンジン –  REST –  ... •  カスタム関数
  36. 36. ® © 2015 MapR Technologies 36 Drill  を始める際のおすすめ •  Drill 初⼼心者は? –  無料料の  MapR オンライントレーニング –  AWS のクラウド上の  Test Drive Drill –  MapR Sandbox を利利⽤用した Drill with Hadoop の学習 •  データを分析してみたい⼈人は? –  デスクトップ PC で「Apache Drill in 10 mins」ガイドを試す –  Drill をクラスタにダウンロードしてデータ探索索を始める –  幅広いチュートリアルとドキュメント •  質問は –  user@drill.apache.org –  dev@drill.apache.org
  37. 37. ® © 2015 MapR Technologies 37
  38. 38. ® © 2015 MapR Technologies 38 Q&A @mapr_japan maprjapan sales-jp@mapr.com お問い合わせはこちらまで MapR maprtech mapr-technologies

×