SlideShare a Scribd company logo
1 of 32
Rとデータベース
簑田 高志
2017/5/19
Tokyo.R #61
目次
1.自己紹介
2.データベースとは
3.Rからデータベースへ接続
4.SQLでデータを抜き出す
5.dplyrでデータを抜き出す
6.まとめ
* 特に断りの無い場合、スクリーンショット等はMacとなります
自己紹介
• 名前 :簑田 高志
• Twitter :aad34210
• ブログ :http://pracmper.blogspot.com/
• 出身地 :熊本県
• 出身学部 :法学部
• 仕事 :E-commerceのアナリスト
インターネット広告のビジネスアナリスト
データベースとは
* https://ja.wikipedia.org/wiki/データベース
データベース(英: database, DB)とは、検索や
蓄積が容易にできるよう整理された情報の集まり。
通常はコンピュータによって実現されたものを指
すが、紙の住所録などをデータベースと呼ぶ場合
もある。コンピュータを使用したデータベース・
システムでは、データベース管理用のミドルウェ
アであるデータベース管理システムを使用する場
合も多い。
* https://rviews.rstudio.com/2017/05/17/databases-using-r/
データベースからデータをエクスポート、Rへインポートしてデー
タフレームに変換、R上で加工・解析
→ データのエクスポート、Rへのロードに時間が
かかってしまう
* https://rviews.rstudio.com/2017/05/17/databases-using-r/
データベース側のSQLエンジンを使ってある程度までは集計。
結果のみをR側に取得する
→ データのエクスポート、Rへのロードへの負荷
軽減
Rからデータベースへ接続
今回使うデータベースは
今回使うPackageは
•bigrquery
•dplyr
始める前にGoogle Cloud Platformでアカウントを開設、プロジェクトを作成
しておいてください
Rからデータベースへ接続
Rに以下のコードを入力
# Packages
install.packages("bigrquery")
install.packages("dplyr")
library(bigrquery)
library(dplyr)
SQLでデータを抜き出す
Rに以下のコードを入力
## 接続情報(プロジェクトID)
prj <- “**********"
samp_sql <- "SELECT count(*) FROM
[bigquery-public-data:noaa_gsod.gsod1929]"
## SQLを投げる
query_exec(samp_sql , project = prj)
初回に実行をすると、認証を求められます
> query_exec(samp_sql , project = prj)
Use a local file ('.httr-oauth'), to cache OAuth
access credentials between R sessions?
1: Yes
2: No
Selection: Yes
以下のURLをブラウザに入力
Adding .httr-oauth to .gitignore
httpuv not installed, defaulting to out-of-band
authentication
Please point your browser to the following url:
https://accounts.google.com/o/oauth2/auth?clien
t_id=*************************
この画像が出てくるので、「許可」をクリック
改めてquery_exec()を実行
> query_exec(samp_sql , project = prj)
Auto-refreshing stale OAuth token.
f0_
1 2081
改めてquery_exec()を実行
dplyrでデータを抜き出す
続いてdplyrでデータを抽出する
## src_bigquery()を使って説情報を入力。billingはプロジェクトIDを指定
## 第一、二引数はBigQueryのコンソールから適当に指定
gb <- src_bigquery("lookerdata" , "cdc" , billing = “*********")
## dplyrを使って項目確認
gb %>% tbl("project_tycho_reports") %>% head()
epi_week state loc loc_type disease cases incidence_per_100000
<int> <chr> <chr> <chr> <chr> <chr> <dbl>
1 199329 IA IOWA STATE PERTUSSIS 0 0
2 199330 IA IOWA STATE PERTUSSIS 0 0
3 199336 IA IOWA STATE PERTUSSIS 0 0
4 199342 IA IOWA STATE PERTUSSIS 0 0
5 199343 IA IOWA STATE PERTUSSIS 0 0
6 199344 IA IOWA STATE PERTUSSIS 0 0
summariseを使って集計してみる
## summariseを使って集計
gb %>% tbl("project_tycho_reports") %>% select(epi_week) %>%
summarise(n = n())
Source: query [?? x 1]
Database: bigquery [lookerdata:cdc]
n
<int>
1 759467
summariseを使ってデータフレームを作ってみる
## summariseを使って集計(データフレームへ)
bb <- gb %>% tbl("project_tycho_reports") %>% group_by(loc) %>%
summarise(n = n()) %>% as.data.frame()
BigQueryのエディタを使って確認
同じ数字がでていることを確認できた
件数は
166件
まとめ
• BigQueryを使う際にはプロジェクトIDが必要
• 一番最初は認証が必要(URLアクセスするだ
け)
• query_exec([SQL] , project = [プロジェクトID])
でSQLの実行
• src_bigquery()で接続情報設定
• 接続情報+tbl(テーブル名)+dplyrで集計
• 接続情報+tbl(テーブル名)
+dplyr+as.data.frame
でR上ででデータフレーム作成
Enjoy!
Appendix
• 経験上、複雑なデータモデル(Joinを多数利
用)を使って分析する場合、dplyrで対応
できない可能性が高い
• (思った挙動にならない、DBサーバーに高い
負荷をかけてしまう)
• 分析用のデータセットを事前に作成しておいて、
それをdplyrで操作するほうが良い方法

More Related Content

What's hot

位置情報にまつわるデータ補間技術
位置情報にまつわるデータ補間技術位置情報にまつわるデータ補間技術
位置情報にまつわるデータ補間技術Hiroaki Sengoku
 
データ集計基盤のいままでとこれから 〜Hadoopからdataflowまで使い込んだ経験を徹底共有〜
データ集計基盤のいままでとこれから 〜Hadoopからdataflowまで使い込んだ経験を徹底共有〜データ集計基盤のいままでとこれから 〜Hadoopからdataflowまで使い込んだ経験を徹底共有〜
データ集計基盤のいままでとこれから 〜Hadoopからdataflowまで使い込んだ経験を徹底共有〜Kazuhiro Mitsuhashi
 
SeekR Annual Search Trends Report 2015
SeekR Annual Search Trends Report 2015SeekR Annual Search Trends Report 2015
SeekR Annual Search Trends Report 2015Takekatsu Hiramura
 
tokyo_webmining_no51
tokyo_webmining_no51tokyo_webmining_no51
tokyo_webmining_no51Shu (shoe116)
 
Hadoopことはじめ
HadoopことはじめHadoopことはじめ
Hadoopことはじめ均 津田
 
PredictionIOでSparkMLを使った開発方法
PredictionIOでSparkMLを使った開発方法PredictionIOでSparkMLを使った開発方法
PredictionIOでSparkMLを使った開発方法Shinsuke Sugaya
 
中の人が語る seekR.jp の裏側
中の人が語る seekR.jp の裏側中の人が語る seekR.jp の裏側
中の人が語る seekR.jp の裏側Takekatsu Hiramura
 
Juliaを使った機械学習
Juliaを使った機械学習Juliaを使った機械学習
Juliaを使った機械学習Aki Ariga
 
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本Norihiko Nakabayashi
 
Wikipediaで位置情報のテキストマインニングっぽいことをやってみた 20121208
Wikipediaで位置情報のテキストマインニングっぽいことをやってみた 20121208Wikipediaで位置情報のテキストマインニングっぽいことをやってみた 20121208
Wikipediaで位置情報のテキストマインニングっぽいことをやってみた 20121208真吾 森
 
LIFULL HOME'S Firebaseによる特集配信
LIFULL HOME'S Firebaseによる特集配信LIFULL HOME'S Firebaseによる特集配信
LIFULL HOME'S Firebaseによる特集配信庸介 高橋
 
Hadoop Conference Japan 2013 Winter オープニングスライド
Hadoop Conference Japan 2013 Winter オープニングスライドHadoop Conference Japan 2013 Winter オープニングスライド
Hadoop Conference Japan 2013 Winter オープニングスライドhamaken
 
Introduction of neo4j
Introduction of neo4jIntroduction of neo4j
Introduction of neo4jIto Kunihiko
 
第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポートYou&I
 
Sendai r01 beginnerssession1
Sendai r01 beginnerssession1Sendai r01 beginnerssession1
Sendai r01 beginnerssession1kotora_0507
 

What's hot (18)

位置情報にまつわるデータ補間技術
位置情報にまつわるデータ補間技術位置情報にまつわるデータ補間技術
位置情報にまつわるデータ補間技術
 
データ集計基盤のいままでとこれから 〜Hadoopからdataflowまで使い込んだ経験を徹底共有〜
データ集計基盤のいままでとこれから 〜Hadoopからdataflowまで使い込んだ経験を徹底共有〜データ集計基盤のいままでとこれから 〜Hadoopからdataflowまで使い込んだ経験を徹底共有〜
データ集計基盤のいままでとこれから 〜Hadoopからdataflowまで使い込んだ経験を徹底共有〜
 
SeekR Annual Search Trends Report 2015
SeekR Annual Search Trends Report 2015SeekR Annual Search Trends Report 2015
SeekR Annual Search Trends Report 2015
 
SeekR Search Trend Report
SeekR Search Trend ReportSeekR Search Trend Report
SeekR Search Trend Report
 
tokyo_webmining_no51
tokyo_webmining_no51tokyo_webmining_no51
tokyo_webmining_no51
 
Hadoopことはじめ
HadoopことはじめHadoopことはじめ
Hadoopことはじめ
 
PredictionIOでSparkMLを使った開発方法
PredictionIOでSparkMLを使った開発方法PredictionIOでSparkMLを使った開発方法
PredictionIOでSparkMLを使った開発方法
 
中の人が語る seekR.jp の裏側
中の人が語る seekR.jp の裏側中の人が語る seekR.jp の裏側
中の人が語る seekR.jp の裏側
 
Juliaを使った機械学習
Juliaを使った機械学習Juliaを使った機械学習
Juliaを使った機械学習
 
20150128 cross2015
20150128 cross201520150128 cross2015
20150128 cross2015
 
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
Jupyter Notebookでscikit-learnを使った機械学習・画像処理の基本
 
Wikipediaで位置情報のテキストマインニングっぽいことをやってみた 20121208
Wikipediaで位置情報のテキストマインニングっぽいことをやってみた 20121208Wikipediaで位置情報のテキストマインニングっぽいことをやってみた 20121208
Wikipediaで位置情報のテキストマインニングっぽいことをやってみた 20121208
 
LIFULL HOME'S Firebaseによる特集配信
LIFULL HOME'S Firebaseによる特集配信LIFULL HOME'S Firebaseによる特集配信
LIFULL HOME'S Firebaseによる特集配信
 
Hadoop Conference Japan 2013 Winter オープニングスライド
Hadoop Conference Japan 2013 Winter オープニングスライドHadoop Conference Japan 2013 Winter オープニングスライド
Hadoop Conference Japan 2013 Winter オープニングスライド
 
Introduction of neo4j
Introduction of neo4jIntroduction of neo4j
Introduction of neo4j
 
第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート第1回Hadoop関西勉強会参加レポート
第1回Hadoop関西勉強会参加レポート
 
Sendai r01 beginnerssession1
Sendai r01 beginnerssession1Sendai r01 beginnerssession1
Sendai r01 beginnerssession1
 
nakihiro_rengo2015
nakihiro_rengo2015nakihiro_rengo2015
nakihiro_rengo2015
 

Similar to Rとデータベース 第61回 Tokyo.R

データマネジメント概論
データマネジメント概論データマネジメント概論
データマネジメント概論Michitaro Okano
 
AWSerにも知ってほしいDBの話
AWSerにも知ってほしいDBの話AWSerにも知ってほしいDBの話
AWSerにも知ってほしいDBの話Kenichiro Mori
 
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現Ryoma Nagata
 
TAM 新人ディレクター システムスキルアップ プログラム 第6回 「データベース」
TAM 新人ディレクター システムスキルアップ プログラム 第6回 「データベース」TAM 新人ディレクター システムスキルアップ プログラム 第6回 「データベース」
TAM 新人ディレクター システムスキルアップ プログラム 第6回 「データベース」(株)TAM
 
データベース入門
データベース入門データベース入門
データベース入門拓 小林
 
実案件で見る データ分析用AWS基盤の構築方法 - Developers.IO 2017 (20170701)
実案件で見る データ分析用AWS基盤の構築方法 - Developers.IO 2017 (20170701)実案件で見る データ分析用AWS基盤の構築方法 - Developers.IO 2017 (20170701)
実案件で見る データ分析用AWS基盤の構築方法 - Developers.IO 2017 (20170701)Yosuke Katsuki
 
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020Daisuke Masubuchi
 
実はとても面白い...Documentation library
実はとても面白い...Documentation library実はとても面白い...Documentation library
実はとても面白い...Documentation libraryKouta Shiobara
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムRecruit Technologies
 
[db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔
[db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔[db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔
[db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔Insight Technology, Inc.
 
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみようPPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみようDaisuke Masubuchi
 
Dat009 クラウドでビック
Dat009 クラウドでビックDat009 クラウドでビック
Dat009 クラウドでビックTech Summit 2016
 
20150217 イタンジプログラミング講座テキスト第3回
20150217 イタンジプログラミング講座テキスト第3回20150217 イタンジプログラミング講座テキスト第3回
20150217 イタンジプログラミング講座テキスト第3回Yusuke Yokozawa
 
データ分析基盤におけるOpsのためのDev with event driven + serverless
データ分析基盤におけるOpsのためのDev with event driven + serverlessデータ分析基盤におけるOpsのためのDev with event driven + serverless
データ分析基盤におけるOpsのためのDev with event driven + serverlessShoji Shirotori
 
「Linked dataとLinked Open Data」アート・ドキュメンテーション学会
「Linked dataとLinked Open Data」アート・ドキュメンテーション学会「Linked dataとLinked Open Data」アート・ドキュメンテーション学会
「Linked dataとLinked Open Data」アート・ドキュメンテーション学会KAMURA
 
Database on Kubernetes - HA,Replication and more -
Database on Kubernetes - HA,Replication and more -Database on Kubernetes - HA,Replication and more -
Database on Kubernetes - HA,Replication and more -t8kobayashi
 
Mongo db勉強会
Mongo db勉強会Mongo db勉強会
Mongo db勉強会otmb
 

Similar to Rとデータベース 第61回 Tokyo.R (20)

データマネジメント概論
データマネジメント概論データマネジメント概論
データマネジメント概論
 
AWSerにも知ってほしいDBの話
AWSerにも知ってほしいDBの話AWSerにも知ってほしいDBの話
AWSerにも知ってほしいDBの話
 
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
データ基盤の従来~最新の考え方とSynapse Analyticsでの実現
 
Level dbを試した
Level dbを試したLevel dbを試した
Level dbを試した
 
TAM 新人ディレクター システムスキルアップ プログラム 第6回 「データベース」
TAM 新人ディレクター システムスキルアップ プログラム 第6回 「データベース」TAM 新人ディレクター システムスキルアップ プログラム 第6回 「データベース」
TAM 新人ディレクター システムスキルアップ プログラム 第6回 「データベース」
 
Shimane2008
Shimane2008Shimane2008
Shimane2008
 
データベース入門
データベース入門データベース入門
データベース入門
 
実案件で見る データ分析用AWS基盤の構築方法 - Developers.IO 2017 (20170701)
実案件で見る データ分析用AWS基盤の構築方法 - Developers.IO 2017 (20170701)実案件で見る データ分析用AWS基盤の構築方法 - Developers.IO 2017 (20170701)
実案件で見る データ分析用AWS基盤の構築方法 - Developers.IO 2017 (20170701)
 
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
PDF版 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう Db tech showcase2020
 
実はとても面白い...Documentation library
実はとても面白い...Documentation library実はとても面白い...Documentation library
実はとても面白い...Documentation library
 
データベース定義書とER図【勉強会資料】
データベース定義書とER図【勉強会資料】 データベース定義書とER図【勉強会資料】
データベース定義書とER図【勉強会資料】
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
[db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔
[db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔[db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔
[db tech showcase Tokyo 2015] B12:カラムストアデータベースの技術と活用法 by 日本電気株式会社 田村稔
 
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみようPPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
 
Dat009 クラウドでビック
Dat009 クラウドでビックDat009 クラウドでビック
Dat009 クラウドでビック
 
20150217 イタンジプログラミング講座テキスト第3回
20150217 イタンジプログラミング講座テキスト第3回20150217 イタンジプログラミング講座テキスト第3回
20150217 イタンジプログラミング講座テキスト第3回
 
データ分析基盤におけるOpsのためのDev with event driven + serverless
データ分析基盤におけるOpsのためのDev with event driven + serverlessデータ分析基盤におけるOpsのためのDev with event driven + serverless
データ分析基盤におけるOpsのためのDev with event driven + serverless
 
「Linked dataとLinked Open Data」アート・ドキュメンテーション学会
「Linked dataとLinked Open Data」アート・ドキュメンテーション学会「Linked dataとLinked Open Data」アート・ドキュメンテーション学会
「Linked dataとLinked Open Data」アート・ドキュメンテーション学会
 
Database on Kubernetes - HA,Replication and more -
Database on Kubernetes - HA,Replication and more -Database on Kubernetes - HA,Replication and more -
Database on Kubernetes - HA,Replication and more -
 
Mongo db勉強会
Mongo db勉強会Mongo db勉強会
Mongo db勉強会
 

More from Takashi Minoda

More from Takashi Minoda (20)

Introduction r (R入門)
Introduction r (R入門)Introduction r (R入門)
Introduction r (R入門)
 
RStudioでRをはじめよう(R for Beginner using RStudio)
RStudioでRをはじめよう(R for Beginner using RStudio)RStudioでRをはじめよう(R for Beginner using RStudio)
RStudioでRをはじめよう(R for Beginner using RStudio)
 
RからGoogle Cloud Vision API を利用する
RからGoogle Cloud Vision API を利用するRからGoogle Cloud Vision API を利用する
RからGoogle Cloud Vision API を利用する
 
TokyoR:RMarkdownでレポート作成
TokyoR:RMarkdownでレポート作成TokyoR:RMarkdownでレポート作成
TokyoR:RMarkdownでレポート作成
 
Tokyo r50 beginner_2
Tokyo r50 beginner_2Tokyo r50 beginner_2
Tokyo r50 beginner_2
 
Tokyo r49 beginner
Tokyo r49 beginnerTokyo r49 beginner
Tokyo r49 beginner
 
Tokyo r47 beginner
Tokyo r47 beginnerTokyo r47 beginner
Tokyo r47 beginner
 
Tokyo r47 beginner_2
Tokyo r47 beginner_2Tokyo r47 beginner_2
Tokyo r47 beginner_2
 
Tokyo r39 beginner
Tokyo r39 beginnerTokyo r39 beginner
Tokyo r39 beginner
 
Tokyo r38
Tokyo r38Tokyo r38
Tokyo r38
 
Tokyo r33 beginner
Tokyo r33 beginnerTokyo r33 beginner
Tokyo r33 beginner
 
Tokyo r30 anova_part2
Tokyo r30 anova_part2Tokyo r30 anova_part2
Tokyo r30 anova_part2
 
Tokyo r30 anova
Tokyo r30 anovaTokyo r30 anova
Tokyo r30 anova
 
Tokyo r30 beginner
Tokyo r30 beginnerTokyo r30 beginner
Tokyo r30 beginner
 
Tokyo r28 1
Tokyo r28 1Tokyo r28 1
Tokyo r28 1
 
Tokyo r27
Tokyo r27Tokyo r27
Tokyo r27
 
Tokyo r24 r_graph_tutorial
Tokyo r24 r_graph_tutorialTokyo r24 r_graph_tutorial
Tokyo r24 r_graph_tutorial
 
Tokyo r21 修正版
Tokyo r21 修正版Tokyo r21 修正版
Tokyo r21 修正版
 
Tokyo r21 2
Tokyo r21 2Tokyo r21 2
Tokyo r21 2
 
Tokyo r18
Tokyo r18Tokyo r18
Tokyo r18
 

Rとデータベース 第61回 Tokyo.R