53
Oracle Cloudで始める、 DBエンジニアのためのHadoop超入門 日本オラクル株式会社 クラウド・テクノロジー事業統括 立山 重幸 [email protected] 2016713Session6 16:00-16:50

Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

  • View
    1.283

  • Download
    6

Embed Size (px)

Citation preview

Page 1: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

Oracle Cloudで始める、 DBエンジニアのためのHadoop超入門

日本オラクル株式会社 クラウド・テクノロジー事業統括 立山 重幸 [email protected] 2016年7月13日 Session6 16:00-16:50

Page 2: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。

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

2

Page 3: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

最近、とっても仲良しな二人

3

Page 4: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

本日のお話

• Oracle DBのお客様においても、HadoopやNOSQL等と共存する事例が増えてきました。 RDBエンジニアの皆様も、突然Hadoopとのハイブリッドな案 件にアサイン

されて、とりあえず象本を読んでみたが途方に暮れたご経験がある方もいらっしゃるのではないでしょうか。 本セッションでは、Hadoopおよび基本的な周辺ソフトウェアを用いての開発手順をチュートリアル形式でご紹介します。

極力、基盤的なお話は触れずに、どうやって使うのかにフォーカスを当てた超入門的内容です。

4

Page 5: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

そもそもHadoopって何に使われてる?

Hadoop

売上up

Customer360

リコメンド

コストdown

バッチの 高速化

DWHの拡張

5

Page 6: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

Hadoopによるバッチの高速化

6

ETLツールや Javaなどによるバッチサーバ

As – Is 課題

DISK I/O がボトルネック

ソリューション

オフロード (Hadoopで分散処理)

スケールアップ (フラッシュ/インメモリ)

MFによる バッチ処理

処理内容 <

MIPS単価

アプリ影響:小 コスト:大

アプリ影響:中 コスト:小

Page 7: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

オフロード(Hadoopで分散処理)のイメージ

7

As-IS 処理A

処理B

処理C 処理D 処理E

To-Be

ボトルネック

処理A

処理B

処理C 処理D

処理E

処理C 処理D

処理C 処理D

処理C 処理D

短縮

Page 8: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 8

• メインフレーム・ダウンサイジング

– MIPS:30%削減

– バッチ処理時間:50%削減

• Exadata+Big Data Appliance(Hadoop 基盤)のハイブリッド構成

– 既存データマートの集約

– OPEX:約40% 削減

• データ配布モデルの近代化

– 「データありき」 vs 「スキーマ/モデルありき」

– 顧客360°ビューの実現

お客様 事例 金融業

ITコスト削減と、情報の一元化によるビジネス変革実現

La Caixa様(スペインの銀行) メインフレーム テープ サブシステム・DWH バッチ処理 レポート

Data Reservoir (Hadoop)

ソーシャルデータ

顧客情報

決済情報

バッチ処理の削減による コスト削減 メインフレーム

およびテープ上の ストレステスト データの移行

レポート

顧客360°

DWH (RDBMS)

Page 9: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

• メリット –安い!

• IAサーバ + オープンソース

–ファイルサーバー • スキーマ設計、変換しなくても、とりあえず ファイルのままデータを放りこめる

–分散できる処理は速い • スケールアウトが容易

• デメリット –管理ポイントが多い

• マネジメントシステムが発展途上

– SLAを満たすと高コストになりがち • RDBに比べて開発コストは増えます

–制約がありそう • 小回りは利きません

(RDBmsでも出来るのに) なんでHadoopなの?

9

Page 10: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

• メリット –安い!

• IAサーバ + オープンソース

–ファイルサーバー • スキーマ設計、変換しなくても、とりあえず ファイルのままデータを放りこめる

–分散できる処理は速い • スケールアウトが容易

• デメリット –管理ポイントが多い

• マネジメントシステムが発展途上

– SLAを満たすと高コストになりがち • RDBに比べて開発コストは増えます

–制約がありそう • 小回りは利きません

(RDBでも出来るのに) なんでHadoopなの?

10

ならば メリット > デメリットなところで

使えば良い ↓

要件を明確化しやすいバッチ処理が最適

Page 11: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

じゃあ、 どうやってバッチ処理をオフロードするの?

Page 12: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

MoviePlex社の重いバッチ処理をなんとかしてみる(As-Is)

12

•MoviePlex社は、ビデオのストリーミング配信する仮想会社です。 •日次で締め処理を行い、配給元会社へのロイヤリティを算出しています。

<課題> ロイヤリティ計算システムに渡すデータの前処理バッチの負荷が高く、日次バッチに収まらずにオンラインサービスに影響が発生している

日次締め処理

売上Close

バックアップ

売上集計

ロイヤリティ計算 (他システム)

ロイヤリティ 計算システム

配給会社

売上 作品別売上

支払

バッチ

Page 13: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

ご提案

• Active Data Guard/Golden Gateによるスタンバイサイトへの 低負荷なレプリケーション

• スタンバイサイトからバックアップサイトへのRMAN

• スタンバイサイトでのバッチ処理

13

構成、リスク、生産性などを鑑みると、たぶんこれがベストなソリューション

とはいえ、 クリティカルなシステムではないので、もう少し安く構築したい

そんな時には、Hadoopによるオフロードが最適

Page 14: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

To-Be象

14

•DBにある売上データをHadoopに転送する •Hadoop上で売上データを作品別に集計する •集計結果を他DBに転送する

日次締め処理

売上Close

バックアップ

売上集計

ロイヤリティ計算 (他システム)

ロイヤリティ 計算システム

配給会社 映画

購入

売上

作品別売上

支払

要件 対応ソフトウェア

Sqoop

Hive

Hadoop

Page 15: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

対応ソフトウェア

• Apache Hadoop

–大きなデータの処理が得意なファイルサーバー ≒ ACFS (クラスタファイルシステム)

• Apache Hive

– Hadoop上のファイルに対するSQL風なインターフェース ≒ 外部表

–コマンドラインは、beeline ≒ sqlplus

• Apache Sqoop

– HadoopとDB間でデータ転送するためのコマンドラインツール

15

Page 16: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

• 事前設定済のオラクルビッグデータ製品の 最新バージョンをインストール作業の必要なく、 すぐに利用可能

• OTNサイトから無料でダウンロード

• サンプルデータ込、自己学習のための動画、 デモスクリプトも公開

• RDBMS、Hadoop、NoSQL、R、Spatial, Graph、、 興味のある製品から、ビッグデータ活用の全体フローまで お好きな製品をローカルの仮想マシン環境上で

• お試し、自己学習、開発環境としてぜひお試しください

検証環境 Oracle Big Data Lite Virtual Machine

http://www.oracle.com/technetwork/database/bigdata-appliance/oracle-bigdatalite-2104726.html

16

Page 17: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

手元にマシンがないから、AWSで。。。

• あるんです。オラクルにもlaasが!

ちょっと待ってください

17

Compute Cloud Service

Storage Cloud Service

いわゆるOS貸し Oracle LinuxをはじめUbuntu,Cent,Solaris もちろんWindowsもあります

ストレージです。

でも、お高いんでしょう?

Page 18: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

Compute Cloud Service: 競合サービスとの比較 (商用Linux)

18

$0.100 /hour

$0.180 /hour

$0.310 /hour

Compute 1OCPU*

15GB RAM

EC2: m4.large 2vCPU

8GB RAM (RHEL, US East)

VMs: A5 2vCPU

14GB RAM 135GB Disk

(RHEL, US East) * OCPU(Oracle CPU) * 1OCPU = 2vCPU

2016年6月時点

Page 19: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

Storage Cloud Archive Service: 競合サービスとの比較

19

$0.001 $/GB/Mo.

$0.007 - $0.013 $/GB/Mo.

$0.011 $/GB/Mo.

Storage Cloud Archive Service

Amazon Glacier Google Nearline

競合サービスと比較し、1/10 の圧倒的価格で提供。1TB 120円/月で利用可能

2016年6月時点

Page 20: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

Oracle Cloudの使い方は以下の資料をご参照ください

http://www.slideshare.net/oracle4engineer/oracle-iaas-infrastructure-as-a-service

20

• マニュアル(英語)

– http://docs.oracle.com/cloud/latest/stcomputecs/index.html

• マニュアル(日本語)

– http://docs.oracle.com/cd/E60665_01/index.html?tab=3

• Compute Cloud Service チュートリアル

– https://docs.oracle.com/cloud/latest/stcomputecs/compute-cloud-tutorials.html

– Create an Instance Using a CentOS Linux 7 Image

– Create an Instance Using a Debian Image

Page 21: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 21

①DBからHadoopにデータ転送

さて、Hadoopに話を戻します

Page 22: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

①DBからHadoopにデータ転送

22

要件 対応ソフトウェア

•DBにある売上データをHadoopに転送する

Sqoop

Page 23: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

①DBからHadoopにデータ転送

23

1.まずは、ソースとなるOracle Tableを確認

$ sqlplus moviedemo@orcl/welcome1

> select * from movie_sales where rownum < 3;

2.Sqoopコマンドを確認してみる

$ sqoop help

Available commands:

・・・ export Export an HDFS directory to a database table

import Import a table from a database to HDFS

・・・ sqoop

import

Export

Page 24: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

①DBからHadoopにデータ転送

24

3.Sqoop importの実行

$ sqoop import

--connect jdbc:oracle:thin:@localhost:1521/orcl

--username moviedemo --password welcome1

--table MOVIE_SALES

--hive-import

-m 1

JDBC接続定義 orclに1521ポートで接続

orclのユーザネーム/パスワード

ソースとなるテーブル 条件を付けたい場合は “--query”オプションで記述

ターゲットをHive表にするオプション 表名を指定する場合は”--hive-table <tablename>”

Mapper(並列度)の数

・・・ 16/06/29 03:28:26 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1465880963618_0069 16/06/29 03:28:35 INFO mapreduce.Job: map 0% reduce 0% 16/06/29 03:28:47 INFO mapreduce.Job: map 100% reduce 0% 16/06/29 03:28:47 INFO mapreduce.Job: Job job_1465880963618_0069 completed successfully ・・・ OK Time taken: 3.36 seconds Loading data to table default.movie_sales

Page 25: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

データはどこにいった? SqoopコマンドによってHadoopにコピーされたデータを確認してみよう

25

Hadoopのファイルを確認するコマンドは「hadoop fs」

$ hadoop fs -ls /user/hive/warehouse/movie_sales

Found 1 items

-rwxrwxrwx 1 oracle hive 19096979 2016-06-29 03:28 /user/hive/warehouse/movie_sales/part-m-00000

コマンドのオプションは、通常のLinuxファイル操作と基本的には同じ

中身をちらっと見てみる Mapperを1で実行したので1ファイル作成されている

$ hadoop fs -cat /user/hive/warehouse/movie_sales/part-m-00000 |head

9999999 2010-01-01 14:14:06.0 45612 9 1.99

9999999 2010-01-01 14:18:14.0 22327 6 1.99

Hadoopからローカルにダウンロードするオプションは「-get」 アップロードは「-put」

$ hadoop fs -get /user/hive/warehouse/movie_sales/part-m-00000 カレントディレクトリに同名のファイルがダウンロードされる

Page 26: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 26

②HiveでHadoopのデータを加工

Page 27: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

②HiveでHadoopのデータを加工

27

要件 対応ソフトウェア

•Hadoop上で売上データを作品別に集計する

Hive

Page 28: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

②HiveでHadoopのデータを加工

28

1.まずは、Hiveのコマンドラインである「beeline」を起動

$ beeline

2.Hiveに接続

beeline> !connect jdbc:hive2://localhost:10000 oracle welcome1

3.Hive Tableをリストする

0: jdbc:hive2://localhost:10000> show tables;

+-------------------------------------+--+

| tab_name |

+-------------------------------------+--+

| consolidated_credit_products |

・・・ | movie_sales |

Hiveサーバに対するJDBC接続定義 ID パスワード

MYSQLのコマンドに似てる

Page 29: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

②HiveでHadoopのデータを加工

29

4.movie_salesをちょっと見てみる

0: jdbc:hive2://localhost:10000> select * from movie_sales limit 3;

0: jdbc:hive2://localhost:10000>

create table movie_sales_sum as

select movie_id,sum(sales) as sales from movie_sales group by movie_id;

5.movie_idでサマリして、新しいテーブルに挿入する

Page 30: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

②HiveでHadoopのデータを加工

30

6.作成したHive表のDDLを確認してみる

0: jdbc:hive2://localhost:10000> show create table movie_sales_sum;

実体のHadoopファイルの場所 Drop Tableすると、このディレクトリも一緒に削除される

ファイルのフォーマット 通常はTEXTだが、SeaquenceFileやParquet,ORCなど様々なものがある

列のフォーマット JsonやXML、正規表現などを2次元表に変換する仕組み

Page 31: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

ここまでの流れのおさらい

31

•Sqoopの実行 データベースのDDLをHive用に変換し、Hiveのテーブルを作成 JDBCでデータベースのデータを取得し、HIVE表にロード (HDFS上にファイルが作成される)

•HIVEQLの実行 HIVE表を読み取り、集計した結果を別のHIVE表にロード (テーブル毎にHDFSの異なるディレクトリが作成される)

Create Table

Insert Select

/user/hive/warehouse

Hadoop HDFS

data data

CTAS

Page 32: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

Hiveの位置付け

32

バッチ処理 アドホック

MapReduce/Spark Impala / Presto / Oracle Big Data SQL 等 処理エンジン

インターフェース

プログラム SQL Hive

データ Hadoop (HDFS)

開発ツール Asakusa / Oracle Data Integrator / OHSH BIツール(Tableau , Oracle BI 等)

Page 33: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

③HadoopからOracleにデータロード

Page 34: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

③HadoopからOracleにデータロード

34

要件 対応ソフトウェア

•集計結果を他DBに転送する

Sqoop

Page 35: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

③HadoopからOracleにデータロード

35

1.ターゲットになるOracleのテーブルを作成

>CREATE TABLE movie_sales_sum(

movie_id number,

sales number);

2.Sqoopのexportコマンドを実行

$sqoop export

--connect jdbc:oracle:thin:@localhost:1521/orcl

--username moviedemo --password welcome1

--table MOVIE_SALES_SUM

--hcatalog-table MOVIE_SALES_SUM

$ sqlplus moviedemo@orcl/welcome1

ターゲットになるOracleDBの設定

ソースになるHive表の設定

作業完了!!

Page 36: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

③HadoopからOracleにデータロード

36

1.ターゲットになるOracleのテーブルを作成

>CREATE TABLE movie_sales_sum(

movie_id number,

sales number);

2.Sqoopのexportコマンドを実行

$ sqoop export

--connect jdbc:oracle:thin:@localhost:1521/orcl

--username moviedemo

--password welcome1

--table MOVIE_SALES_SUM --hcatalog-table MOVIE_SALES_SUM

$ sqlplus moviedemo@orcl/welcome1

ターゲットになるOracleDBの設定

ソースになるHive表の設定

作業完了!!

Page 37: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

できたっ!! けど。。。

37

ロイヤリティ 計算システム

配給会社 映画

購入

売上

作品別売上

支払

トランザクションは良いが、マスターデータをHadoopに移すのは、セキュリティや整合性的に不安

DBへのロードを早くしたいけど、DBに負荷はかけたくない

HiveやSqoopのコーディングが面倒

そもそもロードせずに直接参照したい

Page 38: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

ここまで、ご紹介した内容は、一般的なHadoop技術 実は、Oracleは、HadoopのPaasもあるんです

38

Oracle Big Data Cloud Service

Page 39: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

蓄積

把握・加工

分析

意思決定

アクション

収集

Oracle Big Data Cloud Service データの蓄積・加工・分析など、クラウド上での全ての機能実現を支える中核基盤

39

Database

Business Intelligenc

e

Big Data Discovery

SaaS

IoT

GoldenGate

Big Data SQL

and other PaaS, SaaS, IaaS ..

Big Data Cloud Service

Data as a Service

Big Data Preparatio

n

NoSQL

Page 40: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

Oracle Big Data Cloudにある便利な機能のご紹介

40

課題 便利な機能 概要

マスターデータをHadoopに移すのは、セキュリティや整合性的に不安

OTA4H Hiveから透過的にOracleのテーブルを参照

DBへのロードを早くしたいけど、DBに負荷はかけたくない

Oracle Shell for Hadoop Loaders Hadoop側でDBパーティション単位にPumpファイルを作成し、ダイレクトロード

そもそもロードせずに直接参照したい Oracle Big Data SQL Oracle DBからHadoop上のデータをシームレスにOracle SQLでアクセス可能

HiveやSqoopのコーディングが面倒 ODI(ETLツール) GUIでデータ加工を設定

Page 41: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

OTA4H (Oracle Table Access for Hadoop) Hiveから透過的にOracleDBのテーブルを参照

41

1.OracleDBのテーブルを確認

$ sqlplus moviedemo@orcl/welcome1

> desc GENRE

ジャンルマスタ

2.Hiveのテーブルを作成

create table genre_ota4h( genre_id INT, name STRING)

STORED BY 'oracle.hcat.osh.OracleStorageHandler'

WITH SERDEPROPERTIES (

'oracle.hcat.osh.columns.mapping' = 'GENRE_ID,NAME')

TBLPROPERTIES (

'mapreduce.jdbc.url' = 'jdbc:oracle:thin:@localhost:1521:orcl',

'mapreduce.jdbc.username' = 'moviedemo',

'mapreduce.jdbc.password' = 'welcome1',

'mapreduce.jdbc.input.table.name' = 'GENRE');

3.HiveQL

Select * from genre_ota4h;

6 Comedy

43 Game-Show

・・・

マスターデータをHadoopに移すのは、セキュリティや整合性的に不安

Page 42: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

Oracle Shell for Hadoop Loaders Release 1.0.0 Hadoop用統合シェルインターフェース

42

OHSH

bash Hadoop Client

Hive Client

sqlplus OLH OSCH Copy2

Hadoop

Hadoop to Oracle高速ローダ

SQLコネクタ for HDFS

PumpファイルをHadoopにコピー

詳しくはこちら

https://blogs.oracle.com/bigdataconnectors/entry/oracle_shell_for_hadoop_loaders

Data

Oracle Loader for Hadoopの機能

M/R pump

ファイルをMapReduceでOracleDBのパーティション単位にpumpファイル化しパラレルロードする

OracleDB

DBへのロードを早くしたいけど、DBに負荷はかけたくない

Page 43: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

Oracle Shell for Hadoop Loaders Release 1.0.0

43

2.シェルの起動

$ ohsh

3.接続定義(リソース)の作成

ohsh> create hive resource hive_moviedemo database="MOVIEDEMO"

1.ターゲット表(Oracle DB)の作成

create table movieapp_log_stage(

custid number,

movieid number,

genreid number,

time varchar2(20),

recommended number,

activity number,

rating number,

sales number);

Hive

ohsh> create sqlplus resource sql user="MOVIEDEMO" connectid="orcl"

sqlplus

ohsh>

create oracle jdbc resource moviedemo user="MOVIEDEMO" connectid="orcl"

OracleDB(JDBC)

ohsh> set defaultdirectory DEFAULT_DIR

外部表用のディレクトリオブジェクト

4.ロード実行

ohsh> load oracle table moviedemo:movieapp_log_stage

from hive table hive_moviedemo:movieapp_log_stage using etl

5.確認

ohsh> %sql select * from movieapp_log_stage where rownum < 2;

Page 44: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

Oracle Big Data SQL

44

SQL一つで、 必要なデータが

高速にセキュアに返される Smart Scan クエリをHadoopの

データノードにオフロード

SQL

必要データ のみ移動

SQL

Hive metadata

Oracle DBからHadoop上のデータをシームレスにOracle SQLでアクセス可能

そもそもロードせずに直接参照したい

Cloudera HortonWorks

Oracle12c

外部表だから ・すべてのSQLクエリが実行可能 ・実表とのJOINももちろん可能 ・DBセキュリティ設定も可能

Page 45: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

Oracle Data Integrator GUIでデータ加工を設定

45

HiveやSqoopのコーディングが面倒

論理デザイン

Oracle

Hive

MySQL

Hive

物理デザイン

Oracle

MySQL

Hive

Sqoop

Sqoop

HiveQLやSqoopコマンドなどを自動生成

Page 46: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

超入門の次は?

46

超入門 (今日)

ハンズオン ラボ

Oracle Learning Library

トレーニング(無償) オンライン Hadoopおよび周辺

エコシステムの概要および運用の観点を習得

自習(無償) Big Data lite MapReduceやPig,Hive,Sparkなど

のエコシステムに一通り触れてみる BDLのダウンロードページ下部にある「Hands-on Labs」

セミナー(無償) Big Data lite Hadoopやエコシス

テムで出来る事のイメージを理解する

Page 47: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 47

Appendix

Page 48: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

Oracle Cloud Platform - 長年培ったテクノロジをクラウドへ

Application Container Cloud Java Cloud

BI Cloud

ビジネス インテリジェンス 73°

ビックデータ 探索

Database Cloud

NoSQL Database

Big Data Cloud

インテグレーション

データベース 専用マシン

ビックデータ 専用マシン

Hadoop NoSQL

Internet of things

リレーショナル データベース

Big Data Discovery

Cloud

Integration Cloud

IoT Cloud

Application Container

Cloud

コンテナ型仮想技術 スクリプト言語 等

ビジュアル アナリティクス

Data Visualization

Cloud

統合運用管理

コードレス 開発

Application Builder Cloud

Management Cloud

「エンタープライズ」「堅牢性」 「イノベーション」「流動性」

Page 49: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

New! Oracle Cloud 基本戦略

On-Premises

DEVELOP AND DEPLOY ANYWHERE

Public Cloud

同じ「アーキテクチャ」 同じ「オラクル製品」 同じ「知識・ノウハウ」

Cloud at Customer

New Public Cloud のサービスをそのままお客様DC内で利用可能に

Page 50: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

• 開発・検証の効率化

– 損保ジャパン日本興亜 (Java)

– テンプホールディングス (DB, Exadata)

– 東京ガスiネット (DB, Java)

– マツダ (DB, Java)

– ライトウェル (DB)

– リコー (DB, Java)

• 新規システムの迅速な展開

– アイデム (DB)

– アクサ損害保険 (DB, Java)

– ソフトバンク/PSソリューションズ (IoT, DB, Java)

– 萩原電気 (DB)

• BI Cloud Service

– DAサーチ&リンク

– パソナ

• Documents Cloud Service

– アイアンドディー

– 愛仁会

– アウトソーシング

– 生活クラブ連合会

• Integration Cloud Service

– ウイングアーク1st

• Management Cloud Service

– NTTデータ先端技術

Oracle Cloud Platform – お客様活用事例(抜粋) *敬称略

– パンチ工業

– ときわ会 常磐病院

– ファンケル

– フォーサイトシステム

– リコー

• Mobile Cloud Service

– 東京ガスiネット

Oracle Cloud Platform(PaaS/IaaS):お客様活用事例 http://bit.ly/29fFYuO

Page 51: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

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

どれだけカンタンに 環境を作成できるんだろう・・・

使い勝手を試してみたい!

使うために必要な設定を確認したい!

どんなツールが あるんだろう・・・ トライアルのお申し込みサイトはコチラ

トライアルのお申し込みサイト

- 上記サイトより、ご利用したいクラウドサービスを選択し、お申し込み頂けます。 - Oracle PaaS/IaaSの各サービスは「プラットフォーム(PaaS/IaaS)」項目をご参照ください

Database Cloud Database Backup Java Cloud BI Cloud Documents Cloud 等々

詳細なお申込み方法はFAQにてご案内しております 以下手順にて申し込みしたい該当サービスのFAQをご参照ください

- https://faq.oracle.co.jp/app/home へアクセス

- 検索キーワードに [オラクル クラウド トライアル] を入力

お申込みの流れ

お申し込みは数ステップでカンタン!30日間お試し放題!!

Oracleプロファイルの ご登録

トライアルサブスクリプション のサインアップ

トライアル環境への アクセス

Page 52: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 52

Page 53: Oracle Cloudで始める、DBエンジニアのためのHadoop超入門(db tech showcase 2016 Oracle セッション資料)