Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
MapR Technologies Japan
PPTX, PDF
2,688 views
Apache Drill で日本語を扱ってみよう + オープンデータ解析
Apache Drill で日本語を扱ってみよう + オープンデータ解析
Data & Analytics
◦
Read more
3
Save
Share
Embed
Embed presentation
Download
Downloaded 15 times
1
/ 26
2
/ 26
3
/ 26
4
/ 26
5
/ 26
6
/ 26
7
/ 26
8
/ 26
9
/ 26
10
/ 26
11
/ 26
12
/ 26
13
/ 26
14
/ 26
15
/ 26
16
/ 26
17
/ 26
18
/ 26
19
/ 26
20
/ 26
21
/ 26
22
/ 26
23
/ 26
24
/ 26
25
/ 26
26
/ 26
More Related Content
PDF
Apache Spark の紹介(前半:Sparkのキホン)
by
NTT DATA OSS Professional Services
PDF
Apache Drill を利用した実データの分析
by
MapR Technologies Japan
PDF
M12_数百台の開発サーバをリフトアンドシフト! Azure Migrate 活用ポイント [Microsoft Japan Digital Days]
by
日本マイクロソフト株式会社
PPT
Cassandraのしくみ データの読み書き編
by
Yuki Morishita
PPT
インフラエンジニアのためのcassandra入門
by
Akihiro Kuwano
PPTX
Spring Boot ユーザの方のための Quarkus 入門
by
tsukasamannen
PDF
リペア時間短縮にむけた取り組み@Yahoo! JAPAN #casstudy
by
Yahoo!デベロッパーネットワーク
PPTX
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
by
VirtualTech Japan Inc.
Apache Spark の紹介(前半:Sparkのキホン)
by
NTT DATA OSS Professional Services
Apache Drill を利用した実データの分析
by
MapR Technologies Japan
M12_数百台の開発サーバをリフトアンドシフト! Azure Migrate 活用ポイント [Microsoft Japan Digital Days]
by
日本マイクロソフト株式会社
Cassandraのしくみ データの読み書き編
by
Yuki Morishita
インフラエンジニアのためのcassandra入門
by
Akihiro Kuwano
Spring Boot ユーザの方のための Quarkus 入門
by
tsukasamannen
リペア時間短縮にむけた取り組み@Yahoo! JAPAN #casstudy
by
Yahoo!デベロッパーネットワーク
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
by
VirtualTech Japan Inc.
What's hot
PDF
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
Spanner から GKE、Spinnaker、そして SRE まで、コロプラが今挑戦していること[Google Cloud INSIDE Games ...
by
Google Cloud Platform - Japan
PDF
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
by
Kohei Tokunaga
PDF
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
by
infinite_loop
PDF
CDNの仕組み(JANOG36)
by
J-Stream Inc.
PDF
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
by
Databricks
PDF
CLUB DB2 第137回:基礎から再入門!DB2モニタリング入門
by
Akira Shimosako
PPTX
Cluster API によるKubernetes環境のライフサイクル管理とマルチクラウド環境での適用
by
Motonori Shindo
PDF
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
by
Preferred Networks
PDF
Dragon: A Distributed Object Storage at Yahoo! JAPAN (WebDB Forum 2017)
by
Yahoo!デベロッパーネットワーク
PDF
”30分”ぐらいでわかる「Kubernetes」について
by
Yuya Ohara
PDF
Docker Compose 徹底解説
by
Masahito Zembutsu
PDF
Hue勉強会 20131008
by
Cloudera Japan
PPTX
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
by
NTT DATA Technology & Innovation
PDF
Docker入門: コンテナ型仮想化技術の仕組みと使い方
by
Yuichi Ito
PDF
Red Hat OpenShift Container Storage
by
Takuya Utsunomiya
PDF
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
by
Preferred Networks
PPTX
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
by
NTT DATA Technology & Innovation
PDF
AvailabilityZoneとHostAggregate
by
Hiroki Ishikawa
PDF
Dockerイメージの理解とコンテナのライフサイクル
by
Masahito Zembutsu
pg_stat_activityの不可解な観測結果の謎 (第47回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
Spanner から GKE、Spinnaker、そして SRE まで、コロプラが今挑戦していること[Google Cloud INSIDE Games ...
by
Google Cloud Platform - Japan
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
by
Kohei Tokunaga
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
by
infinite_loop
CDNの仕組み(JANOG36)
by
J-Stream Inc.
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
by
Databricks
CLUB DB2 第137回:基礎から再入門!DB2モニタリング入門
by
Akira Shimosako
Cluster API によるKubernetes環境のライフサイクル管理とマルチクラウド環境での適用
by
Motonori Shindo
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
by
Preferred Networks
Dragon: A Distributed Object Storage at Yahoo! JAPAN (WebDB Forum 2017)
by
Yahoo!デベロッパーネットワーク
”30分”ぐらいでわかる「Kubernetes」について
by
Yuya Ohara
Docker Compose 徹底解説
by
Masahito Zembutsu
Hue勉強会 20131008
by
Cloudera Japan
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
by
NTT DATA Technology & Innovation
Docker入門: コンテナ型仮想化技術の仕組みと使い方
by
Yuichi Ito
Red Hat OpenShift Container Storage
by
Takuya Utsunomiya
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
by
Preferred Networks
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
by
NTT DATA Technology & Innovation
AvailabilityZoneとHostAggregate
by
Hiroki Ishikawa
Dockerイメージの理解とコンテナのライフサイクル
by
Masahito Zembutsu
Viewers also liked
PDF
Apache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッション
by
MapR Technologies Japan
PDF
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11
by
MapR Technologies Japan
PDF
20150321 医学:医療者教育研究ネットワーク@九州大学
by
Takanori Hiroe
PDF
20151128_SMeNG_態度は変えられるのか
by
Takanori Hiroe
PDF
JSME_47th_Nigata
by
Takanori Hiroe
PPTX
20150827_simplesize
by
Takanori Hiroe
PPTX
HBase New Features
by
rxu
PDF
MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12
by
MapR Technologies Japan
PDF
MapR Streams & MapR コンバージド・データ・プラットフォーム
by
MapR Technologies Japan
PPTX
MapR 5.2: Getting More Value from the MapR Converged Community Edition
by
MapR Technologies
PDF
20170225_Sample size determination
by
Takanori Hiroe
PDF
Drill超簡単チューニング
by
MapR Technologies Japan
PPTX
MapR Streams and MapR Converged Data Platform
by
MapR Technologies
PDF
MapR & Skytree:
by
MapR Technologies
PPTX
Inside MapR's M7
by
Ted Dunning
PDF
Big Data Hadoop Briefing Hosted by Cisco, WWT and MapR: MapR Overview Present...
by
ervogler
PDF
ストリーミングアーキテクチャ: State から Flow へ - 2016/02/08 Hadoop / Spark Conference Japan ...
by
MapR Technologies Japan
PPTX
Evolving from RDBMS to NoSQL + SQL
by
MapR Technologies
PPTX
Docker1.13で変わったことをわからないなりにまとめてみた
by
Kouta Asai
PPTX
リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)
by
Atsushi Kurumada
Apache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッション
by
MapR Technologies Japan
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11
by
MapR Technologies Japan
20150321 医学:医療者教育研究ネットワーク@九州大学
by
Takanori Hiroe
20151128_SMeNG_態度は変えられるのか
by
Takanori Hiroe
JSME_47th_Nigata
by
Takanori Hiroe
20150827_simplesize
by
Takanori Hiroe
HBase New Features
by
rxu
MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12
by
MapR Technologies Japan
MapR Streams & MapR コンバージド・データ・プラットフォーム
by
MapR Technologies Japan
MapR 5.2: Getting More Value from the MapR Converged Community Edition
by
MapR Technologies
20170225_Sample size determination
by
Takanori Hiroe
Drill超簡単チューニング
by
MapR Technologies Japan
MapR Streams and MapR Converged Data Platform
by
MapR Technologies
MapR & Skytree:
by
MapR Technologies
Inside MapR's M7
by
Ted Dunning
Big Data Hadoop Briefing Hosted by Cisco, WWT and MapR: MapR Overview Present...
by
ervogler
ストリーミングアーキテクチャ: State から Flow へ - 2016/02/08 Hadoop / Spark Conference Japan ...
by
MapR Technologies Japan
Evolving from RDBMS to NoSQL + SQL
by
MapR Technologies
Docker1.13で変わったことをわからないなりにまとめてみた
by
Kouta Asai
リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)
by
Atsushi Kurumada
Similar to Apache Drill で日本語を扱ってみよう + オープンデータ解析
PDF
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
by
MapR Technologies Japan
PPT
Foss4 g 2011_hands-on_aoki
by
和人 青木
PDF
QGIS入門(1)
by
Hiroaki Sengoku
PDF
RでGIS
by
Hoshida Yukihisa
PDF
2014aoki gi sanalysisi5
by
和人 青木
PDF
MySQL勉強会 クエリチューニング編
by
MicroAd, Inc.(Engineer)
PPT
Qgislecture 1
by
Tomoki Kobayashi
PDF
GISを使ってみよう 2019
by
Kazutaka ishizaki
PPTX
オープンデータ活用
by
良治 富田
PDF
PostgreSQL 9.5 の新機能
by
Shigetaka Yachi
PDF
[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...
by
Insight Technology, Inc.
PDF
SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-
by
uedayou
PDF
Googleデータポータルで見える化に挑戦vol.2
by
Takami Kazuya
PDF
Where狙いのキー、order by狙いのキー
by
yoku0825
PDF
汎用Web API“SPARQL”でオープンデータ検索
by
uedayou
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
by
MapR Technologies Japan
Foss4 g 2011_hands-on_aoki
by
和人 青木
QGIS入門(1)
by
Hiroaki Sengoku
RでGIS
by
Hoshida Yukihisa
2014aoki gi sanalysisi5
by
和人 青木
MySQL勉強会 クエリチューニング編
by
MicroAd, Inc.(Engineer)
Qgislecture 1
by
Tomoki Kobayashi
GISを使ってみよう 2019
by
Kazutaka ishizaki
オープンデータ活用
by
良治 富田
PostgreSQL 9.5 の新機能
by
Shigetaka Yachi
[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...
by
Insight Technology, Inc.
SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-
by
uedayou
Googleデータポータルで見える化に挑戦vol.2
by
Takami Kazuya
Where狙いのキー、order by狙いのキー
by
yoku0825
汎用Web API“SPARQL”でオープンデータ検索
by
uedayou
More from MapR Technologies Japan
PDF
Fast Data を扱うためのデザインパターン
by
MapR Technologies Japan
PDF
MapR 5.2: MapR コンバージド・コミュニティ・エディションを使いこなす
by
MapR Technologies Japan
PDF
スケールアウト・インメモリ分析の標準フォーマットを目指す Apache Arrow と Value Vectors - Tokyo Apache Dril...
by
MapR Technologies Japan
PDF
Spark Streaming の基本とスケールする時系列データ処理 - Spark Meetup December 2015/12/09
by
MapR Technologies Japan
PDF
Drilling into Data with Apache Drill - Tokyo Apache Drill Meetup 2015/11/12
by
MapR Technologies Japan
PDF
HBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているか
by
MapR Technologies Japan
PDF
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
by
MapR Technologies Japan
PDF
Hadoop によるゲノム解読
by
MapR Technologies Japan
PDF
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
by
MapR Technologies Japan
PDF
異常検知 - 何を探すかよく分かっていないものを見つける方法
by
MapR Technologies Japan
PDF
時系列の世界の時系列データ
by
MapR Technologies Japan
PDF
逆らえない大きな流れ: 次世代のエンタープライズアーキテクチャ
by
MapR Technologies Japan
PDF
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...
by
MapR Technologies Japan
PDF
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...
by
MapR Technologies Japan
PDF
マップアールが考える企業システムにおける分析プラットフォームの進化 - 2014/06/27 Data Scientist Summit 2014
by
MapR Technologies Japan
PDF
エンタープライズ NoSQL/HBase プラットフォーム – MapR M7 エディション - db tech showcase 大阪 2014 201...
by
MapR Technologies Japan
PDF
MapR と Vertica エンジニアが語る、なぜその組み合わせが最高なのか? - db tech showcase 大阪 2014 2014/06/19
by
MapR Technologies Japan
PDF
MapR M7 技術概要
by
MapR Technologies Japan
PDF
Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...
by
MapR Technologies Japan
PDF
ビジネスへの本格活用が始まったHadoopの今 ~MapRが選ばれる理由~ - ビッグデータEXPO東京 2014/02/26
by
MapR Technologies Japan
Fast Data を扱うためのデザインパターン
by
MapR Technologies Japan
MapR 5.2: MapR コンバージド・コミュニティ・エディションを使いこなす
by
MapR Technologies Japan
スケールアウト・インメモリ分析の標準フォーマットを目指す Apache Arrow と Value Vectors - Tokyo Apache Dril...
by
MapR Technologies Japan
Spark Streaming の基本とスケールする時系列データ処理 - Spark Meetup December 2015/12/09
by
MapR Technologies Japan
Drilling into Data with Apache Drill - Tokyo Apache Drill Meetup 2015/11/12
by
MapR Technologies Japan
HBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているか
by
MapR Technologies Japan
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
by
MapR Technologies Japan
Hadoop によるゲノム解読
by
MapR Technologies Japan
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
by
MapR Technologies Japan
異常検知 - 何を探すかよく分かっていないものを見つける方法
by
MapR Technologies Japan
時系列の世界の時系列データ
by
MapR Technologies Japan
逆らえない大きな流れ: 次世代のエンタープライズアーキテクチャ
by
MapR Technologies Japan
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...
by
MapR Technologies Japan
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...
by
MapR Technologies Japan
マップアールが考える企業システムにおける分析プラットフォームの進化 - 2014/06/27 Data Scientist Summit 2014
by
MapR Technologies Japan
エンタープライズ NoSQL/HBase プラットフォーム – MapR M7 エディション - db tech showcase 大阪 2014 201...
by
MapR Technologies Japan
MapR と Vertica エンジニアが語る、なぜその組み合わせが最高なのか? - db tech showcase 大阪 2014 2014/06/19
by
MapR Technologies Japan
MapR M7 技術概要
by
MapR Technologies Japan
Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...
by
MapR Technologies Japan
ビジネスへの本格活用が始まったHadoopの今 ~MapRが選ばれる理由~ - ビッグデータEXPO東京 2014/02/26
by
MapR Technologies Japan
Apache Drill で日本語を扱ってみよう + オープンデータ解析
1.
© 2014 MapR
Technologies 1© 2014 MapR Technologies Apache Drill で日本語を扱ってみよう + オープンデータ解析
2.
© 2014 MapR
Technologies 2 自己紹介 • 梅川 真人(ウメカワマサト) • MapR Technologies セールスエンジニア • 2015/5 に MapR に それまでは SIer にいたが MapR に惚れてしまい転職 • 趣味は YOGA、でも最近さぼりぎみ。。
3.
© 2014 MapR
Technologies 3© 2014 MapR Technologies Apache Drill で日本語を扱う時の注意点
4.
© 2014 MapR
Technologies 4 ゆるい日本語のデータ No タイトル 県名 1 くまモン 熊本 2 ふなっしー 船橋 3 せんとくん 奈良 ファイル名: yuru.csv
5.
© 2014 MapR
Technologies 5 ロケール(1) $ echo $LANG en_US.UTF-8 $ sqlline 0: jdbc:drill:zk=drill01:5181> select * from dfs.`/tmp/yuru.csv`; +---------------------+ | columns | +---------------------+ | ["1","????","??"] | | ["2","?????","??"] | | ["3","?????","??"] | +---------------------+ 3 rows selected (0.159 seconds) ロケールがen_US.UTF-8だと文字化けする
6.
© 2014 MapR
Technologies 6 ロケール(2) $ echo $LANG ja_JP.UTF-8 $ sqlline 0: jdbc:drill:zk=drill01:5181> select * from dfs.`/tmp/yuru.csv`; +---------------------+ | columns | +---------------------+| ["1","くまモン","熊本"] | | ["2","ふなっしー","船橋"] | | ["3","せんとくん","奈良"] | +---------------------+ 3 rows selected (0.159 seconds) Ja_JP.UTF-8にすれば文字化けせずに表示される
7.
© 2014 MapR
Technologies 7 文字列リテラルのエラー 0: jdbc:drill:> select . . . . . . . > columns[0] 番号, . . . . . . . > columns[1] 名前, . . . . . . . > columns[2] 住所 . . . . . . . > from dfs.`/tmp/yuru.csv` . . . . . . . > where columns[2] = '熊本’; Error: SYSTEM ERROR: CalciteException: Failed to encode ‘熊本’ in character set ‘ISO- 8859-1’ [Error Id: 98a5ba50-81a6-4718-a274-a2b784d7d7aa on drill02:31010] (state=,code=0) デフォルトだとエラーが・・
8.
© 2014 MapR
Technologies 8 文字列リテラルの対策 Apache Calcite - SQL Language http://calcite.incubator.apache.org/docs/reference.html DrillはSQLパーサの部分にApache Calciteを利用しているため、 Calciteのドキュメントを見てみましょう。 データ型 説明 範囲と例 CHAR(n) CHARACTER(n) Fixed-width character string Hello’, ‘’ (空文字), _latin1’Hello’, n’Hello’, _UTF16’Hello’, ‘Hello’ ‘there’ (複数パートに分割されたリテラル)
9.
© 2014 MapR
Technologies 9 文字列リテラルの対策済みクエリ 0: jdbc:drill:zk=local> SELECT . . . . . . . . . . . > COLUMNS[0] 番号, . . . . . . . . . . . > COLUMNS[1] 名前, . . . . . . . . . . . > COLUMNS[2] 住所 . . . . . . . . . . . > FROM dfs.`/tmp/test.csv` . . . . . . . . . . . > WHERE COLUMNS[2] = _UTF16'熊本'; +-----+--------+-----+ | 番号 | 名前 | 住所 | +-----+--------+-----+ | 1 | くまモン | 熊本 | +-----+--------+-----+ 1 rows selected (1.543 seconds) _UTF16 をつけてみるとうまくいきました
10.
© 2014 MapR
Technologies 10 drill1.0 での 恒久的な対応 /** * The string property "saffron.default.charset" is the name of the default * character set. The default is "ISO-8859-1". It is used in * {@link org.apache.calcite.sql.validate.SqlValidator}. */ public final StringProperty defaultCharset = new StringProperty(this, "saffron.default.charset", "ISO-8859-1"); 毎回_UTF16をつけるのは面倒なのでデフォルトにできないか調べてみる
11.
© 2014 MapR
Technologies 11 drill1.0 での恒久的な対応 $ vi apache-drill-1.-.0/conf/drill-env.sh export DRILL_SHELL_JAVA_OPTS="-Dsaffron.default.charset=UTF-16LE" 「saffron.default.charset」というプロパティにUTF-16を指定すればよさそうな感じで す。 これを記載するのは、設定ファイルdrill-env.shの中の環境変数 DRILL_SHELL_JAVA_OPTSの設定をします。 文字セット名は、いろいろ試したところ、「UTF-16LE」である必要があるようです。
12.
© 2014 MapR
Technologies 12 まとめ ロケールは “ja_JP.UTF-8” に 文字列リテラルに _UTF16 をつける Apache-drill-1.0.0/conf/drill-env.sh なら export DRILL_SHELL_JAVA_OPTS=“-Dsaffron.default.charset=UTF-16LE” を追記
13.
© 2014 MapR
Technologies 13© 2014 MapR Technologies オープンデータから23区の人口増減率を 調べよう
14.
© 2014 MapR
Technologies 14 データ取得元 政府統計の総合窓口(e-Stat) URL: http://www.e-stat.go.jp/api/ 使用したデータ: 国勢調査(平成22年度) 政府統計コード: 00200521 APIを使うにはサイト上から利用登録をしてアプリケーションIDを取得
15.
© 2014 MapR
Technologies 15 データを取得してみる $ curl -o stats_list.json "http://api.e- stat.go.jp/rest/2.0/app/json/getStatsList?appId=XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX&surveyYears=2010&statsCode=00 200521" 国勢調査の政府統計コード 自分のアプリケーションID
16.
© 2014 MapR
Technologies 16 取得したデータを見てみる 0: jdbc:drill:zk=local> SELECT * FROM dfs.`/tmp/stats_list.json` t; +--------------------+ | GET_STATS_LIST | +--------------------+ {“RESULT”:{“STATUS”:0,“ERROR_MSG”:“正常に終了しまし た。”,“DATE”:“2015-05- 21T19:01:17.540+09:00”},“PARAMETER”:{“LANG”:“J”,“SURVEY_YEA RS”:2010,“STATS_CODE”:“0 | +----------------+ 1 row selected (0.955 seconds)
17.
© 2014 MapR
Technologies 17 JSONデータを見てみる { "GET_STATS_LIST":{ "RESULT":{ ← 取得結果のステータス情報 “STATUS”:0, “ERROR_MSG”:"u6B63u5E38u306Bu7D42u4E86u3057u307Eu3057u305Fu3002", "DATE":"2015-05-21T19:01:17.540+09:00" }, "PARAMETER":{ ← 取得時に指定したパラメータ "LANG":"J", "SURVEY_YEARS":2010, "STATS_CODE":"00200521", "DATA_FORMAT":"J" }, “DATALIST_INF”:{ ← 統計表のリストデータ本体 "NUMBER":356, “RESULT” INF”:{ "FROM_NUMBER":1, "TO_NUMBER":356 }, “TABLE_INF”:[ ← 統計表のリスト {"@id":"0003033021",...}, {"@id":"0003033022",...}, ... ] } } }
18.
© 2014 MapR
Technologies 18 KVGEN()とFLATTEN()関数 KVGEN()関数: <キー>:<値>, <キー>:<値>, ... の並びを [ {"key":<キー>,"value":<値>}, {"key":<キー>,"value":<値>}, ... ] に分解 Apache Drill 特有の関数。FLATTEN()関数は配列をレコードに展開。ここで 「GET_STATS_LIST」に対してKVGEN()関数とFLATTEN()関数を使うことで、一つ下の 階層のキーと値の組がレコードとして展開されます。
19.
© 2014 MapR
Technologies 19 KVGEN()とFLATTEN()関数で分解する 0: jdbc:drill:zk=local> SELECT FLATTEN(KVGEN(t.GET_STATS_LIST)) FROM dfs.`/tmp/stats_list.json` t; +----------------------------------------------------------------------------------------------------------------------+ | EXPR$0 | +----------------------------------------------------------------------------------------------------------------------+ | {“key”:“RESULT”,“value”:{“STATUS”:0,“ERROR_MSG”:“正常に終了しました。”,“DATE”:“2015-05- 21T19:01:17.540+09:00”,“RESULT_INF”:{},“TA | |{”key“:”PARAMETER“,”value“:{”LANG“:”J“,”SURVEY_YEARS“:2010,”STATS_CODE“:”00200521“,”D ATA_FORMAT“:”J“,”RESULT_INF“:{},”TABLE_INF“:[]}} | |{”key“:”DATALIST_INF“,”value“:{”NUMBER“:356,”RESULT_INF“:{”FROM_NUMBER“:1,”TO_NUMBE R“:356},”TABLE_INF“:[{”@id“:”0003033021“,”STAT_ | +---------------------------------------------------------------------------------------------------------------------+ 3 rows selected (0.452 seconds)
20.
© 2014 MapR
Technologies 20 統計表IDを取得する 0: jdbc:drill:> SELECT. . . . . . . > d.table_inf.`@id`, . . . . . . . > d.table_inf.TITLE.$ . . . . . . . > FROM ( . . . . . . . > SELECT FLATTEN(t.GET_STATS_LIST.DATALIST_INF.TABLE_INF) table_inf . . . . . . . > FROM dfs.`/tmp/stats_list.json` t . . . . . . . > ) d . . . . . . . > WHERE d.TABLE_INF.TITLE.$ LIKE '%人口増減%'; +-------------+-----------------------------------------------------------------+ | EXPR$0 | EXPR$1 | +-------------+-----------------------------------------------------------------+ | 0003038586 | 人口,人口増減,面積及び人口密度 全国,市部・郡部,都道府県,市部・郡部,支庁,郡 計,市区町村・旧市町村,全域・人口集中地区 | +-------------+-----------------------------------------------------------------+ 1 row selected (1.465 seconds)
21.
© 2014 MapR
Technologies 21 地域名ビューの作成 0: jdbc:drill:zk=local> CREATE VIEW dfs.tmp.`area_info` AS SELECT . . . . . . . . . . . > t.data.`@code` code, . . . . . . . . . . . > t.data.`@name` name, . . . . . . . . . . . > t.data.`@level` level, . . . . . . . . . . . > t.data.`@parentCode` parent . . . . . . . . . . . > FROM ( . . . . . . . . . . . > SELECT . . . . . . . . . . . > FLATTEN(f.GET_STATS_DATA.STATISTICAL_DATA.CLASS_INF.CLASS_OBJ[2]. CLASS) data . . . . . . . . . . . > FROM . . . . . . . . . . . > dfs.`/tmp/stats_data_modified.json` f . . . . . . . . . . . > ) t; データをSQLで扱いやすくするために、ビューとして定義してみましょう。 ここでは地域名を取り出すためのビューと、統計データを取り出すためのビューを定義します。
22.
© 2014 MapR
Technologies 22 統計データビューの作成 0: jdbc:drill:zk=local> CREATE VIEW dfs.tmp.`stats_data` AS SELECT . . . . . . . . . . . > t.data.`@tab` tab, . . . . . . . . . . . > t.data.`@cat01` did, . . . . . . . . . . . > t.data.`@area` area, . . . . . . . . . . . > t.data.$ val . . . . . . . . . . . > FROM ( . . . . . . . . . . . > SELECT . . . . . . . . . . . > FLATTEN(f.GET_STATS_DATA.STATISTICAL_DATA.DATA_INF.`VALUE`) data . . . . . . . . . . . > FROM . . . . . . . . . . . > dfs.`/tmp/stats_data_modified.json` f . . . . . . . . . . . > ) t;
23.
© 2014 MapR
Technologies 23 地域名ビュー 0: jdbc:drill:zk=local> SELECT * FROM dfs.tmp.`area_info` LIMIT 10; +--------+--------+--------+---------+ | code | name | level | parent | +--------+--------+--------+---------+ | 00000 | 全国 | 1 | null | | 00001 | 全国市部 | 1 | null | | 00002 | 全国郡部 | 1 | null | | 01000 | 北海道 | 2 | 00000 | | 01001 | 北海道市部 | 3 | 01000 | | 01002 | 北海道郡部 | 3 | 01000 | | 01100 | 札幌市 | 3 | 01000 | | 01101 | 中央区 | 4 | 01100 | | 01102 | 北区 | 4 | 01100 | | 01103 | 東区 | 4 | 01100 | +--------+--------+--------+---------+ 10 rows selected (11.902 seconds)
24.
© 2014 MapR
Technologies 24 統計データビュー 0: jdbc:drill:zk=local> SELECT * FROM dfs.tmp.`stats_data` LIMIT 10; +------+--------+--------+------------+ | tab | did | area | val | +------+--------+--------+------------+ | 020 | 00710 | 00000 | 128057352 | | 020 | 00710 | 00001 | 116156631 | | 020 | 00710 | 00002 | 11900721 | | 020 | 00710 | 01000 | 5506419 | | 020 | 00710 | 01001 | 4449360 | | 020 | 00710 | 01002 | 1057059 | | 020 | 00710 | 01100 | 1913545 | | 020 | 00710 | 01101 | 220189 | | 020 | 00710 | 01102 | 278781 | | 020 | 00710 | 01103 | 255873 | +------+--------+--------+------------+ 10 rows selected (87.308 seconds)
25.
© 2014 MapR
Technologies 25 23区の人口増減率 0: jdbc:drill:> SELECT a.name 地域, b.val 人口, c.val 増減率 . . . . . . . > FROM (SELECT * FROM dfs.tmp.`area_info` t . . . . . . . > WHERE t.parent = '13100') a . . . . . . . > JOIN dfs.tmp.`stats_data` b . . . . . . . > ON a.code = b.area AND b.tab = '020' AND . . . . . . . > b.did = '00710’ . . . . . . . > JOIN dfs.tmp.`stats_data` c . . . . . . . > ON a.code = c.area AND c.tab = '102' AND . . . . . . . > c.did = '00710' AND c.val <> '-’ . . . . . . . > ORDER BY CAST(c.val AS DOUBLE) DESC; +-------+---------+-----------+ | 地域 | 人口 | 増減率 | +-------+---------+-----------+ | 中央区 | 122762 | 24.7594 | | 豊島区 | 284678 | 13.60536 | | 千代田区 | 47115 | 12.77467 | | 港区 | 205131 | 10.36796 | | 江東区 | 460819 | 9.49851 | | 足立区 | 683426 | 9.38194 | . | 板橋区 | 535824 | 2.43575 | | 目黒区 | 268330 | 1.61552 | | 北区 | 335544 | 1.55321 | | 中野区 | 314750 | 1.32732 | | 渋谷区 | 204492 | 0.56951 | +-------+---------+-----------+ 23 rows selected (547.958 seconds)
26.
© 2014 MapR
Technologies 26 Q&A @mapr_japan maprjapan sales-jp@mapr.com お問い合わせはこちらまで MapR maprtech mapr-technologies オープンデータの詳細な手順は@nagixのブログもご覧下さい http://nagix.hatenablog.com
Editor's Notes
#2
全国の人口増減のデータを含む統計表の統計表ID「0003038586」が取得できました。 ではいよいよ、国勢調査のデータそのものをダウンロードしてみましょう、といきたいところですが、長くなってきたので次の記事で!
#8
これは「熊本」という文字列をISO-8859-1文字セットで扱おうとして失敗したという内容です。 DrillはSQLパーサの部分にApache Calciteを利用しているため、 Calciteのドキュメントを見てみましょう。
#17
巨大な1つのフィールドにすべてのデータが入っているのがわかります(あまりにも大きいのでカットしています)。 これは、JSONデータの最上位のオブジェクトのキー「GET_STATS_LIST」と値に対応しているためです。実際のJSONファイルも見てみましょう。
#21
最終的には分析の対象となるデータの「統計表ID」を知らないといけないのですが、 表題に「人口増減」という言葉が入っている統計表を探して、その統計表IDを取得しましょう。
#26
東京都下では中央区の人口の伸びがダントツです。 特に日本橋エリアのマンション開発が進んだ影響のようですね。 豊島区の伸びは池袋近辺の中国人人口の増加によるものが大きいとのことです。 いかがでしたでしょうか。 Apache Drillの強みは、どんな形式のデータが格納されているかわからない状況で、 スキーマが事前に整っていなくても比較的柔軟にユーザーが思い通りにデータの探索をできることです。ぜひ手元の環境で試してみてください。
Download