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
Submit search
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
PPTX
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
by
NTT DATA Technology & Innovation
PDF
本当にあったApache Spark障害の話
by
x1 ichi
PDF
Hiveを高速化するLLAP
by
Yahoo!デベロッパーネットワーク
PDF
IoT時代におけるストリームデータ処理と急成長の Apache Flink
by
Takanori Suzuki
PDF
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
by
Yoshifumi Kawai
PDF
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
by
NTT DATA OSS Professional Services
PDF
TLS 1.3 と 0-RTT のこわ〜い話
by
Kazuho Oku
Apache Drill を利用した実データの分析
by
MapR Technologies Japan
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
by
NTT DATA Technology & Innovation
本当にあったApache Spark障害の話
by
x1 ichi
Hiveを高速化するLLAP
by
Yahoo!デベロッパーネットワーク
IoT時代におけるストリームデータ処理と急成長の Apache Flink
by
Takanori Suzuki
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
by
Yoshifumi Kawai
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
by
NTT DATA OSS Professional Services
TLS 1.3 と 0-RTT のこわ〜い話
by
Kazuho Oku
What's hot
PDF
Dockerからcontainerdへの移行
by
Kohei Tokunaga
PPTX
テストコードの DRY と DAMP
by
Yusuke Kagata
PDF
テスト文字列に「うんこ」と入れるな
by
Kentaro Matsui
PDF
実践イカパケット解析
by
Yuki Mizuno
PDF
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
by
Recruit Lifestyle Co., Ltd.
PDF
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
by
shinjiigarashi
PPTX
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
by
NTT DATA Technology & Innovation
PDF
何となく勉強した気分になれるパーサ入門
by
masayoshi takahashi
PDF
機械学習を用いた仕様書からのテストケース自動生成ツールSpec2Testの試作
by
Futa HIRAKOBA
PDF
Cassandraとh baseの比較して入門するno sql
by
Yutuki r
PPTX
Azure仮想マシンと仮想ネットワーク
by
Kuninobu SaSaki
PDF
インフラCICDの勘所
by
Toru Makabe
PDF
今さら聞けないDiとspring
by
土岐 孝平
PDF
Apache Arrow - データ処理ツールの次世代プラットフォーム
by
Kouhei Sutou
PDF
PHP実践 ~外部APIを使って情報を取得する~
by
schoowebcampus
PDF
EC2でkeepalived+LVS(DSR)
by
Sugawara Genki
PDF
インメモリーデータグリッドの選択肢
by
Masaki Yamakawa
PDF
MHA for MySQLとDeNAのオープンソースの話
by
Yoshinori Matsunobu
PDF
Jetson x Azure ハンズオン DeepStream Azure IoT
by
Deep Learning Lab(ディープラーニング・ラボ)
PDF
大規模サービスを支えるネットワークインフラの全貌
by
LINE Corporation
Dockerからcontainerdへの移行
by
Kohei Tokunaga
テストコードの DRY と DAMP
by
Yusuke Kagata
テスト文字列に「うんこ」と入れるな
by
Kentaro Matsui
実践イカパケット解析
by
Yuki Mizuno
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
by
Recruit Lifestyle Co., Ltd.
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
by
shinjiigarashi
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
by
NTT DATA Technology & Innovation
何となく勉強した気分になれるパーサ入門
by
masayoshi takahashi
機械学習を用いた仕様書からのテストケース自動生成ツールSpec2Testの試作
by
Futa HIRAKOBA
Cassandraとh baseの比較して入門するno sql
by
Yutuki r
Azure仮想マシンと仮想ネットワーク
by
Kuninobu SaSaki
インフラCICDの勘所
by
Toru Makabe
今さら聞けないDiとspring
by
土岐 孝平
Apache Arrow - データ処理ツールの次世代プラットフォーム
by
Kouhei Sutou
PHP実践 ~外部APIを使って情報を取得する~
by
schoowebcampus
EC2でkeepalived+LVS(DSR)
by
Sugawara Genki
インメモリーデータグリッドの選択肢
by
Masaki Yamakawa
MHA for MySQLとDeNAのオープンソースの話
by
Yoshinori Matsunobu
Jetson x Azure ハンズオン DeepStream Azure IoT
by
Deep Learning Lab(ディープラーニング・ラボ)
大規模サービスを支えるネットワークインフラの全貌
by
LINE Corporation
Viewers also liked
PDF
Drill超簡単チューニング
by
MapR Technologies Japan
PPTX
リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)
by
Atsushi Kurumada
PDF
20170225_Sample size determination
by
Takanori Hiroe
PDF
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11
by
MapR Technologies Japan
PDF
MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12
by
MapR Technologies Japan
PPTX
Evolving from RDBMS to NoSQL + SQL
by
MapR Technologies
PPTX
MapR Streams and MapR Converged Data Platform
by
MapR Technologies
PPTX
20150827_simplesize
by
Takanori Hiroe
PDF
Apache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッション
by
MapR Technologies Japan
PPTX
MapR 5.2: Getting More Value from the MapR Converged Community Edition
by
MapR Technologies
PPTX
Inside MapR's M7
by
Ted Dunning
PDF
MapR & Skytree:
by
MapR Technologies
PDF
ストリーミングアーキテクチャ: State から Flow へ - 2016/02/08 Hadoop / Spark Conference Japan ...
by
MapR Technologies Japan
PDF
Big Data Hadoop Briefing Hosted by Cisco, WWT and MapR: MapR Overview Present...
by
ervogler
PDF
MapR Streams & MapR コンバージド・データ・プラットフォーム
by
MapR Technologies Japan
PPTX
Docker1.13で変わったことをわからないなりにまとめてみた
by
Kouta Asai
PPTX
HBase New Features
by
rxu
PDF
JSME_47th_Nigata
by
Takanori Hiroe
PDF
20150321 医学:医療者教育研究ネットワーク@九州大学
by
Takanori Hiroe
PDF
20151128_SMeNG_態度は変えられるのか
by
Takanori Hiroe
Drill超簡単チューニング
by
MapR Technologies Japan
リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)
by
Atsushi Kurumada
20170225_Sample size determination
by
Takanori Hiroe
Apache Drill で JSON 形式の オープンデータを分析してみる - db tech showcase Tokyo 2015 2015/06/11
by
MapR Technologies Japan
MapR アーキテクチャ概要 - MapR CTO Meetup 2013/11/12
by
MapR Technologies Japan
Evolving from RDBMS to NoSQL + SQL
by
MapR Technologies
MapR Streams and MapR Converged Data Platform
by
MapR Technologies
20150827_simplesize
by
Takanori Hiroe
Apache Drill でたしなむ セルフサービスデータ探索 - 2014/11/06 Cloudera World Tokyo 2014 LTセッション
by
MapR Technologies Japan
MapR 5.2: Getting More Value from the MapR Converged Community Edition
by
MapR Technologies
Inside MapR's M7
by
Ted Dunning
MapR & Skytree:
by
MapR Technologies
ストリーミングアーキテクチャ: State から Flow へ - 2016/02/08 Hadoop / Spark Conference Japan ...
by
MapR Technologies Japan
Big Data Hadoop Briefing Hosted by Cisco, WWT and MapR: MapR Overview Present...
by
ervogler
MapR Streams & MapR コンバージド・データ・プラットフォーム
by
MapR Technologies Japan
Docker1.13で変わったことをわからないなりにまとめてみた
by
Kouta Asai
HBase New Features
by
rxu
JSME_47th_Nigata
by
Takanori Hiroe
20150321 医学:医療者教育研究ネットワーク@九州大学
by
Takanori Hiroe
20151128_SMeNG_態度は変えられるのか
by
Takanori Hiroe
Similar to Apache Drill で日本語を扱ってみよう + オープンデータ解析
PDF
MySQL勉強会 クエリチューニング編
by
MicroAd, Inc.(Engineer)
PDF
Where狙いのキー、order by狙いのキー
by
yoku0825
PDF
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
by
MapR Technologies Japan
PDF
QGIS入門(1)
by
Hiroaki Sengoku
PDF
GISを使ってみよう 2019
by
Kazutaka ishizaki
PDF
[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...
by
Insight Technology, Inc.
PPTX
オープンデータ活用
by
良治 富田
PDF
RでGIS
by
Hoshida Yukihisa
PDF
PostgreSQL 9.5 の新機能
by
Shigetaka Yachi
PPT
Qgislecture 1
by
Tomoki Kobayashi
PDF
2014aoki gi sanalysisi5
by
和人 青木
PDF
SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-
by
uedayou
PDF
汎用Web API“SPARQL”でオープンデータ検索
by
uedayou
PPT
Foss4 g 2011_hands-on_aoki
by
和人 青木
PDF
Googleデータポータルで見える化に挑戦vol.2
by
Takami Kazuya
MySQL勉強会 クエリチューニング編
by
MicroAd, Inc.(Engineer)
Where狙いのキー、order by狙いのキー
by
yoku0825
Apache Drill でオープンデータを分析してみる - db tech showcase Sapporo 2015 2015/09/11
by
MapR Technologies Japan
QGIS入門(1)
by
Hiroaki Sengoku
GISを使ってみよう 2019
by
Kazutaka ishizaki
[db tech showcase Tokyo 2015] A14:Amazon Redshiftの元となったスケールアウト型カラムナーDB徹底解説 その...
by
Insight Technology, Inc.
オープンデータ活用
by
良治 富田
RでGIS
by
Hoshida Yukihisa
PostgreSQL 9.5 の新機能
by
Shigetaka Yachi
Qgislecture 1
by
Tomoki Kobayashi
2014aoki gi sanalysisi5
by
和人 青木
SPARQLを利用した逆マッシュアップ-プログラミングを必要としないアプリ作成方法-
by
uedayou
汎用Web API“SPARQL”でオープンデータ検索
by
uedayou
Foss4 g 2011_hands-on_aoki
by
和人 青木
Googleデータポータルで見える化に挑戦vol.2
by
Takami Kazuya
More from MapR Technologies Japan
PDF
スケールアウト・インメモリ分析の標準フォーマットを目指す Apache Arrow と Value Vectors - Tokyo Apache Dril...
by
MapR Technologies Japan
PDF
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
by
MapR Technologies Japan
PDF
異常検知 - 何を探すかよく分かっていないものを見つける方法
by
MapR Technologies Japan
PDF
Drilling into Data with Apache Drill - Tokyo Apache Drill Meetup 2015/11/12
by
MapR Technologies Japan
PDF
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...
by
MapR Technologies Japan
PDF
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
by
MapR Technologies Japan
PDF
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...
by
MapR Technologies Japan
PDF
時系列の世界の時系列データ
by
MapR Technologies Japan
PDF
MapR と Vertica エンジニアが語る、なぜその組み合わせが最高なのか? - db tech showcase 大阪 2014 2014/06/19
by
MapR Technologies Japan
PDF
Hadoop によるゲノム解読
by
MapR Technologies Japan
PDF
MapR 5.2: MapR コンバージド・コミュニティ・エディションを使いこなす
by
MapR Technologies Japan
PDF
マップアールが考える企業システムにおける分析プラットフォームの進化 - 2014/06/27 Data Scientist Summit 2014
by
MapR Technologies Japan
PDF
逆らえない大きな流れ: 次世代のエンタープライズアーキテクチャ
by
MapR Technologies Japan
PDF
エンタープライズ NoSQL/HBase プラットフォーム – MapR M7 エディション - db tech showcase 大阪 2014 201...
by
MapR Technologies Japan
PDF
HBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているか
by
MapR Technologies Japan
PDF
Spark Streaming の基本とスケールする時系列データ処理 - Spark Meetup December 2015/12/09
by
MapR Technologies Japan
PDF
Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...
by
MapR Technologies Japan
PDF
MapR M7 技術概要
by
MapR Technologies Japan
PDF
ビジネスへの本格活用が始まったHadoopの今 ~MapRが選ばれる理由~ - ビッグデータEXPO東京 2014/02/26
by
MapR Technologies Japan
PDF
Fast Data を扱うためのデザインパターン
by
MapR Technologies Japan
スケールアウト・インメモリ分析の標準フォーマットを目指す Apache Arrow と Value Vectors - Tokyo Apache Dril...
by
MapR Technologies Japan
事例から見るNoSQLの使い方 - db tech showcase Tokyo 2015 2015/06/11
by
MapR Technologies Japan
異常検知 - 何を探すかよく分かっていないものを見つける方法
by
MapR Technologies Japan
Drilling into Data with Apache Drill - Tokyo Apache Drill Meetup 2015/11/12
by
MapR Technologies Japan
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...
by
MapR Technologies Japan
Apache Drill Overview - Tokyo Apache Drill Meetup 2015/09/15
by
MapR Technologies Japan
実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference ...
by
MapR Technologies Japan
時系列の世界の時系列データ
by
MapR Technologies Japan
MapR と Vertica エンジニアが語る、なぜその組み合わせが最高なのか? - db tech showcase 大阪 2014 2014/06/19
by
MapR Technologies Japan
Hadoop によるゲノム解読
by
MapR Technologies Japan
MapR 5.2: MapR コンバージド・コミュニティ・エディションを使いこなす
by
MapR Technologies Japan
マップアールが考える企業システムにおける分析プラットフォームの進化 - 2014/06/27 Data Scientist Summit 2014
by
MapR Technologies Japan
逆らえない大きな流れ: 次世代のエンタープライズアーキテクチャ
by
MapR Technologies Japan
エンタープライズ NoSQL/HBase プラットフォーム – MapR M7 エディション - db tech showcase 大阪 2014 201...
by
MapR Technologies Japan
HBase と Drill - 緩い型付けの SQL がいかに NoSQL に適しているか
by
MapR Technologies Japan
Spark Streaming の基本とスケールする時系列データ処理 - Spark Meetup December 2015/12/09
by
MapR Technologies Japan
Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014...
by
MapR Technologies Japan
MapR M7 技術概要
by
MapR Technologies Japan
ビジネスへの本格活用が始まったHadoopの今 ~MapRが選ばれる理由~ - ビッグデータEXPO東京 2014/02/26
by
MapR Technologies Japan
Fast Data を扱うためのデザインパターン
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