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.
1 of 11

Drill超簡単チューニング

5

Share

Download to read offline

Drill Meetup on 2016/3/22 板垣 輝広

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Drill超簡単チューニング

  1. 1. ® © 2016 MapR Technologies 1® © 2016 MapR Technologies 1MapR Confidential © 2016 MapR Technologies ® Drill 1.4 超簡単パフォーマンスチューニング 板垣 輝広 System Engineer, MapR technologies 2016/3/22
  2. 2. ® © 2016 MapR Technologies 2® © 2016 MapR Technologies 2MapR Confidential MapR Drill 1.4 超簡単パフォーマンスチューニング • Parquet(パーケ)ファイル • Parquetパーティションプルーニング • Parquetメタデータキャッシュ
  3. 3. ® © 2016 MapR Technologies 3® © 2016 MapR Technologies 3MapR Confidential 1.Parquetファイル Parquet は列⽅向にデータ変換しバイナリ形式でファイルに格納します。また、カラム情 報であるメタデータも同時に格納するために、読み出し時に外部のスキーマ情報に頼る必 要がありません。 • Parquetの利点は⼀般的なカラムナストレージと同様、列⽅向にデータを保存して読み 出せるため、必要なデータのみをすばやく読み取ることができることです。 • また、列⽅向には同⼀型のデータが並んでいるため⾼い圧縮率が適⽤可能で、それが データ容量の節約とさらなるデータ読み取りの⾼速化に貢献することなどです。 http://www.slideshare.net/julienledem/th-210pledem?related=1
  4. 4. ® © 2016 MapR Technologies 4® © 2016 MapR Technologies 4MapR Confidential Parquetフォーマットテーブルの作成 http://parquet.incubator.apache.org/documentation/latest/ • Create table as selectでファイルからテーブルを再作成するだけでパーケフォーマット でデータを格納します。(デフォルトがパーケフォーマットです) create table dfs.tmp.orders_table as select * from dfs.`/DATA_TSVH/orders.csv`; 作成例 カラム1のデータ カラム2のデータ メタデータ
  5. 5. ® © 2016 MapR Technologies 5® © 2016 MapR Technologies 5MapR Confidential 2.パーティション・プルーニング • CREATE時に指定したパーティションキーに基づき、同じデータを持つレコードは同じファイルに格納 することでWhere条件で指定されたデータを格納するファイルのみをスキャンします。 create table dfs.tmp.orders_table partition by ( o_orderdate ) as select * from dfs.`/mapr/demo.mapr.com/TPCH/DATA_TSVH/orders.csv`; パーティションテーブル作成例
  6. 6. ® © 2016 MapR Technologies 6® © 2016 MapR Technologies 6MapR Confidential パーティション・プルーニングのPlan出力 EXPLAIN PLAN for select * from test_parquet1 where O_ORDERDATE = '1992-06-03'; +------+------+ | text | json | +------+------+ | 00-00 Screen 00-01 Project(*=[$0]) 00-02 Project(*=[$0]) 00-03 Scan(groupscan=[ParquetGroupScan [entries=[ReadEntryWithPath [path=/tmp/test_parquet1/0_0_53.parquet]], selectionRoot=maprfs:/tmp/test_parquet1, numFiles=1, usedMetadataFile=false, columns=[`*`]]]) アクセスプランの確認例: 1ファイルにのみアクセス
  7. 7. ® © 2016 MapR Technologies 7® © 2016 MapR Technologies 7MapR Confidential 3.Parketメタデータのキャッシュ • Parquet フォーマットのテーブルにおいてアクセスするファイル数が多い場合、メタデータをキャッシン グすることでquery-planning phaseのパフォーマンスの向上が期待できます。(数千ファイル以上の場 合など) • REFRESH TABLE METADATAコマンドでテーブルのルートディレクトリを指定してキャッシュファイルを 作成します。 • 一度キャッシュされたメタストアデータは全セッションで有効です。 • Parquetファイルに対する変更があった場合は、最初のクエリ実行時に動的にファイルを再作成します。 0: jdbc:drill:zk=maprdemo:5181> REFRESH TABLE METADATA dfs.tmp.test_parquet1; コマンド実行例 $ ls -afltr -rwxr-xr-x 1 mapr mapr 3869602 3月 12 10:42 1_8_9.parquet -rwxr-xr-x 1 mapr mapr 6369606 3月 12 10:42 1_3_3.parquet -rwxr-xr-x 1 mapr mapr 146423 3月 12 11:56 .drill.parquet_metadata -rwxr-xr-x 1 mapr mapr 6249975 3月 12 10:42 1_7_5.parquet -rwxr-xr-x 1 mapr mapr 6341667 3月 12 10:42 1_3_4.parquet 件数/データタイプ/NULL値の有無 等の情報を格納 手動でファイル削除することで設定を 無効化できます。
  8. 8. ® © 2016 MapR Technologies 8® © 2016 MapR Technologies 8MapR Confidential Parquetメタデータのキャッシュの確認 EXPLAIN PLAN for select * from test_parquet1 where O_ORDERDATE = '1992-06-03'; +------+------+ | text | json | +------+------+ | 00-00 Screen 00-01 Project(*=[$0]) 00-02 Project(*=[$0]) 00-03 Scan(groupscan=[ParquetGroupScan [entries=[ReadEntryWithPath [path=/tmp/test_parquet1/0_0_53.parquet]], selectionRoot=/tmp/test_parquet1, numFiles=1, usedMetadataFile=true, columns=[`*`]]]) アクセスプランの確認例 キャッシュしたメタデータを使用
  9. 9. ® © 2016 MapR Technologies 9® © 2016 MapR Technologies 9MapR Confidential Parquetメタデータのキャッシュの効果 • テーブルを構成するParquetファイルの数が多い場合に効果的です。 • Parquetフォーマットでは各ファイルにメタデータを保持しているため、アクセスす るファイル数が多くなるに従いオーバーヘッドが増加しますが、キャッシングにより オーバヘッドを削減できます。 (検証では1000 parquet ファイルで約1秒程度) • 特にTableau(BIツール)からのDrill ODBC経由での接続時には、SQL構文解析 フェーズでLimit 0句のクエリを内部発行しますので応答時間が改善されます。
  10. 10. ® © 2016 MapR Technologies 10® © 2016 MapR Technologies 10MapR Confidential Partition pruning + MetaData Cacheの効果 seconds select l_returnflag, l_linestatus, sum(l_quantity) as sum_qty, sum(l_extendedprice) as sum_base_price, sum(l_extendedprice * (1 - l_discount)) as sum_disc_price, sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge, avg(l_quantity) as avg_qty, avg(l_extendedprice) as avg_price, avg(l_discount) as avg_disc, count(*) as count_order from lineitem where l_year = ‘1996’ and l_month = ‘01’ group by l_returnflag, l_linestatus order by l_returnflag, l_linestatus; Amazon EC2 X3.large (2 vcpu / 15GB memory) × 3 nodes 12GB text data (1億件) total 840 files 総ファイル数が800程度であったためMetaData caheの効果はあまり得られませんでしたが、 Partition pruningにより大幅に応答時間が向上 0 10 20 30 40 50 60 70 CSV Parquet Parquet+Cache FULL Scan( 84 months) - 12GB 1Month Scan- 150MB 59.8 54.7 29.4 2.3 28.1 1.5
  11. 11. ® © 2016 MapR Technologies 11® © 2016 MapR Technologies 11MapR Confidential Q&A @mapr sales-jp@mapr.com Engage with us! mapr-technologies

×