SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
[JPOUG Presents]
デスクトップアナリティクスの奨め
Tomoaki Uchimura
12-Jun-2015
自己紹介:内村 友亮(うちむら ともあき)
• 2007年に中途入社後、DBアーキテクト
として大規模ミッションクリティカルシステム
のマイグレーションやアップグレードに
従事。2013年から、テクノロジー製品
のリファレンス展開するコンサル部門を
担当。最近の関心事はRとCloud。
• 拙著、即戦力のOracle管理術、
Oracleの現場を効率化する100の技、
発売中。
(いずれも技術評論社)
2
• ビジョン:DBでアジアを変える
• 日本オラクル株式会社
テクノロジーコンサルティング統括本部
テクニカルアーキテクト本部
DBソリューション部 部長
はじめに
• 今、アプリケーションとITインフラの
「はざま」を埋めるDBAが扱うデー
タに変化の兆しがあります。構造化
データに加えて、非構造化データが含
まれるようになりました。
• 理由は、お客様や業務部門担当者様が
、統計解析を使って、データを有
効活用するようになったからです。
• このような状況を踏まえて、まずは身
の丈のスキルアップとして、デスク
トップアナリティクスを始めま
せんか?というお話をさせて頂きま
す。
3
データの活用度
デ
ー
タ
の
多
様
さ
R C
C
C
C RR
AnalyticsData modeling
Structured Data
(SoR)
Unstructured Data
(SoE)
①データの範囲が広がり、
②データ活用が可能に。
Program Agenda
1
2
3
デスクトップアナリティクスの奨め
デスクトップアナリティクスを知ろう
統計解析環境「R」を知ろう
デスクトップアナリティクスをやろう
4
4
免責
本資料に記載された内容は、情報の提供のみを目的としています。したがって、本資料を用いた運用は、必ずお客様自身の責任と判断によって行ってください。これらの情報の運用の結果に
ついて、講演者はいかなる責任も負いません。本資料は Oracle Database の製品サポートとは無関係ですので、本資料を元に Oracleサポートに問い合わせることはご遠慮ください。また、
本資料で紹介するパーティションやクラスタなどの応用的な機能を使用するためには、追加ライセンスなどが必要な場合があります。詳しくはオラクル社ホームページ
(http://www.oracle.com/jp/index.html)を確認願います。なお、本資料において示されている見解は、講演者の見解であって、オラクル社の見解を必ずしも反映したものではありませ
んのでご了承ください。本資料記載の情報は、2015 年 6 月 4 日現在のものを掲載していますので、ご利用時には、変更されている場合もあります。また、ソフトウェアはバージョンアッ
プされる場合があり、本資料での説明とは機能内容や画面図などが異なってしまうこともあり得ます。
デスクトップアナリティクスの奨め
5
日々の仕事に分析習慣を取り入れませんか?
• The Oracle R Enterprise 1.4 brings Deep Learning power to the Enterprise by
using the existing computational power of the Oracle Database and taking
advantage of an innovative proprietary parallel solver that can solve very large
problems with extreme compute efficiency while still using the data science
language of choice – R.
機械学習 - Deep Learning がもう使えます
(サンプルコード)
library(h2o)
localH2O = h2o.init(ip = "localhost", port = 54321, startH2O = TRUE)
# データの読み込み(今回はiris)
irisPath = system.file("extdata", "iris.csv", package = "h2o")
iris.hex = h2o.importFile(localH2O, path = irisPath)
h2o.deeplearning(x = 1:4, y = 5, data = iris.hex, activation = "Tanh")
# H2Oのシャットダウン
h2o.shutdown(localH2O)
6
http://www.cs.utexas.edu/~cannata/dataSci/Oracle%20Advanced%20Analytics/Oracle%20R%20Enterprise-1-4-new-features-2176517.pdf
相関分析(cor) – 収入と消費財の関係は?
7
総務省の家計調査
円
千万円
デスクトップアナリティクスをお奨めする理由は?
• DBAが扱うデータが変化
– 構造化・非構造化によらず活用する
ことが増えている
– お客様や業務部門の方の判断を最適
化し続けるために、多様化した膨大
なデータの価値を知として最大化す
るプレッシャーが高まった。
• DBAが扱う業務フローが変化
– 業務に、統計解析を活用することが
増えている
– 統計解析手法と外部環境の多様化し
た膨大なデータが入手しやすくなり
、データの本当の価値を判断しやす
くなった。
8
先に紹介した点の他に、次の理由があるからです。
新たなスキルセットとしてのデスクトップアナリティクス
• 近年、日本企業では戦略的なデー
タの活用が加速化している
• 近い将来、DBAが扱うデータは
、構造化データから非構造化デー
タへ広がりを見せる
• 構造化/非構造化のデータを問わ
ず、データを棚卸できれば、そ
の先にデータ活用が可能に!
9
データの活用度
デ
ー
タ
の
多
様
さ
R C
C
C
C RR
②データ活用が可能に。
デスクトップアナリティクスは、DBAが注力すべき技術領域のひとつです。
AnalyticsData modeling
Structured Data
(SoR)
Unstructured Data
(SoE)
①データの範囲が広がり、
デスクトップアナリティクスを知ろう
10
日々の仕事に統計解析を使うには?
デスクトップアナリティクスの使いどころ
11
効率化できる
ことを探す
思考の無限ループを有
限ループにする
量が多すぎるデータを
俯瞰する
(データ→情報→知見→判断)
Heatmap – 表領域ごとの論理読み込みデータブロックの状況
12
(サンプルコード)
13
13 Step
setwd("<作業用のパスを指定>") # 作業ディレクトリを指定する
library(reshape2) # ライブラリの読み込み
seg1 <- read.csv("seg.csv") # セッションデータを読み込む
seg2 <- melt(seg1, id=c("ROWNUM","BEGIN_INTERVAL_TIME","TABLESPACE_NAME"), na.rm=TRUE) # マトリクス形式にする
seg3 <- acast(seg2, seg2[,2]~seg2[,3],value = seg2[,4],fun.aggregate = sum)
x <- (1:nrow(seg3)) # 描画時のx軸の値を設定する
y <- (1:ncol(seg3)) # 描画時のy軸の値を設定する
png("plot01.png") # 出力先を指定
image(x,y,seg3,col=heat.colors(100), xaxt = "n", yaxt = "n", ann=FALSE) # ヒートマップを描画
axis(side=1,labels=c(rownames(seg3)),at=1:nrow(seg3),cex.axis=0.8,las=1) # x軸ラベルの設定
axis(side=2,labels=c(colnames(seg3)),at=1:ncol(seg3),cex.axis=0.8,las=1) # y軸ラベルの設定
title(main="表領域ごとの論理読み込みデータブロックの状況") # タイトルの指定
dev.off() # 出力を終了する
※このサンプルコードは、セグメントレベルの履歴統計情報を、以下のSQLで事前出力しています。
SQL> SELECT ROWNUM||','||BEGIN_INTERVAL_TIME||','||TABLESPACE_NAME||','||datum
FROM (
SELECT ss.BEGIN_INTERVAL_TIME, sego.TABLESPACE_NAME, SUM(seg.LOGICAL_READS_DELTA) datum
FROM DBA_HIST_SEG_STAT seg,
DBA_HIST_SNAPSHOT ss,
DBA_HIST_SEG_STAT_OBJ sego
WHERE seg.SNAP_ID = ss.SNAP_ID
AND seg.DBID = ss.DBID
AND seg.INSTANCE_NUMBER = ss.INSTANCE_NUMBER
AND seg.DBID = sego.DBID
AND seg.TS# = sego.TS#
AND seg.OBJ# = sego.OBJ#
GROUP BY ss.BEGIN_INTERVAL_TIME, sego.TABLESPACE_NAME
ORDER BY ss.BEGIN_INTERVAL_TIME
)dhseg;
古典的多次元尺度法 – テクノロジスト探索器
14
(サンプルコード)
15
# (事前準備)スキルマトリクスやレジュメから、個人を特定しないように、技術情報だけを抽出したテキストを作成しておきます。
library (RMeCab) # 日本語形態素解析用ライブラリ
library(rgl) # 三次元プロット用ライブラリ
sb <- docMatrix(mydir = "/test/doc", minFreq = 2 ) # ドキュメントを読み込み、最低出現頻度2回を抽出する。
sb.p <- sb/apply(sb, 1, sum) # 個別値を行単位に合計したもので割ることで相対値を求める。
sb.ed<-dist(t(sb.p[5:83,])) # dist関数で、距離行列を求める(全データ点同士の距離)
sb.mds<-cmdscale(sb.ed, 3) # cmdscale関数で、古典的多次元尺度法により、3次元化する
x <- sb.mds[,1] # x値の設定
y <- sb.mds[,2] # y値の設定
z <- sb.mds[,3] # z値の設定
plot3d(x, y, z, type="s", col=rainbow(12), size=4) # 三次元プロット(s指定は、固有値の球体表示)
text3d(x, y, z, text=rownames(sb.mds), adj=1, justify="right") # テキストの表示
grid3d(c("x", "y+", "z")) # グリッドの表示
12 Step
Word cloud – Twitterから見えるOpenWorldの状況
16
(サンプルコード)
17
25 Step
# (事前準備)Twitterアプリケーションを作成しておきます。
setwd("<作業ディレクトリを指定>") # 作業ディレクトリの指定
library( twitteR ) # Twitter接続用に、パッケージ「twitteR」を読み込みます
consumerKey <- "XXXXX" # Consumer Key をセットします
consumerSecret <- "XXXXX" # Consumer Secret をセットします
accessToken <- "XXXXX" # Access Token をセットします。
accessTokenSecret <- "XXXXX" # Access Token Secret をセットします
setup_twitter_oauth( consumerKey, consumerSecret, accessToken, # R で認可情報を使用するため、
accessTokenSecret ) # setup_twitter_oauth()関数を実行します
tweets <- userTimeline( "Oracle", n = 3200) # TwitterのTimelineを取得します
sink( file = "tweets.R" ) # 結果をファイル "tweets.R" に書き込みます
tweets # 変数「tweets」を表示します
sink() # 出力を再びコンソールに切替えます
library( RMeCab ) # 日本語テキストの解析用に、パッケージ「RMeCab」を読み込みます
twitWord <- RMeCabFreq( "tweets.R" ) # RMeCabFreq()関数で、変数「Tweets」を日本語形態素解析します
excludeWord <- read.table( "Exclude.txt", header = T ) # 除外キーワードリストを読み込みます
twitWord <- twitWord[twitWord[, 2] == "名詞"&
( twitWord[, 3] == "一般" | twitWord[, 3] == "固有名詞" ),] # 変数「Tweets」を、一般名詞と固有名詞に絞り込みます
twitWord <- cbind( twitWord, c(rep(0, times = nrow( twitWord )))) # 変数「twitWord」に、除外用フラグ列を追加します
twitWord[na.omit( match( excludeWord$exclude, twitWord$Term )), 5] <- 1 # 除外キーワードリストとマッチするものは除外フラグをオンにします
twitWord <- twitWord[ twitWord[,4] > 4 & twitWord[,5] == 0, ] # 頻出度が5回以上の語に絞り込みます
library( wordcloud ) # ワードクラウド生成用に、パッケージ「wordcloud」を読み込みます
library( RColorBrewer ) # カラーパレット用に、パッケージ「RColorBrewer」を読み込みます
wordcloud( twitWord[,1],twitWord[,4], scale = c( 6, 1 ), # ワードクラウドを描画します
min.freq = 3, max.words = Inf, random.order = FALSE,
rot.per = .05, colors = brewer.pal( 8, "Dark2" ))
アソシエーション分析 – 技術領域ともの
18
(サンプルコード)
19
24 Step
# 初期処理
library(RMeCab) # ライブラリの読み込み
library(arules) # ライブラリの読み込み
library(arulesViz) # ライブラリの読み込み
library(igraph) # ライブラリの読み込み
setwd("<作業ディレクトリを指定>") # 作業ディレクトリの指定
output <- "<結果の出力先ファイル>" # 結果出力ファイル
exclude <- "<除外したいキーワードを列挙したファイル>" # 除外キーワードリスト
e1 <- read.table(exclude, header=T) # 除外キーワードリストの読み込み(恣意的なデータ除外)
files <- list.files() # 日報ファイルのリストを取得
for (file.name in files) { # 日報ファイルを繰り返し処理する
kekka <- RMeCabFreq( file.name ) # RMeCabによる日報の読み込み
buf4 <- kekka[kekka[,2]=="名詞" & kekka[,3]=="固有名詞",] # 名刺と固有名詞のみを抽出
kekka2 <- rbind(buf4) # 対象となる行を追加
kekka2 <- cbind(kekka2, c(rep(0, times=nrow(kekka2)))) # 除外用フラグを追加(5列目)
kekka2[na.omit(match(e1[,1], kekka2[,1])), 5] <- 1 # 除外用フラグオン
kekka3 <- kekka2[kekka2[,5] == 0,] # 除外しないキーワードを抽出
kekka4 <- t(paste(kekka3[,1], "," )) # キーワード(1列目)を抽出して、csv形式に連結(paste)後に、行列転置(t)
write.table(kekka4, output, quote=F, row.names=F, col.names=F, append=T) # 一旦、フラットファイルに出力
}
kekka5 <- read.transactions(output,sep=",",rm.duplicates=TRUE) # トランザクションとして読み込む
ap<-apriori(kekka5,parameter=list(supp=0.08,maxlen=10,confidence=0.8)) # aprioriによるルール抽出
inspect(head(sort(ap,by="support"),n=100)) # 内容を一部確認
# 前ページのサンプルは、GEXF (Graph Exchange XML Format)に変換して、gephi(オープンなグラフ可視化プラットフォーム)で描画しています。
20
Bayesian network– 新しいリファレンス展開
の兆し
(サンプルコード)
# 週報からコンサルタント毎の技術用語を抽出し、CSVファイルを作成。
# その後、エクセル上で、類義語をまとめ、因子となる売上高を追加します。
setwd("working_dir") # 作業ディレクトリ
tcList <- "tc_name_dic.txt" # 社員名リスト
mailList <- "mail_name_dic.txt" # メール⇔日本語名マッピング用
prodList <- "product.txt" # 社員名リスト
library(reshape2) # クロス集計用ライブラリ
library(igraph) # グラフ描画用ライブラリ
library(RMeCab) # 日本語形態素解析用ライブラリ
modeRead <- "r" # ファイル読み込みモード
txtFrom <- "^From" # メールアドレス抽出用
txtDmain <- "@oracle.com" # メールアドレス抽出用
txtBig <- "<" # メールアドレス抽出用
txtFreq <- "Freq" # クロス集計用
files <- list.files() # ファイルリスト取得
kekka2 <- data.frame() # 空のデータフレーム作成
tc <- read.table(tcList, header=T) # テクコンメンバの読み込み
ml <- read.table(mailList, header=T, sep=",") # メール⇔日本語名マッピング用
pl <- read.table(prodList, header=T) # 製品リストの読み込み
for (file.name in files) { # 週報データを読み込む
# 名前リスト抽出
kekka <- RMeCabFreq(file.name) # 日本語形態素解析
kekka <- cbind(kekka, FLG=c(rep(0, times=nrow(kekka)))) # 除外用フラグを追加(5列目)
kekka <- cbind(kekka, FLG2=c(rep(0, times=nrow(kekka)))) # 除外用フラグを追加(6列目)
kekka[na.omit(match(tc[,1], kekka[,1])), 5] <- 1 # テクコンメンバフラグオン
kekka[na.omit(match(pl[,1], kekka[,1])), 6] <- 1 # 製品リストフラグオン
# メールアドレス抽出(テキスト冒頭にFromを含むもの)
awrBuf <- file(file.name, modeRead ) # ファイル読み込み
awrTxt <- as.list(readLines(awrBuf)) # テキスト読み込み
close(awrBuf) # ファイルクローズ
mailBuf <- matrix(awrTxt[grep(txtFrom, awrTxt, perl = TRUE)]) # メールアドレス抽出(テキスト冒頭にFromを含むもの)
mailAdr <- matrix(gsub("¥"", "", toupper(sub(txtDmain, "", ifelse(regexpr(txtBig, mailBuf) == -1,
substr(mailBuf[,1], 7, nchar(mailBuf)), substr(mailBuf, 7, regexpr(txtBig, mailBuf)-2))))))
# メールアドレス(英字)を日本語氏名に変換する
mailAdr2 <- matrix(if(!is.null(grep(mailAdr[1,],ml$empeng)))
{ ml[grep(mailAdr[1,],ml$empeng),2] } else { mailAdr[1,] })
kekka <- cbind(kekka, NAME=c(rep(mailAdr2, times=nrow(kekka)))) # 氏名を追加(6列目)
kekka2 <- rbind(kekka2, kekka[kekka[,6] == 1,]) # 結果をバインドする
}
kekka3 <- aggregate(kekka2$Freq, list(kekka2$NAME, kekka2$Term), sum) # 週報提出、製品名で、頻出度を集計
kekka4 <- melt(kekka3, value_name=(x)) # クロス集計準備
ksl <- dcast(kekka4, Group.1~Group.2,sum) # Var1とVar2でクロス集計
write.csv(ksl, “BayesNet2014.csv”, append=TRUE) # ファイル出力
# ベイジアンネットワークを作成します
library(deal) # ベイジアンネットワーク用ライブラリ
setwd("working_dir") # 作業ディレクトリ
bayesNet <- "BayesNet2014.csv" # ネットワーク用ファイル
bn <- read.table(bayesNet, header=T, sep=",") # データファイル読み込み
rownames(bn) <- bn$Name # 行名の変更
bn <- subset(bn[,3:length(bn)]) # 分析対象データの切り出し
bn[,1] <- as.factor(bn[,1]) # 分析対象をfactorに変換する。(他はinteger)
bn.nw <- network(bn)
plot(bn.nw)
bn.pr <- jointprior(bn.nw)
bn.ln <- learn(bn.nw,bn,bn.pr)
bn.nw <- getnetwork(bn.ln)
bn.as <- autosearch(bn.nw,bn,bn.pr)
plot(getnetwork(bn.as))
print(bn.as)
21
61 Step
22
Graph analysis – 技術領域とヒト
23
(サンプルコード)
setwd(“working_dir”) # 作業ディレクトリ
tcList <- “tc_name_dic.txt" # 社員名リスト
mailList <- “mail_name_dic.txt" # メール⇔日本語名マッピング用
prodList <- “product.txt" # 社員名リスト
library(igraph) # グラフ描画用ライブラリ
library(RMeCab) # 日本語形態素解析用ライブラリ
modeRead <- "r" # ファイル読み込みモード
txtFrom <- "^From" # メールアドレス抽出用
txtDmain <- "@oracle.com" # メールアドレス抽出用
txtBig <- "<" # メールアドレス抽出用
txtFreq <- "Freq" # クロス集計用
files <- list.files() # ファイルリスト取得
kekka2 <- data.frame() # 空のデータフレーム作成
tc <- read.table(tcList, header=T) # メンバリストの読み込み
ml <- read.table(mailList, header=T, sep=",") # メール⇔日本語名マッピング用
pl <- read.table(prodList, header=T) # 製品リストの読み込み
for (file.name in files) { # 週報データを読み込む
# 名前リスト抽出
kekka <- RMeCabFreq(file.name) # 日本語形態素解析
kekka <- cbind(kekka, FLG=c(rep(0, times=nrow(kekka)))) # 除外用フラグを追加(5列目)
kekka <- cbind(kekka, FLG2=c(rep(0, times=nrow(kekka)))) # 除外用フラグを追加(6列目)
kekka[na.omit(match(tc[,1], kekka[,1])), 5] <- 1 # 対象メンバフラグオン
kekka[na.omit(match(pl[,1], kekka[,1])), 6] <- 1 # 製品リストフラグオン
# メールアドレス抽出(テキスト冒頭にFromを含むもの)
awrBuf <- file(file.name, modeRead ) # ファイル読み込み
awrTxt <- as.list(readLines(awrBuf)) # テキスト読み込み
close(awrBuf) # ファイルクローズ
mailBuf <- matrix(awrTxt[grep(txtFrom, awrTxt, perl = TRUE)]) # メールアドレス抽出(テキスト冒頭にFromを含むもの)
mailAdr <- matrix(gsub("¥"", "", toupper(sub(txtDmain, "", ifelse(regexpr(txtBig, mailBuf) == -1,
substr(mailBuf[,1], 7, nchar(mailBuf)), substr(mailBuf, 7, regexpr(txtBig, mailBuf)-2))))))
mailAdr2 <- matrix(if(!is.null(grep(mailAdr[1,],ml$empeng))) { ml[grep(mailAdr[1,],ml$empeng),2] } else
{ mailAdr[1,] }) # メールアドレス(英字)を日本語氏名に変換する
kekka <- cbind(kekka, NAME=c(rep(mailAdr2, times=nrow(kekka)))) # 氏名を追加(6列目)
kekka2 <- rbind(kekka2, kekka[kekka[,6] == 1,]) # 結果をバインドする
}
# 週報提出者、週報出現氏名でグループ化
kekka3 <- aggregate(kekka2$Freq, list(kekka2$NAME, kekka2$Term), sum)
# 自分自身へのエッジを削除
kekka4 <- kekka3[substr(kekka3[,1], 1, regexpr(" ", kekka3[,1]) - 1)!=kekka3[,2],] sortlist<-
order(kekka4[,2],decreasing = TRUE)
fwn<-kekka4[sortlist,]
wng<-graph.data.frame(fwn[fwn$x > 5,]) # 頻出度がn回以上を対象とする
# 属性の表示の有効化
igraph.options(print.graph.attributes=TRUE)
igraph.options(print.vertex.attributes=TRUE)
igraph.options(print.edge.attributes=TRUE)
V(wng)$color <- rgb(221, 221, 221, maxColorValue=255) # 通常のノードはライトグレー
V(wng)$frame.color <- rgb(221, 221, 221, maxColorValue=255) # ノードのフレームもライトグレー
# 週報提出メンバを赤色にする
V(wng)[V(wng)$name%in%ml$empjp[ml$dept == "DBソリューション部"]]$color <- rgb(255, 0, 102, maxColorValue=255)
V(wng)[V(wng)$name%in%ml$empjp[ml$dept == "DBソリューション部"]]$frame.color <- rgb(255, 0, 102,
maxColorValue=255)
V(wng)$size <- degree(wng) # ノードサイズを次数により決定
E(wng)$weight <- E(wng)$x # 頻出度によって重みを付ける
E(wng)[E(wng)$Freq > 10]$weight <- 11 # 10より頻出度の高いものは11にする
# グラフの描画
tkplot(wng, layout=layout.fruchterman.reingold,
vertex.label=V(wng)$name, vertex.label.color="blue",
edge.width=E(wng)$weight*0.05, edge.curved = TRUE,
canvas.width=1200, canvas.height=600)
70 Step
注意
• 非構造化データはノイズの塊
– データ分析の視点を明確にしてからデータ収集する
• 統計解析の種類を決めるとよい
– 現状の把握、因果関係の洞察、今後の予測、のどれか?
– デスクトップ・アナリティクスであれば、「因果関係の洞察」が良い
• 情報源や解析手法を明確にする
– 完璧な情報ではないが、客観的なデータが存在すること
– これら情報源や手法は明らかにできるし、どの解析も再現できること
• バイアス(偏り)に注意して拙速な断言にならないように!
24
統計解析環境「R」を知ろう
25
急速に利用者が拡大する統計解析環境「R」
26
統計解析環境として爆発的に普及が進む R言語
R言語は、2000年以降急速に普及が進んでいます。また、R言語を利用可能な分析官・技術者を確保
しやすくなっています。
http://r4stats.com/articles/popularity/ より引用
統計ソフトウェアのメーリングリスト投稿数の推移
R言語
• R言語は統計解析やグラフ処理を行うため
のオープンソースのプログラミング言語と
その環境です。
http://www.r-project.org/
• 統計解析・データマイニングの実行環境と
してR言語は急速に利用者が拡大していま
す。
• オープンソースコミュニティから提供され
る数千ものパッケージによって高い機能拡
張性を備えます(CRAN)。
27
R言語の課題と、その解決に向けたアプローチ
広く普及しているR言語を利用しながら、従来のR実行環境が苦手としていた大規模な分析処理を高速
に実行することを可能とします。
• 従来のR言語実行環境(R実行環境)は、大
量データの処理に課題を抱えています。
– 課題1 : メモリーの制約
• 処理中の一時データを含めてデータをメモリー上に展
開して処理を行うため、処理データ量に制限があり、
大規模データの扱いには向いていません。
– 課題 2 : シングル・スレッド処理
• 一般的にシングルスレッド処理のため、大規模処理に
向いていません。(結果を得るまで相当な時間を要し
ます)
• Oracle R Enterprise は、R言語を Oracle
Database内の処理に変換・実行すること
で、これらの課題を解決します。
– メモリーの制約を解消します。
• Real Applications Clusterを利用した複数ノードでの
分散処理や、必要に応じてDisk上の領域を利用するこ
とで、大量データの解析も可能です。
– 分散処理を実現します。
• 複数ノードを利用した分散処理により、大規模な処理
も高速に実行可能です。
28
Oracle R Enterprise 概要
大量データ処理を得意とし、「サンプリングデータ」の代わりに「全量データ」を分析することで、
より正確なビジネス上の洞察を得ることも可能です。
• R言語で記述された処理をOracle Database内の
処理に変換し、DB内部で高速に実行します。
• R言語ツール(Rクライアント)から透過的に
Oracle R Enterprise の機能を利用することが可
能ですので、
従来からご利用のツールはそのままお使い頂けま
す。
• 約300個のR関数をDB内処理に透過的に変換しま
す。
• DB内の処理に変換できない処理に関しても、
DBサーバ内で、Rプロセスを起動・実行する仕組
みを有しますので、追加機器をご用意いただく必
要はありません
Oracle Database In-Memoryとの併用効果
• 集計処理が大量に行われるようなアルゴリズム
(例: バスケット分析) では、処理の高速化が望
めます。
• 複雑な計算処理が中心のアルゴリズムでは、
CPUによる計算処理が中心となるため、
Database In-Memoryの効果はさほど望めませ
ん。
このような処理では、CPUごとの数値計算ライ
ブラリ(例: Intel MKL)を活用し、高速処理を実
現しています。
PUBLIC
29
Oracle R Enterprise アーキテクチャ
大量データ分析の性能性に優れています。なお、DB内処理に変換できない部分もDBサーバ上でRプ
ロセスを実行することで追加の機器が不要です。
R EngineR EngineR Engine Other R
packages
Rの処理をDB内の処理に変換・オフロードします。
Oracle R Enterprise
packages
R Engine
Oracle R Enterprise
packages
SQL R
結果 結果
DB内の処理に変換出来ないものはDBサーバ上でR
のプロセスを起動・実行します。
Other R
packages
Rクライアント
• RスクリプトをOracle Databaseで実
行するようにスクリプトを発行します。
• グラフの描画や処理フローの制御は、
通常のRの機能を利用し、クライアン
ト側で実行します。
Oracle Database内部での実行
• Rの関数をSQLに変換して実行します。
• Oracle Databaseの並列実行の仕組み
を活用し、大量のデータに対応します。
• Oracle Databaseの持つ統計関数、
データマイニング機能を内部的に活用
します。
Oracle DatabaseサーバでのR実行
• データベースが複数のRのプロセスをデー
タベースサーバ上に外部プロセスとして起
動しますので、追加機器が不要です。
• SQLやPL/SQLからRのスクリプトを呼び
出し可能です。
分析者
DB
Oracle DB サーバ
外部
プロセス
ご参考情報
オラクルユニバーシティ「Oracle R Enterprise エッセンシャルズ」は、これからR言語を活用する
方向けに用意された体系的なエントリーモデルの研修です。
• お問い合わせ先:
– オラクルユニバーシティ
– http://www.oracle.com/jp/education/
– Tel:0120-155-092
• このコースでは、Oracle R Enterprise
の活用方法を説明します。OREでは、R
言語の実行環境として Oracle Database
を活用することで R 実行エンジンのメモ
リ制約を解消し、R インタフェースや
SQL インタフェースを用いてデータの分
析・グラフ化を行う事ができます。講義
と演習を通じて膨大なデータセットから
ORE を用いて予測モデルを作成する方法
を体系的に学習することができます
30
デスクトップアナリティクスをやろう
31
デスクトップアナリティクスは、DBAが注力すべき技術領域のひとつです
データ全体の80%を占めるといわれる非構造化データ
• Systems of Engagement and
the Future of Enterprise IT: A
Sea Change in Enterprise IT
– http://www.aiim.org/futurehistory
– ジェフリー・ムーア(「キャズム」
の著者)が2011年に出版したホワイ
トペーパー
– 非構造化データとは、データの入口
と出口に障壁のない、any-to-
many-to-one で相互にアクセスさ
れるデータ
# 検討事項 構造化データ 非構造化データ
1 フォーカス トランザクション インタラクション
2 ガバナンス コマンド&コント
ロール
コラボレーション
3 主たる要素 事実、コミットメ
ント
洞察、アイディア
4 与える価値 事実と根拠 発見と対話のため
の場
5 存続期間 永続的 一時的
6 検索可能性 易しい 難しい
32
構造化データと非構造化データの比較表
デスクトップアナリティクスの奨め
• 近年、日本企業では戦略的なデー
タの活用が加速化している
• 近い将来、DBAが扱うデータは
、構造化データから非構造化デー
タへ広がりを見せる
• 構造化/非構造化のデータを問わ
ず、データを棚卸できれば、そ
の先にデータ活用が可能に!
33
データの活用度
デ
ー
タ
の
多
様
さ
R C
C
C
C RR
②データ活用が可能に。
デスクトップアナリティクスは、DBAが注力すべき技術領域のひとつです。
AnalyticsData modeling
Structured Data
(SoR)
Unstructured Data
(SoE)
①データの範囲が広がり、
ご参考情報
書籍「Oracleの現場を効率化する100の技」は、R環境のみならず、データベースを効率化する
コンサルタントの技を惜しげもなく公開しています。
• Oracle Databaseには,開発効率を向上した
り,運用の問題を解決する機能が豊富に備
わっています。本書では,Oracleを知り尽く
したデータベースコンサルタントが豊富な現
場経験をもとに100の便利技を紹介します。
• 2015年5月26日発売
• A5判/432ページ
• 定価(本体2,980円+税)
• ISBN 978-4-7741-7332-0
• R環境については6章に記載
34

Weitere ähnliche Inhalte

Andere mochten auch

Dbts2015 tokyo vector_in_hadoop_vortex
Dbts2015 tokyo vector_in_hadoop_vortexDbts2015 tokyo vector_in_hadoop_vortex
Dbts2015 tokyo vector_in_hadoop_vortexKoji Shinkubo
 
Mongodb x business
Mongodb x businessMongodb x business
Mongodb x businessemin_press
 
[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...
[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...
[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...Insight Technology, Inc.
 
[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...
[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...
[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...Insight Technology, Inc.
 
[db tech showcase Tokyo 2015] A32:Amazon Redshift Deep Dive by アマゾン データ サービス ...
[db tech showcase Tokyo 2015] A32:Amazon Redshift Deep Dive by アマゾン データ サービス ...[db tech showcase Tokyo 2015] A32:Amazon Redshift Deep Dive by アマゾン データ サービス ...
[db tech showcase Tokyo 2015] A32:Amazon Redshift Deep Dive by アマゾン データ サービス ...Insight Technology, Inc.
 
[db tech showcase Tokyo 2015] D35:高トランザクションを実現するスケーラブルRDBMS技術 by 日本電気株式会社 並木悠太
[db tech showcase Tokyo 2015] D35:高トランザクションを実現するスケーラブルRDBMS技術 by 日本電気株式会社 並木悠太[db tech showcase Tokyo 2015] D35:高トランザクションを実現するスケーラブルRDBMS技術 by 日本電気株式会社 並木悠太
[db tech showcase Tokyo 2015] D35:高トランザクションを実現するスケーラブルRDBMS技術 by 日本電気株式会社 並木悠太Insight Technology, Inc.
 
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11MapR Technologies Japan
 
[db tech showcase Tokyo 2015] D22:インメモリープラットホームSAP HANAのご紹介と最新情報 by SAPジャパン株式...
[db tech showcase Tokyo 2015] D22:インメモリープラットホームSAP HANAのご紹介と最新情報 by SAPジャパン株式...[db tech showcase Tokyo 2015] D22:インメモリープラットホームSAP HANAのご紹介と最新情報 by SAPジャパン株式...
[db tech showcase Tokyo 2015] D22:インメモリープラットホームSAP HANAのご紹介と最新情報 by SAPジャパン株式...Insight Technology, Inc.
 
Couchbase introduction-20150611
Couchbase introduction-20150611Couchbase introduction-20150611
Couchbase introduction-20150611Couchbase Japan KK
 
[db tech showcase Tokyo 2015] D33:Superdome X 上の SQL Server 2014 OLTP 検証結果と S...
[db tech showcase Tokyo 2015] D33:Superdome X 上の SQL Server 2014 OLTP 検証結果と S...[db tech showcase Tokyo 2015] D33:Superdome X 上の SQL Server 2014 OLTP 検証結果と S...
[db tech showcase Tokyo 2015] D33:Superdome X 上の SQL Server 2014 OLTP 検証結果と S...Insight Technology, Inc.
 
[db tech showcase Tokyo 2015] A26:内部犯行による漏えいを防ぐPostgreSQLの透過的暗号化機能に関する実装と利用方法...
[db tech showcase Tokyo 2015] A26:内部犯行による漏えいを防ぐPostgreSQLの透過的暗号化機能に関する実装と利用方法...[db tech showcase Tokyo 2015] A26:内部犯行による漏えいを防ぐPostgreSQLの透過的暗号化機能に関する実装と利用方法...
[db tech showcase Tokyo 2015] A26:内部犯行による漏えいを防ぐPostgreSQLの透過的暗号化機能に関する実装と利用方法...Insight Technology, Inc.
 
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...Masahiro Tomisugi
 
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...Insight Technology, Inc.
 
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...Insight Technology, Inc.
 
[db tech showcase Tokyo 2015] A27: RDBエンジニアの為のNOSQL, 今どうしてNOSQLなのか?
[db tech showcase Tokyo 2015] A27: RDBエンジニアの為のNOSQL, 今どうしてNOSQLなのか?[db tech showcase Tokyo 2015] A27: RDBエンジニアの為のNOSQL, 今どうしてNOSQLなのか?
[db tech showcase Tokyo 2015] A27: RDBエンジニアの為のNOSQL, 今どうしてNOSQLなのか?datastaxjp
 
[db tech showcase Tokyo 2015] E15:Hadoop大量データ処理技術と日立匿名化技術によるプライバシー保護とデータ活用 by...
[db tech showcase Tokyo 2015] E15:Hadoop大量データ処理技術と日立匿名化技術によるプライバシー保護とデータ活用 by...[db tech showcase Tokyo 2015] E15:Hadoop大量データ処理技術と日立匿名化技術によるプライバシー保護とデータ活用 by...
[db tech showcase Tokyo 2015] E15:Hadoop大量データ処理技術と日立匿名化技術によるプライバシー保護とデータ活用 by...Insight Technology, Inc.
 
Db tech showcase2015
Db tech showcase2015Db tech showcase2015
Db tech showcase2015emin_press
 
[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...
[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...
[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...Insight Technology, Inc.
 
[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介
[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介
[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介Insight Technology, Inc.
 

Andere mochten auch (20)

Dbts2015 tokyo vector_in_hadoop_vortex
Dbts2015 tokyo vector_in_hadoop_vortexDbts2015 tokyo vector_in_hadoop_vortex
Dbts2015 tokyo vector_in_hadoop_vortex
 
Mongodb x business
Mongodb x businessMongodb x business
Mongodb x business
 
[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...
[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...
[db tech showcase Tokyo 2015] B16:最新版PostgreSQLのパフォーマンスを引き出すためのポイント by Postgr...
 
[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...
[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...
[db tech showcase Tokyo 2015] B24:最高峰の可用性 ~NonStop SQLが止まらない理由~ by 日本ヒューレット・パ...
 
[db tech showcase Tokyo 2015] A32:Amazon Redshift Deep Dive by アマゾン データ サービス ...
[db tech showcase Tokyo 2015] A32:Amazon Redshift Deep Dive by アマゾン データ サービス ...[db tech showcase Tokyo 2015] A32:Amazon Redshift Deep Dive by アマゾン データ サービス ...
[db tech showcase Tokyo 2015] A32:Amazon Redshift Deep Dive by アマゾン データ サービス ...
 
[db tech showcase Tokyo 2015] D35:高トランザクションを実現するスケーラブルRDBMS技術 by 日本電気株式会社 並木悠太
[db tech showcase Tokyo 2015] D35:高トランザクションを実現するスケーラブルRDBMS技術 by 日本電気株式会社 並木悠太[db tech showcase Tokyo 2015] D35:高トランザクションを実現するスケーラブルRDBMS技術 by 日本電気株式会社 並木悠太
[db tech showcase Tokyo 2015] D35:高トランザクションを実現するスケーラブルRDBMS技術 by 日本電気株式会社 並木悠太
 
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11
 
[db tech showcase Tokyo 2015] D22:インメモリープラットホームSAP HANAのご紹介と最新情報 by SAPジャパン株式...
[db tech showcase Tokyo 2015] D22:インメモリープラットホームSAP HANAのご紹介と最新情報 by SAPジャパン株式...[db tech showcase Tokyo 2015] D22:インメモリープラットホームSAP HANAのご紹介と最新情報 by SAPジャパン株式...
[db tech showcase Tokyo 2015] D22:インメモリープラットホームSAP HANAのご紹介と最新情報 by SAPジャパン株式...
 
Couchbase introduction-20150611
Couchbase introduction-20150611Couchbase introduction-20150611
Couchbase introduction-20150611
 
[db tech showcase Tokyo 2015] D33:Superdome X 上の SQL Server 2014 OLTP 検証結果と S...
[db tech showcase Tokyo 2015] D33:Superdome X 上の SQL Server 2014 OLTP 検証結果と S...[db tech showcase Tokyo 2015] D33:Superdome X 上の SQL Server 2014 OLTP 検証結果と S...
[db tech showcase Tokyo 2015] D33:Superdome X 上の SQL Server 2014 OLTP 検証結果と S...
 
[db tech showcase Tokyo 2015] A26:内部犯行による漏えいを防ぐPostgreSQLの透過的暗号化機能に関する実装と利用方法...
[db tech showcase Tokyo 2015] A26:内部犯行による漏えいを防ぐPostgreSQLの透過的暗号化機能に関する実装と利用方法...[db tech showcase Tokyo 2015] A26:内部犯行による漏えいを防ぐPostgreSQLの透過的暗号化機能に関する実装と利用方法...
[db tech showcase Tokyo 2015] A26:内部犯行による漏えいを防ぐPostgreSQLの透過的暗号化機能に関する実装と利用方法...
 
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...
[db tech showcase Tokyo 2015] E26 Couchbaseの最新情報/JBoss Data Virtualizationで仮想...
 
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ...
 
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...
[db tech showcase Tokyo 2015] A33:Amazon DynamoDB Deep Dive by アマゾン データ サービス ...
 
[db tech showcase Tokyo 2015] A27: RDBエンジニアの為のNOSQL, 今どうしてNOSQLなのか?
[db tech showcase Tokyo 2015] A27: RDBエンジニアの為のNOSQL, 今どうしてNOSQLなのか?[db tech showcase Tokyo 2015] A27: RDBエンジニアの為のNOSQL, 今どうしてNOSQLなのか?
[db tech showcase Tokyo 2015] A27: RDBエンジニアの為のNOSQL, 今どうしてNOSQLなのか?
 
[db tech showcase Tokyo 2015] E15:Hadoop大量データ処理技術と日立匿名化技術によるプライバシー保護とデータ活用 by...
[db tech showcase Tokyo 2015] E15:Hadoop大量データ処理技術と日立匿名化技術によるプライバシー保護とデータ活用 by...[db tech showcase Tokyo 2015] E15:Hadoop大量データ処理技術と日立匿名化技術によるプライバシー保護とデータ活用 by...
[db tech showcase Tokyo 2015] E15:Hadoop大量データ処理技術と日立匿名化技術によるプライバシー保護とデータ活用 by...
 
Db tech showcase2015
Db tech showcase2015Db tech showcase2015
Db tech showcase2015
 
[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...
[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...
[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...
 
[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介
[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介
[db tech showcase Tokyo 2015] C27:楽天MySQL Backup Structure by 楽天株式会社 粟田啓介
 
Storm×couchbase serverで作るリアルタイム解析基盤
Storm×couchbase serverで作るリアルタイム解析基盤Storm×couchbase serverで作るリアルタイム解析基盤
Storm×couchbase serverで作るリアルタイム解析基盤
 

Mehr von Insight Technology, Inc.

グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?Insight Technology, Inc.
 
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~Insight Technology, Inc.
 
事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明する事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明するInsight Technology, Inc.
 
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーンInsight Technology, Inc.
 
MBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごとMBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごとInsight Technology, Inc.
 
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?Insight Technology, Inc.
 
DBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォームDBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォームInsight Technology, Inc.
 
SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門Insight Technology, Inc.
 
db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉 db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉 Insight Technology, Inc.
 
db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也Insight Technology, Inc.
 
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー Insight Technology, Inc.
 
難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?Insight Technology, Inc.
 
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介Insight Technology, Inc.
 
そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?Insight Technology, Inc.
 
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...Insight Technology, Inc.
 
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。 複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。 Insight Technology, Inc.
 
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...Insight Technology, Inc.
 
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]Insight Technology, Inc.
 

Mehr von Insight Technology, Inc. (20)

グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
 
Docker and the Oracle Database
Docker and the Oracle DatabaseDocker and the Oracle Database
Docker and the Oracle Database
 
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
Great performance at scale~次期PostgreSQL12のパーティショニング性能の実力に迫る~
 
事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明する事例を通じて機械学習とは何かを説明する
事例を通じて機械学習とは何かを説明する
 
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
仮想通貨ウォレットアプリで理解するデータストアとしてのブロックチェーン
 
MBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごとMBAAで覚えるDBREの大事なおしごと
MBAAで覚えるDBREの大事なおしごと
 
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
 
DBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォームDBREから始めるデータベースプラットフォーム
DBREから始めるデータベースプラットフォーム
 
SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門
 
Lunch & Learn, AWS NoSQL Services
Lunch & Learn, AWS NoSQL ServicesLunch & Learn, AWS NoSQL Services
Lunch & Learn, AWS NoSQL Services
 
db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉 db tech showcase2019オープニングセッション @ 森田 俊哉
db tech showcase2019オープニングセッション @ 森田 俊哉
 
db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也db tech showcase2019 オープニングセッション @ 石川 雅也
db tech showcase2019 オープニングセッション @ 石川 雅也
 
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
db tech showcase2019 オープニングセッション @ マイナー・アレン・パーカー
 
難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?難しいアプリケーション移行、手軽に試してみませんか?
難しいアプリケーション移行、手軽に試してみませんか?
 
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
Attunityのソリューションと異種データベース・クラウド移行事例のご紹介
 
そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?そのデータベース、クラウドで使ってみませんか?
そのデータベース、クラウドで使ってみませんか?
 
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
コモディティサーバー3台で作る高速処理 “ハイパー・コンバージド・データベース・インフラストラクチャー(HCDI)” システム『Insight Qube』...
 
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。 複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
複数DBのバックアップ・切り戻し運用手順が異なって大変?!運用性の大幅改善、その先に。。
 
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
Attunity社のソリューションの日本国内外適用事例及びロードマップ紹介[ATTUNITY & インサイトテクノロジー IoT / Big Data フ...
 
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
レガシーに埋もれたデータをリアルタイムでクラウドへ [ATTUNITY & インサイトテクノロジー IoT / Big Data フォーラム 2018]
 

Kürzlich hochgeladen

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 

Kürzlich hochgeladen (10)

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 

[db tech showcase Tokyo 2015] E33: [JPOUG Presents] デスクトップアナリティクスの奨め ~ use R! ~ by 日本オラクル株式会社 内村友亮

  • 2. 自己紹介:内村 友亮(うちむら ともあき) • 2007年に中途入社後、DBアーキテクト として大規模ミッションクリティカルシステム のマイグレーションやアップグレードに 従事。2013年から、テクノロジー製品 のリファレンス展開するコンサル部門を 担当。最近の関心事はRとCloud。 • 拙著、即戦力のOracle管理術、 Oracleの現場を効率化する100の技、 発売中。 (いずれも技術評論社) 2 • ビジョン:DBでアジアを変える • 日本オラクル株式会社 テクノロジーコンサルティング統括本部 テクニカルアーキテクト本部 DBソリューション部 部長
  • 3. はじめに • 今、アプリケーションとITインフラの 「はざま」を埋めるDBAが扱うデー タに変化の兆しがあります。構造化 データに加えて、非構造化データが含 まれるようになりました。 • 理由は、お客様や業務部門担当者様が 、統計解析を使って、データを有 効活用するようになったからです。 • このような状況を踏まえて、まずは身 の丈のスキルアップとして、デスク トップアナリティクスを始めま せんか?というお話をさせて頂きま す。 3 データの活用度 デ ー タ の 多 様 さ R C C C C RR AnalyticsData modeling Structured Data (SoR) Unstructured Data (SoE) ①データの範囲が広がり、 ②データ活用が可能に。
  • 4. Program Agenda 1 2 3 デスクトップアナリティクスの奨め デスクトップアナリティクスを知ろう 統計解析環境「R」を知ろう デスクトップアナリティクスをやろう 4 4 免責 本資料に記載された内容は、情報の提供のみを目的としています。したがって、本資料を用いた運用は、必ずお客様自身の責任と判断によって行ってください。これらの情報の運用の結果に ついて、講演者はいかなる責任も負いません。本資料は Oracle Database の製品サポートとは無関係ですので、本資料を元に Oracleサポートに問い合わせることはご遠慮ください。また、 本資料で紹介するパーティションやクラスタなどの応用的な機能を使用するためには、追加ライセンスなどが必要な場合があります。詳しくはオラクル社ホームページ (http://www.oracle.com/jp/index.html)を確認願います。なお、本資料において示されている見解は、講演者の見解であって、オラクル社の見解を必ずしも反映したものではありませ んのでご了承ください。本資料記載の情報は、2015 年 6 月 4 日現在のものを掲載していますので、ご利用時には、変更されている場合もあります。また、ソフトウェアはバージョンアッ プされる場合があり、本資料での説明とは機能内容や画面図などが異なってしまうこともあり得ます。
  • 6. • The Oracle R Enterprise 1.4 brings Deep Learning power to the Enterprise by using the existing computational power of the Oracle Database and taking advantage of an innovative proprietary parallel solver that can solve very large problems with extreme compute efficiency while still using the data science language of choice – R. 機械学習 - Deep Learning がもう使えます (サンプルコード) library(h2o) localH2O = h2o.init(ip = "localhost", port = 54321, startH2O = TRUE) # データの読み込み(今回はiris) irisPath = system.file("extdata", "iris.csv", package = "h2o") iris.hex = h2o.importFile(localH2O, path = irisPath) h2o.deeplearning(x = 1:4, y = 5, data = iris.hex, activation = "Tanh") # H2Oのシャットダウン h2o.shutdown(localH2O) 6 http://www.cs.utexas.edu/~cannata/dataSci/Oracle%20Advanced%20Analytics/Oracle%20R%20Enterprise-1-4-new-features-2176517.pdf
  • 8. デスクトップアナリティクスをお奨めする理由は? • DBAが扱うデータが変化 – 構造化・非構造化によらず活用する ことが増えている – お客様や業務部門の方の判断を最適 化し続けるために、多様化した膨大 なデータの価値を知として最大化す るプレッシャーが高まった。 • DBAが扱う業務フローが変化 – 業務に、統計解析を活用することが 増えている – 統計解析手法と外部環境の多様化し た膨大なデータが入手しやすくなり 、データの本当の価値を判断しやす くなった。 8 先に紹介した点の他に、次の理由があるからです。
  • 9. 新たなスキルセットとしてのデスクトップアナリティクス • 近年、日本企業では戦略的なデー タの活用が加速化している • 近い将来、DBAが扱うデータは 、構造化データから非構造化デー タへ広がりを見せる • 構造化/非構造化のデータを問わ ず、データを棚卸できれば、そ の先にデータ活用が可能に! 9 データの活用度 デ ー タ の 多 様 さ R C C C C RR ②データ活用が可能に。 デスクトップアナリティクスは、DBAが注力すべき技術領域のひとつです。 AnalyticsData modeling Structured Data (SoR) Unstructured Data (SoE) ①データの範囲が広がり、
  • 13. (サンプルコード) 13 13 Step setwd("<作業用のパスを指定>") # 作業ディレクトリを指定する library(reshape2) # ライブラリの読み込み seg1 <- read.csv("seg.csv") # セッションデータを読み込む seg2 <- melt(seg1, id=c("ROWNUM","BEGIN_INTERVAL_TIME","TABLESPACE_NAME"), na.rm=TRUE) # マトリクス形式にする seg3 <- acast(seg2, seg2[,2]~seg2[,3],value = seg2[,4],fun.aggregate = sum) x <- (1:nrow(seg3)) # 描画時のx軸の値を設定する y <- (1:ncol(seg3)) # 描画時のy軸の値を設定する png("plot01.png") # 出力先を指定 image(x,y,seg3,col=heat.colors(100), xaxt = "n", yaxt = "n", ann=FALSE) # ヒートマップを描画 axis(side=1,labels=c(rownames(seg3)),at=1:nrow(seg3),cex.axis=0.8,las=1) # x軸ラベルの設定 axis(side=2,labels=c(colnames(seg3)),at=1:ncol(seg3),cex.axis=0.8,las=1) # y軸ラベルの設定 title(main="表領域ごとの論理読み込みデータブロックの状況") # タイトルの指定 dev.off() # 出力を終了する ※このサンプルコードは、セグメントレベルの履歴統計情報を、以下のSQLで事前出力しています。 SQL> SELECT ROWNUM||','||BEGIN_INTERVAL_TIME||','||TABLESPACE_NAME||','||datum FROM ( SELECT ss.BEGIN_INTERVAL_TIME, sego.TABLESPACE_NAME, SUM(seg.LOGICAL_READS_DELTA) datum FROM DBA_HIST_SEG_STAT seg, DBA_HIST_SNAPSHOT ss, DBA_HIST_SEG_STAT_OBJ sego WHERE seg.SNAP_ID = ss.SNAP_ID AND seg.DBID = ss.DBID AND seg.INSTANCE_NUMBER = ss.INSTANCE_NUMBER AND seg.DBID = sego.DBID AND seg.TS# = sego.TS# AND seg.OBJ# = sego.OBJ# GROUP BY ss.BEGIN_INTERVAL_TIME, sego.TABLESPACE_NAME ORDER BY ss.BEGIN_INTERVAL_TIME )dhseg;
  • 15. (サンプルコード) 15 # (事前準備)スキルマトリクスやレジュメから、個人を特定しないように、技術情報だけを抽出したテキストを作成しておきます。 library (RMeCab) # 日本語形態素解析用ライブラリ library(rgl) # 三次元プロット用ライブラリ sb <- docMatrix(mydir = "/test/doc", minFreq = 2 ) # ドキュメントを読み込み、最低出現頻度2回を抽出する。 sb.p <- sb/apply(sb, 1, sum) # 個別値を行単位に合計したもので割ることで相対値を求める。 sb.ed<-dist(t(sb.p[5:83,])) # dist関数で、距離行列を求める(全データ点同士の距離) sb.mds<-cmdscale(sb.ed, 3) # cmdscale関数で、古典的多次元尺度法により、3次元化する x <- sb.mds[,1] # x値の設定 y <- sb.mds[,2] # y値の設定 z <- sb.mds[,3] # z値の設定 plot3d(x, y, z, type="s", col=rainbow(12), size=4) # 三次元プロット(s指定は、固有値の球体表示) text3d(x, y, z, text=rownames(sb.mds), adj=1, justify="right") # テキストの表示 grid3d(c("x", "y+", "z")) # グリッドの表示 12 Step
  • 16. Word cloud – Twitterから見えるOpenWorldの状況 16
  • 17. (サンプルコード) 17 25 Step # (事前準備)Twitterアプリケーションを作成しておきます。 setwd("<作業ディレクトリを指定>") # 作業ディレクトリの指定 library( twitteR ) # Twitter接続用に、パッケージ「twitteR」を読み込みます consumerKey <- "XXXXX" # Consumer Key をセットします consumerSecret <- "XXXXX" # Consumer Secret をセットします accessToken <- "XXXXX" # Access Token をセットします。 accessTokenSecret <- "XXXXX" # Access Token Secret をセットします setup_twitter_oauth( consumerKey, consumerSecret, accessToken, # R で認可情報を使用するため、 accessTokenSecret ) # setup_twitter_oauth()関数を実行します tweets <- userTimeline( "Oracle", n = 3200) # TwitterのTimelineを取得します sink( file = "tweets.R" ) # 結果をファイル "tweets.R" に書き込みます tweets # 変数「tweets」を表示します sink() # 出力を再びコンソールに切替えます library( RMeCab ) # 日本語テキストの解析用に、パッケージ「RMeCab」を読み込みます twitWord <- RMeCabFreq( "tweets.R" ) # RMeCabFreq()関数で、変数「Tweets」を日本語形態素解析します excludeWord <- read.table( "Exclude.txt", header = T ) # 除外キーワードリストを読み込みます twitWord <- twitWord[twitWord[, 2] == "名詞"& ( twitWord[, 3] == "一般" | twitWord[, 3] == "固有名詞" ),] # 変数「Tweets」を、一般名詞と固有名詞に絞り込みます twitWord <- cbind( twitWord, c(rep(0, times = nrow( twitWord )))) # 変数「twitWord」に、除外用フラグ列を追加します twitWord[na.omit( match( excludeWord$exclude, twitWord$Term )), 5] <- 1 # 除外キーワードリストとマッチするものは除外フラグをオンにします twitWord <- twitWord[ twitWord[,4] > 4 & twitWord[,5] == 0, ] # 頻出度が5回以上の語に絞り込みます library( wordcloud ) # ワードクラウド生成用に、パッケージ「wordcloud」を読み込みます library( RColorBrewer ) # カラーパレット用に、パッケージ「RColorBrewer」を読み込みます wordcloud( twitWord[,1],twitWord[,4], scale = c( 6, 1 ), # ワードクラウドを描画します min.freq = 3, max.words = Inf, random.order = FALSE, rot.per = .05, colors = brewer.pal( 8, "Dark2" ))
  • 19. (サンプルコード) 19 24 Step # 初期処理 library(RMeCab) # ライブラリの読み込み library(arules) # ライブラリの読み込み library(arulesViz) # ライブラリの読み込み library(igraph) # ライブラリの読み込み setwd("<作業ディレクトリを指定>") # 作業ディレクトリの指定 output <- "<結果の出力先ファイル>" # 結果出力ファイル exclude <- "<除外したいキーワードを列挙したファイル>" # 除外キーワードリスト e1 <- read.table(exclude, header=T) # 除外キーワードリストの読み込み(恣意的なデータ除外) files <- list.files() # 日報ファイルのリストを取得 for (file.name in files) { # 日報ファイルを繰り返し処理する kekka <- RMeCabFreq( file.name ) # RMeCabによる日報の読み込み buf4 <- kekka[kekka[,2]=="名詞" & kekka[,3]=="固有名詞",] # 名刺と固有名詞のみを抽出 kekka2 <- rbind(buf4) # 対象となる行を追加 kekka2 <- cbind(kekka2, c(rep(0, times=nrow(kekka2)))) # 除外用フラグを追加(5列目) kekka2[na.omit(match(e1[,1], kekka2[,1])), 5] <- 1 # 除外用フラグオン kekka3 <- kekka2[kekka2[,5] == 0,] # 除外しないキーワードを抽出 kekka4 <- t(paste(kekka3[,1], "," )) # キーワード(1列目)を抽出して、csv形式に連結(paste)後に、行列転置(t) write.table(kekka4, output, quote=F, row.names=F, col.names=F, append=T) # 一旦、フラットファイルに出力 } kekka5 <- read.transactions(output,sep=",",rm.duplicates=TRUE) # トランザクションとして読み込む ap<-apriori(kekka5,parameter=list(supp=0.08,maxlen=10,confidence=0.8)) # aprioriによるルール抽出 inspect(head(sort(ap,by="support"),n=100)) # 内容を一部確認 # 前ページのサンプルは、GEXF (Graph Exchange XML Format)に変換して、gephi(オープンなグラフ可視化プラットフォーム)で描画しています。
  • 21. (サンプルコード) # 週報からコンサルタント毎の技術用語を抽出し、CSVファイルを作成。 # その後、エクセル上で、類義語をまとめ、因子となる売上高を追加します。 setwd("working_dir") # 作業ディレクトリ tcList <- "tc_name_dic.txt" # 社員名リスト mailList <- "mail_name_dic.txt" # メール⇔日本語名マッピング用 prodList <- "product.txt" # 社員名リスト library(reshape2) # クロス集計用ライブラリ library(igraph) # グラフ描画用ライブラリ library(RMeCab) # 日本語形態素解析用ライブラリ modeRead <- "r" # ファイル読み込みモード txtFrom <- "^From" # メールアドレス抽出用 txtDmain <- "@oracle.com" # メールアドレス抽出用 txtBig <- "<" # メールアドレス抽出用 txtFreq <- "Freq" # クロス集計用 files <- list.files() # ファイルリスト取得 kekka2 <- data.frame() # 空のデータフレーム作成 tc <- read.table(tcList, header=T) # テクコンメンバの読み込み ml <- read.table(mailList, header=T, sep=",") # メール⇔日本語名マッピング用 pl <- read.table(prodList, header=T) # 製品リストの読み込み for (file.name in files) { # 週報データを読み込む # 名前リスト抽出 kekka <- RMeCabFreq(file.name) # 日本語形態素解析 kekka <- cbind(kekka, FLG=c(rep(0, times=nrow(kekka)))) # 除外用フラグを追加(5列目) kekka <- cbind(kekka, FLG2=c(rep(0, times=nrow(kekka)))) # 除外用フラグを追加(6列目) kekka[na.omit(match(tc[,1], kekka[,1])), 5] <- 1 # テクコンメンバフラグオン kekka[na.omit(match(pl[,1], kekka[,1])), 6] <- 1 # 製品リストフラグオン # メールアドレス抽出(テキスト冒頭にFromを含むもの) awrBuf <- file(file.name, modeRead ) # ファイル読み込み awrTxt <- as.list(readLines(awrBuf)) # テキスト読み込み close(awrBuf) # ファイルクローズ mailBuf <- matrix(awrTxt[grep(txtFrom, awrTxt, perl = TRUE)]) # メールアドレス抽出(テキスト冒頭にFromを含むもの) mailAdr <- matrix(gsub("¥"", "", toupper(sub(txtDmain, "", ifelse(regexpr(txtBig, mailBuf) == -1, substr(mailBuf[,1], 7, nchar(mailBuf)), substr(mailBuf, 7, regexpr(txtBig, mailBuf)-2)))))) # メールアドレス(英字)を日本語氏名に変換する mailAdr2 <- matrix(if(!is.null(grep(mailAdr[1,],ml$empeng))) { ml[grep(mailAdr[1,],ml$empeng),2] } else { mailAdr[1,] }) kekka <- cbind(kekka, NAME=c(rep(mailAdr2, times=nrow(kekka)))) # 氏名を追加(6列目) kekka2 <- rbind(kekka2, kekka[kekka[,6] == 1,]) # 結果をバインドする } kekka3 <- aggregate(kekka2$Freq, list(kekka2$NAME, kekka2$Term), sum) # 週報提出、製品名で、頻出度を集計 kekka4 <- melt(kekka3, value_name=(x)) # クロス集計準備 ksl <- dcast(kekka4, Group.1~Group.2,sum) # Var1とVar2でクロス集計 write.csv(ksl, “BayesNet2014.csv”, append=TRUE) # ファイル出力 # ベイジアンネットワークを作成します library(deal) # ベイジアンネットワーク用ライブラリ setwd("working_dir") # 作業ディレクトリ bayesNet <- "BayesNet2014.csv" # ネットワーク用ファイル bn <- read.table(bayesNet, header=T, sep=",") # データファイル読み込み rownames(bn) <- bn$Name # 行名の変更 bn <- subset(bn[,3:length(bn)]) # 分析対象データの切り出し bn[,1] <- as.factor(bn[,1]) # 分析対象をfactorに変換する。(他はinteger) bn.nw <- network(bn) plot(bn.nw) bn.pr <- jointprior(bn.nw) bn.ln <- learn(bn.nw,bn,bn.pr) bn.nw <- getnetwork(bn.ln) bn.as <- autosearch(bn.nw,bn,bn.pr) plot(getnetwork(bn.as)) print(bn.as) 21 61 Step
  • 22. 22 Graph analysis – 技術領域とヒト
  • 23. 23 (サンプルコード) setwd(“working_dir”) # 作業ディレクトリ tcList <- “tc_name_dic.txt" # 社員名リスト mailList <- “mail_name_dic.txt" # メール⇔日本語名マッピング用 prodList <- “product.txt" # 社員名リスト library(igraph) # グラフ描画用ライブラリ library(RMeCab) # 日本語形態素解析用ライブラリ modeRead <- "r" # ファイル読み込みモード txtFrom <- "^From" # メールアドレス抽出用 txtDmain <- "@oracle.com" # メールアドレス抽出用 txtBig <- "<" # メールアドレス抽出用 txtFreq <- "Freq" # クロス集計用 files <- list.files() # ファイルリスト取得 kekka2 <- data.frame() # 空のデータフレーム作成 tc <- read.table(tcList, header=T) # メンバリストの読み込み ml <- read.table(mailList, header=T, sep=",") # メール⇔日本語名マッピング用 pl <- read.table(prodList, header=T) # 製品リストの読み込み for (file.name in files) { # 週報データを読み込む # 名前リスト抽出 kekka <- RMeCabFreq(file.name) # 日本語形態素解析 kekka <- cbind(kekka, FLG=c(rep(0, times=nrow(kekka)))) # 除外用フラグを追加(5列目) kekka <- cbind(kekka, FLG2=c(rep(0, times=nrow(kekka)))) # 除外用フラグを追加(6列目) kekka[na.omit(match(tc[,1], kekka[,1])), 5] <- 1 # 対象メンバフラグオン kekka[na.omit(match(pl[,1], kekka[,1])), 6] <- 1 # 製品リストフラグオン # メールアドレス抽出(テキスト冒頭にFromを含むもの) awrBuf <- file(file.name, modeRead ) # ファイル読み込み awrTxt <- as.list(readLines(awrBuf)) # テキスト読み込み close(awrBuf) # ファイルクローズ mailBuf <- matrix(awrTxt[grep(txtFrom, awrTxt, perl = TRUE)]) # メールアドレス抽出(テキスト冒頭にFromを含むもの) mailAdr <- matrix(gsub("¥"", "", toupper(sub(txtDmain, "", ifelse(regexpr(txtBig, mailBuf) == -1, substr(mailBuf[,1], 7, nchar(mailBuf)), substr(mailBuf, 7, regexpr(txtBig, mailBuf)-2)))))) mailAdr2 <- matrix(if(!is.null(grep(mailAdr[1,],ml$empeng))) { ml[grep(mailAdr[1,],ml$empeng),2] } else { mailAdr[1,] }) # メールアドレス(英字)を日本語氏名に変換する kekka <- cbind(kekka, NAME=c(rep(mailAdr2, times=nrow(kekka)))) # 氏名を追加(6列目) kekka2 <- rbind(kekka2, kekka[kekka[,6] == 1,]) # 結果をバインドする } # 週報提出者、週報出現氏名でグループ化 kekka3 <- aggregate(kekka2$Freq, list(kekka2$NAME, kekka2$Term), sum) # 自分自身へのエッジを削除 kekka4 <- kekka3[substr(kekka3[,1], 1, regexpr(" ", kekka3[,1]) - 1)!=kekka3[,2],] sortlist<- order(kekka4[,2],decreasing = TRUE) fwn<-kekka4[sortlist,] wng<-graph.data.frame(fwn[fwn$x > 5,]) # 頻出度がn回以上を対象とする # 属性の表示の有効化 igraph.options(print.graph.attributes=TRUE) igraph.options(print.vertex.attributes=TRUE) igraph.options(print.edge.attributes=TRUE) V(wng)$color <- rgb(221, 221, 221, maxColorValue=255) # 通常のノードはライトグレー V(wng)$frame.color <- rgb(221, 221, 221, maxColorValue=255) # ノードのフレームもライトグレー # 週報提出メンバを赤色にする V(wng)[V(wng)$name%in%ml$empjp[ml$dept == "DBソリューション部"]]$color <- rgb(255, 0, 102, maxColorValue=255) V(wng)[V(wng)$name%in%ml$empjp[ml$dept == "DBソリューション部"]]$frame.color <- rgb(255, 0, 102, maxColorValue=255) V(wng)$size <- degree(wng) # ノードサイズを次数により決定 E(wng)$weight <- E(wng)$x # 頻出度によって重みを付ける E(wng)[E(wng)$Freq > 10]$weight <- 11 # 10より頻出度の高いものは11にする # グラフの描画 tkplot(wng, layout=layout.fruchterman.reingold, vertex.label=V(wng)$name, vertex.label.color="blue", edge.width=E(wng)$weight*0.05, edge.curved = TRUE, canvas.width=1200, canvas.height=600) 70 Step
  • 24. 注意 • 非構造化データはノイズの塊 – データ分析の視点を明確にしてからデータ収集する • 統計解析の種類を決めるとよい – 現状の把握、因果関係の洞察、今後の予測、のどれか? – デスクトップ・アナリティクスであれば、「因果関係の洞察」が良い • 情報源や解析手法を明確にする – 完璧な情報ではないが、客観的なデータが存在すること – これら情報源や手法は明らかにできるし、どの解析も再現できること • バイアス(偏り)に注意して拙速な断言にならないように! 24
  • 26. 26 統計解析環境として爆発的に普及が進む R言語 R言語は、2000年以降急速に普及が進んでいます。また、R言語を利用可能な分析官・技術者を確保 しやすくなっています。 http://r4stats.com/articles/popularity/ より引用 統計ソフトウェアのメーリングリスト投稿数の推移 R言語 • R言語は統計解析やグラフ処理を行うため のオープンソースのプログラミング言語と その環境です。 http://www.r-project.org/ • 統計解析・データマイニングの実行環境と してR言語は急速に利用者が拡大していま す。 • オープンソースコミュニティから提供され る数千ものパッケージによって高い機能拡 張性を備えます(CRAN)。
  • 27. 27 R言語の課題と、その解決に向けたアプローチ 広く普及しているR言語を利用しながら、従来のR実行環境が苦手としていた大規模な分析処理を高速 に実行することを可能とします。 • 従来のR言語実行環境(R実行環境)は、大 量データの処理に課題を抱えています。 – 課題1 : メモリーの制約 • 処理中の一時データを含めてデータをメモリー上に展 開して処理を行うため、処理データ量に制限があり、 大規模データの扱いには向いていません。 – 課題 2 : シングル・スレッド処理 • 一般的にシングルスレッド処理のため、大規模処理に 向いていません。(結果を得るまで相当な時間を要し ます) • Oracle R Enterprise は、R言語を Oracle Database内の処理に変換・実行すること で、これらの課題を解決します。 – メモリーの制約を解消します。 • Real Applications Clusterを利用した複数ノードでの 分散処理や、必要に応じてDisk上の領域を利用するこ とで、大量データの解析も可能です。 – 分散処理を実現します。 • 複数ノードを利用した分散処理により、大規模な処理 も高速に実行可能です。
  • 28. 28 Oracle R Enterprise 概要 大量データ処理を得意とし、「サンプリングデータ」の代わりに「全量データ」を分析することで、 より正確なビジネス上の洞察を得ることも可能です。 • R言語で記述された処理をOracle Database内の 処理に変換し、DB内部で高速に実行します。 • R言語ツール(Rクライアント)から透過的に Oracle R Enterprise の機能を利用することが可 能ですので、 従来からご利用のツールはそのままお使い頂けま す。 • 約300個のR関数をDB内処理に透過的に変換しま す。 • DB内の処理に変換できない処理に関しても、 DBサーバ内で、Rプロセスを起動・実行する仕組 みを有しますので、追加機器をご用意いただく必 要はありません Oracle Database In-Memoryとの併用効果 • 集計処理が大量に行われるようなアルゴリズム (例: バスケット分析) では、処理の高速化が望 めます。 • 複雑な計算処理が中心のアルゴリズムでは、 CPUによる計算処理が中心となるため、 Database In-Memoryの効果はさほど望めませ ん。 このような処理では、CPUごとの数値計算ライ ブラリ(例: Intel MKL)を活用し、高速処理を実 現しています。 PUBLIC
  • 29. 29 Oracle R Enterprise アーキテクチャ 大量データ分析の性能性に優れています。なお、DB内処理に変換できない部分もDBサーバ上でRプ ロセスを実行することで追加の機器が不要です。 R EngineR EngineR Engine Other R packages Rの処理をDB内の処理に変換・オフロードします。 Oracle R Enterprise packages R Engine Oracle R Enterprise packages SQL R 結果 結果 DB内の処理に変換出来ないものはDBサーバ上でR のプロセスを起動・実行します。 Other R packages Rクライアント • RスクリプトをOracle Databaseで実 行するようにスクリプトを発行します。 • グラフの描画や処理フローの制御は、 通常のRの機能を利用し、クライアン ト側で実行します。 Oracle Database内部での実行 • Rの関数をSQLに変換して実行します。 • Oracle Databaseの並列実行の仕組み を活用し、大量のデータに対応します。 • Oracle Databaseの持つ統計関数、 データマイニング機能を内部的に活用 します。 Oracle DatabaseサーバでのR実行 • データベースが複数のRのプロセスをデー タベースサーバ上に外部プロセスとして起 動しますので、追加機器が不要です。 • SQLやPL/SQLからRのスクリプトを呼び 出し可能です。 分析者 DB Oracle DB サーバ 外部 プロセス
  • 30. ご参考情報 オラクルユニバーシティ「Oracle R Enterprise エッセンシャルズ」は、これからR言語を活用する 方向けに用意された体系的なエントリーモデルの研修です。 • お問い合わせ先: – オラクルユニバーシティ – http://www.oracle.com/jp/education/ – Tel:0120-155-092 • このコースでは、Oracle R Enterprise の活用方法を説明します。OREでは、R 言語の実行環境として Oracle Database を活用することで R 実行エンジンのメモ リ制約を解消し、R インタフェースや SQL インタフェースを用いてデータの分 析・グラフ化を行う事ができます。講義 と演習を通じて膨大なデータセットから ORE を用いて予測モデルを作成する方法 を体系的に学習することができます 30
  • 32. データ全体の80%を占めるといわれる非構造化データ • Systems of Engagement and the Future of Enterprise IT: A Sea Change in Enterprise IT – http://www.aiim.org/futurehistory – ジェフリー・ムーア(「キャズム」 の著者)が2011年に出版したホワイ トペーパー – 非構造化データとは、データの入口 と出口に障壁のない、any-to- many-to-one で相互にアクセスさ れるデータ # 検討事項 構造化データ 非構造化データ 1 フォーカス トランザクション インタラクション 2 ガバナンス コマンド&コント ロール コラボレーション 3 主たる要素 事実、コミットメ ント 洞察、アイディア 4 与える価値 事実と根拠 発見と対話のため の場 5 存続期間 永続的 一時的 6 検索可能性 易しい 難しい 32 構造化データと非構造化データの比較表
  • 33. デスクトップアナリティクスの奨め • 近年、日本企業では戦略的なデー タの活用が加速化している • 近い将来、DBAが扱うデータは 、構造化データから非構造化デー タへ広がりを見せる • 構造化/非構造化のデータを問わ ず、データを棚卸できれば、そ の先にデータ活用が可能に! 33 データの活用度 デ ー タ の 多 様 さ R C C C C RR ②データ活用が可能に。 デスクトップアナリティクスは、DBAが注力すべき技術領域のひとつです。 AnalyticsData modeling Structured Data (SoR) Unstructured Data (SoE) ①データの範囲が広がり、