35
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | HadoopRDBMSシームレスに連携させる Smart SQL Processing ビッグデータの管理・分析手法を革新する取り組み 8. July, 2014 日本オラクル株式会社 データベース事業統括 大橋雅人 [email protected]) Hadoop Conference Japan 2014

HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Embed Size (px)

DESCRIPTION

■Hadoop Conference Japan 2014 講演資料 https://hcj2014.eventbrite.com/ 『HadoopとRDBMSをシームレスに連携させるSmart SQL Processing』 大橋 雅人 日本オラクル株式会社 データベース事業統括 製品戦略統括本部 プロダクトマーケティング本部 Cloud & Big Data推進部

Citation preview

Page 1: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

HadoopとRDBMSを シームレスに連携させる Smart SQL Processing ビッグデータの管理・分析手法を革新する取り組み

8. July, 2014 日本オラクル株式会社 データベース事業統括 大橋雅人 ([email protected])

Hadoop Conference Japan 2014

Page 2: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 2

Safe Harbor Statement

以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。 Oracleは、米国オラクル・コーポレーション及びその子会社、関連会社の米国及びその他の国における登録商標または商標です。 他社名又は製品名は、それぞれ各社の商標である場合があります。

Page 3: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Agenda

1

2

3

Hadoopを取り巻く環境

Smart SQL Processing

本日のまとめ

3

Page 4: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Agenda

1

2

3

Hadoopを取り巻く環境

Smart SQL Processing

本日のまとめ

4

Page 5: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

ビッグデータ顧客事例

5

ビッグデータの分析

• R&D、サプライチェーン、顧客と消費者

•統合されたデータサイエンス組織

ビジネスの変革

•スペインの大手銀行 、 1300万の顧客

•顧客に関するすべての関連情報を収集、統合

カスタマー・エクスペリエンスの改善

• 7500万の登録プレイヤー

•ゲームを改善するためにユーザーの利用形態を把握 BDA ODA

BDA Exadata

BDA Exadata CONSUMER GOODS

FINANCIAL SERVICES

GAMING

BDA(Hadoop) :Oracle Big Data Appliance Exadata(RDBMS) :Oracle Exadata Database Machine ODA(RDBMS) :Oracle Database Appliance

Page 6: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

2つのシステムの強み

6

0

1

2

3

4

5

ツールの成熟度

高度な非機能要件

ACIDトランザク

ション

セキュリティ

データフォーマッ

トの多様性

データの密度

ETLのシンプルさ

データ格納の

コスト効率

データの格納速度

ビジネスとの

相互運用

Hadoop

RDBMS

• Hadoop とRDBMSは 補完関係にある

•補完関係であることを 活用する

•車輪の再発明は行わない

Page 7: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

0

1

2

3

4

5

ツールの成熟度

高度な非機能要件

ACIDトランザク

ション

セキュリティ

データフォーマッ

トの多様性

データの密度

ETLのシンプルさ

データ格納の

コスト効率

データの格納速度

ビジネスとの

相互運用

Hadoop RDBMS Goal

2つのシステムの強みを組みあわせる

7

• どのように構築するか

• どのように利用するか

Page 8: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Hadoopを活用する際の障壁 プラットフォームが問題なわけではない

•スキル –Hadoopを活用するツールやトレーニングの不足

•インテグレーション –Hadoopを既存のアーキテクチャに加えることの複雑さ

•セキュリティ –ガバナンスやルール遵守の明確な方法がない

8

Page 9: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 9

どうすればもっと Hadoopの活用が進むのか

Page 10: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 10

SQL

Page 11: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 11

データマネジメントの標準言語「SQL」 Happy 40th Birthday SQL!

SELECT dept, sum(salary)

FROM emp, dept

WHERE dept.empid = emp.empid

GROUP BY dept

今も活躍 より速く、より多くの場所で利用されている

YEAR 1974 YEAR 2014

Page 12: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Hadoop上でのSQL活用というトレンドは明確。だけど、、

12

Stinger

Page 13: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

より高度な関数や機能活用のニーズへの対応

• Hive QL:基本的な関数には対応 –基本的な関数

• round, sqrt, floor, ceiling, concat, lower, upper, etc.

–集計関数 • count, sum, min, max, avg, variance, stddev, etc.

–ウィンドウ関数 • lag, lead, first, last, row_number, etc.

13

SQL • Hive QL:限定的な機能

–サブクエリー

– JOIN

–分析関数

Page 14: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

next = lineNext.getQuantity();

}

if (!q.isEmpty() && (prev.isEmpty() || (eq(q, prev) && gt(q, next)))) {

state = "S";

return state;

}

if (gt(q, prev) && gt(q, next)) {

state = "T";

return state;

}

if (lt(q, prev) && lt(q, next)) {

state = "B";

return state;

}

if (!q.isEmpty() && (next.isEmpty() || (gt(q, prev) && eq(q, next)))) {

state = "E";

return state;

}

if (q.isEmpty() || eq(q, prev)) {

state = "F";

return state;

}

return state;

}

private boolean eq(String a, String b) {

if (a.isEmpty() || b.isEmpty()) {

return false;

}

return a.equals(b);

}

private boolean gt(String a, String b) {

if (a.isEmpty() || b.isEmpty()) {

return false;

}

return Double.parseDouble(a) > Double.parseDouble(b);

}

private boolean lt(String a, String b) {

if (a.isEmpty() || b.isEmpty()) {

return false;

}

return Double.parseDouble(a) < Double.parseDouble(b);

}

public String getState() {

return this.state;

}

}

BagFactory bagFactory = BagFactory.getInstance();

@Override

public Tuple exec(Tuple input) throws IOException {

long c = 0;

String line = "";

String pbkey = "";

V0Line nextLine;

V0Line thisLine;

V0Line processLine;

V0Line evalLine = null;

V0Line prevLine;

boolean noMoreValues = false;

String matchList = "";

ArrayList<V0Line> lineFifo = new ArrayList<V0Line>();

boolean finished = false;

DataBag output = bagFactory.newDefaultBag();

if (input == null) {

return null;

}

if (input.size() == 0) {

return null;

}

Object o = input.get(0);

if (o == null) {

return null;

}

//Object o = input.get(0);

if (!(o instanceof DataBag)) {

int errCode = 2114;

String msg = "Expected input to be DataBag, but"

Simplified, sophisticated, standards based syntax

SELECT first_x, last_z

FROM ticker MATCH_RECOGNIZE (

PARTITION BY name ORDER BY time

MEASURES FIRST(x.time) AS first_x,

LAST(z.time) AS last_z

ONE ROW PER MATCH

PATTERN (X+ Y+ W+ Z+)

DEFINE X AS (price < PREV(price)),

Y AS (price > PREV(price)),

W AS (price < PREV(price)),

Z AS (price > PREV(price) AND

z.time - FIRST(x.time) <= 7 ))

250行以上の Java UDF 12 行のOracle SQL

Oracle SQLなら、20倍もコードが少なくて済む

株式市場でのパターンを検出する:Double Bottom (W)

ニーズに対応するためには、コード作成が必要

Page 15: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Hadoopのセキュリティ機能はまだまだ発展途上

15

SSN EMPID LAST FIRST SALARY

111-11-1111 275895 Smith John 125275

222-22-2222 335685 Jones Sally 250950

333-33-3333 558544 Stinson Chuckie 32000

まだまだ、、

列へのアクセス制限機能

行レベルのセキュリティ機能

詳細な監査機能

マスキングなどのリダクション機能

Page 16: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Hadoopをもっともっと使いたい!でも、、

• もっと 、SQL 機能をフル活用して簡単にHadoopを活用できれば・・・

• もっと、RDBMSのデータとHadoopのデータを組み合わせて、データを移動することなく、アドホックにかつ高速に分析できれば・・・

• もっと、Hadoopにも高いセキュリティ機能があれば・・・

16

Page 17: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

RDBMS Hadoop/NoSQL Ecosystem

Big Data Management System

Page 18: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

実現へのChallenge

次のような要件を満たすシステムを創る

• SQL一つで全てのデータが使える – RDBMSと、Hadoop等全てのデータに対して、SQLの全機能を利用できる

– RDBMSと、Hadoop等全てのデータに単一のビューを提供する

– 既存アプリケーションコードに、変更の必要がない

– Hadoop やRDBMSのデータに変更や移動の必要性がない

• Hadoop上のデータに対しても、最良のパフォーマンスを提供する

• Hadoopのデータに高度なセキュリティを実装する

18

Page 19: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Agenda

1

2

3

Hadoopを取り巻く環境

Smart SQL Processing

本日のまとめ

19

Page 20: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Smart SQL Processing どうやって実現するのか? 実現のポイント

1. Oracle Databaseからのクエリーで、HDFSのデータにアクセス可能とする

2. Oracle Databaseのメタデータ管理を拡張することで、Oracle DatabaseからHDFS上のオブジェクトを把握可能とする

3. Oracle Exadata のSmart Scan同等機能をHadoopのノードに実装し、HDFSへのリクエスト処理を高速化する

4. HadoopのデータにもOracle Databaseのセキュリティ機能を適用する

20

Page 21: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Smart SQL Processing 実現のポイント1,2 Hadoop 上のデータにOracle Databaseからアクセス

HDFS Data Node

HDFS Data Node

Local Process Local Process

Oracle Storage Server

Oracle Storage Server

Local Process Local Process

Oracle SQL

Big Data Appliance +

Hadoop

Exadata +

Oracle Database

Page 22: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 22

Big Data Appliance +

Hadoop

HDFS Data Node

Exadata +

Oracle Database

Oracle Catalog

External Table

create table customer_address

( ca_customer_id number(10,0)

, ca_street_number char(10)

, ca_state char(2)

, ca_zip char(10)

)

organization external (

TYPE ORACLE_HIVE

DEFAULT DIRECTORY DEFAULT_DIR

ACCESS PARAMETERS

(com.oracle.bigdata.cluster hadoop_cl_1)

LOCATION ('hive://customer_address')

)

HDFS Data Node

HDFS Name Node

Hive metadata

External Table

Hive metadata

Smart SQL Processing 実現のポイント1,2 Hadoop のメタデータをOracle Catalogと連携

Page 23: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 23

create table customer_address

( ca_customer_id number(10,0)

, ca_street_number char(10)

, ca_state char(2)

, ca_zip char(10)

)

organization external (

TYPE ORACLE_HIVE

DEFAULT DIRECTORY DEFAULT_DIR

ACCESS PARAMETERS

(com.oracle.bigdata.cluster hadoop_cl_1)

LOCATION ('hive://customer_address')

)

Big Data Appliance +

Hadoop

HDFS Data Node

Exadata +

Oracle Database

Oracle Catalog

External Table HDFS Data Node

HDFS Name Node

Hive metadata

External Table

Hive metadata

Smart SQL Processing 実現のポイント1,2 Hadoop のメタデータをOracle Catalogと連携

create table customer_address

( ca_customer_id number(10,0)

, ca_street_number char(10)

, ca_state char(2)

, ca_zip char(10)

)

organization external (

TYPE ORACLE_HIVE

DEFAULT DIRECTORY DEFAULT_DIR

ACCESS PARAMETERS

(com.oracle.bigdata.cluster hadoop_cl_1)

LOCATION ('hive://customer_address')

)

Page 24: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 24

HDFS Data Node

Oracle Catalog

External Table

Select c_customer_id

, c_customer_last_name

, ca_county

From customers DBのテーブル

, customer_address Hadoopの外部表

where c_customer_id = ca_customer_id

and ca_state = ‘CA’

HDFS Data Node

HDFS Name Node

Hive metadata

External Table

Hive metadata

Smart SQL Processing 実現のポイント1,2 Hadoop上でのクエリの実行

HDFS Data Node

HDFS Data Node

次を決定 • データの位置 • データの構造 • 並列化

特定のデータノードにクエリを発行 • データ要求 • コンテキスト

• SerDe • RecordReader • InputFormat

Page 25: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Smart SQL Processing 実現のポイント3 よりインテリジェントなクエリの実行

25

全てのデータに クエリー実行

Oracle SQL

Oracle NoSQL DB

HDFS Data Node

Oracle NoSQL DB

HDFS Data Node

Oracle Database Storage Server

Oracle Database Storage Server

Fast 大規模な並列処理

ローカルでフィルタリング

データの移動を極小化

Storage Index

Page 26: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Storage Indexes

Smart SQL Processing 実現のポイント3 Hadoop上でのScan処理の高速化

•自動的にデータ単位毎の最大値と最小値を収集

• データ格納単位をスキャンする前に目的のデータが最大値-最小値の間にあるかを確認

•最大値-最小値の間になければ、スキャンを行わず、スキャンにかかる時間を削減

26

HDFS Data Node

HDFS Data Node

HDFS Name Node

Hive metadata

HDFS Data Node

HDFS Data Node

“Blocks”

Min Max

Min Max

Min Max

Select c_customer_id

, c_customer_last_name

, ca_county

From customers DBのテーブル

, customer_address Hadoopの外部表

where c_customer_id = ca_customer_id

and ca_state = ‘CA’

Page 27: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 27

HDFS Data Node

Oracle Catalog

External Table

Select c_customer_id

, c_customer_last_name

, ca_county

From customers DBのテーブル

, customer_address Hadoopの外部表

where c_customer_id = ca_customer_id

and ca_state = ‘CA’

HDFS Data Node

HDFS Name Node

Hive metadata

External Table

Hive metadata

Smart SQL Processing 実現のポイント3 Hadoop上でのクエリの高速化

HDFS Data Node

HDFS Data Node

“Tables”

I/OとSmart Scanの実行 • 行のフィルタ • 必要な列に絞り込み

データベースのクエリー 結果と結合

必要なデータのみ移動 • 関連する行 • 関連する列

Page 28: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 28

Smart SQL Processing 実現のポイント4 すべてのデータをセキュアに管理

Hadoop側のデータに対して 高度なセキュリティ機能を実装

• マスキング/リダクション

•仮想プライベートデータベース

• ファイングレイン・アクセス制御

Big Data Appliance +

Hadoop

Exadata +

Oracle Database

SSN EMPID LAST FIRST SALARY

111-11-1111 275895 Smith John 125275

222-22-2222 335685 Jones Sally 250950

333-33-3333 558544 Stinson Chuckie 32000

EMPID LAST FIRST

275895 Smith John

335685 Jones Sally

SSN SALARY

111-11-XXXX 125275

222-22-YYYY 250950

333-33-ZZZZ 32000

Page 29: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Agenda

1

2

3

Hadoopを取り巻く環境

Smart SQL Processing

本日のまとめ

29

Page 30: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Big Data Management System

• Oracle SQL一つで全てのデータを – Oracle Database、Hadoop、全てのデータに対して、

Oracle SQLの機能を完全に利用可能

–既存アプリケーションコードに、変更が必要ない

• Hadoop上のデータに最良のパフォーマンスを – Oracle Exadata のSmart Scan 同等機能をHadoopのノードに実装

• Hadoopのデータに高度なセキュリティを – Oracle Databaseのセキュリティ機能を継承

Page 31: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 31

Launch Webcast Oracle Big Data Breakthrough: Connect All Your Data with SQL

日本時間:7/16(水) AM2:00-3:45 Andrew Mendelsohn Executive Vice President, Database Server Technologies, Oracle

Paul Sonderegger Senior Principal, Business Intelligence Market Development, Business Analytics Product Group, Oracle

Dan McClary Principal Product Manager, Big Data, Oracle

http://www.oracle.com/bigdata

Page 32: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |

Apache Sentryへの貢献

32

Founding

・セキュリティ管理機能(ファイングレインアクセス制御)をHadoopに実装するApache Sentryの初期メンバーに参画

・Oracle Databaseで長年つちかったセキュリティーに関する技術や知見をもとにApache Sentryに貢献

Page 33: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 33

Thank you, Hadoop User Group Japan Thank you, Recruit Technologies Co.,Ltd.

Thank you, All

Page 34: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | 34

Page 35: HadoopとRDBMSをシームレスに連携させるSmart SQL Processing (Hadoop Conference Japan 2014)