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 Drill を利用した実データの分析
by
MapR Technologies Japan
PDF
Cours Android
by
Anouar Chamsse-Eddine NA
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
by
Hironobu Suzuki
PDF
Spark graphx
by
Carol McDonald
PDF
Presto on YARNの導入・運用
by
cyberagent
PPTX
Programming in Spark using PySpark
by
Mostafa
PDF
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
by
MinGeun Park
PDF
SRE 讀書會 - 導讀:第一章
by
Chen Cheng-Wei
Apache Drill を利用した実データの分析
by
MapR Technologies Japan
Cours Android
by
Anouar Chamsse-Eddine NA
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
by
Hironobu Suzuki
Spark graphx
by
Carol McDonald
Presto on YARNの導入・運用
by
cyberagent
Programming in Spark using PySpark
by
Mostafa
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
by
MinGeun Park
SRE 讀書會 - 導讀:第一章
by
Chen Cheng-Wei
What's hot
PPTX
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
by
NTT DATA Technology & Innovation
PDF
[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?
by
Juhong Park
PDF
How to Extend Apache Spark with Customized Optimizations
by
Databricks
PPTX
Remote method invocation
by
Institut supérieur des études technologiques de Radès
PPTX
Sqlmap
by
Rushikesh Kulkarni
PPTX
WAF Bypass Techniques - Using HTTP Standard and Web Servers’ Behaviour
by
Soroush Dalili
PPTX
DVWA(Damn Vulnerabilities Web Application)
by
Soham Kansodaria
PDF
RubyもApache Arrowでデータ処理言語の仲間入り
by
Kouhei Sutou
PDF
PS향유회 세미나 - PS는 개발자 취업에 도움이 될까?
by
SesangCho
PPTX
MAASで管理するBaremetal server
by
Yuki Yamashita
PPTX
오픈소스GIS를 활용한 서버기반 공간분석과 시각화
by
MinPa Lee
PPTX
Kafkaを活用するためのストリーム処理の基本
by
Sotaro Kimura
PDF
DPDKを用いたネットワークスタック,高性能通信基盤開発
by
slankdev
PDF
Apache NiFi の紹介 #streamctjp
by
Yahoo!デベロッパーネットワーク
PDF
Spark shuffle introduction
by
colorant
PDF
The Secret Life of a Bug Bounty Hunter – Frans Rosén @ Security Fest 2016
by
Frans Rosén
PPTX
IT SOX 404 COMPLIANCE (1)_1689335175.pptx
by
RSAArcher
PPTX
cours Android.pptx
by
YaminaGh1
PPTX
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
by
ryuz88
PDF
llvm入門
by
MITSUNARI Shigeo
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
by
NTT DATA Technology & Innovation
[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?
by
Juhong Park
How to Extend Apache Spark with Customized Optimizations
by
Databricks
Remote method invocation
by
Institut supérieur des études technologiques de Radès
Sqlmap
by
Rushikesh Kulkarni
WAF Bypass Techniques - Using HTTP Standard and Web Servers’ Behaviour
by
Soroush Dalili
DVWA(Damn Vulnerabilities Web Application)
by
Soham Kansodaria
RubyもApache Arrowでデータ処理言語の仲間入り
by
Kouhei Sutou
PS향유회 세미나 - PS는 개발자 취업에 도움이 될까?
by
SesangCho
MAASで管理するBaremetal server
by
Yuki Yamashita
오픈소스GIS를 활용한 서버기반 공간분석과 시각화
by
MinPa Lee
Kafkaを活用するためのストリーム処理の基本
by
Sotaro Kimura
DPDKを用いたネットワークスタック,高性能通信基盤開発
by
slankdev
Apache NiFi の紹介 #streamctjp
by
Yahoo!デベロッパーネットワーク
Spark shuffle introduction
by
colorant
The Secret Life of a Bug Bounty Hunter – Frans Rosén @ Security Fest 2016
by
Frans Rosén
IT SOX 404 COMPLIANCE (1)_1689335175.pptx
by
RSAArcher
cours Android.pptx
by
YaminaGh1
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
by
ryuz88
llvm入門
by
MITSUNARI Shigeo
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