SlideShare a Scribd company logo
1 of 21
Spatial Tajo
Supporting Spatial Queries on Apache Tajo
Apache Tajo + Geospatial things + ?
조현구 (pseudojo.1989@gmail.com)
Slideshare Shorten URL : http://goo.gl/WmTjmz
발표자
 조현구
 군산대 컴퓨터정보공학과 석사과정 수료
 MCALab. (Mobile Convergence and Application Lab.)
 빅데이터, 공간 정보 분석, …
발표 순서
 Spatial Tajo 소개
 개발하게 된 동기
 왜 Apache Tajo인가?
 구현 계획
 현재 상황; 구현/미구현 부분
 경험 공유
 참고 자료
Spatial Tajo란 무엇인가?
 Spatial queries를 위한 플러그인
 분산 데이터 웨어하우스 시스템에 저장한
데이터에 대해 공간 관계 질의, 공간 분석
질의를 제공하고 수행할 수 있도록 하는
플러그인
◦ 공간 질의를 위한 공간 함수들
◦ 데이터 타입 지원
◦ 공간 데이터에 대한 인덱스 지원
◦ 래스터 데이터 지원
 GitHub Spatial-Tajo Repository
Overall Architecture of Apache Tajo
Tajo Worker
Local
File-
System
HDFS
Amazon
S3
QueryMaster
Local Query Engine
StorageManager Spatial Tajo
Tajo MasterCatalogStore
Allocate
a query
Manage
metadata
Client
JDBC SQL Shell Web UI
개발하게 된 동기
 접한 시기 : 2014. 12~
 Hadoop → HBase → … … … → Tajo
 분석하려는 공간 데이터의 양이 빅 데이터에 근접하는데, 이를 SQL를 이용해서
분석하고 싶다.
 배치 작업없이 작동하는 시스템을 이용하고 싶다.
 소프트웨어나 솔루션을 자유롭게 사용하고 싶다.
(물론 커뮤니티에 경험 등을 기여한다는 가정하에)
분석하려고 했던 데이터?
 인터넷, 모바일 환경의 발전에 따라 작성하는 데이터는 변화
 마이크로블로그 데이터의 구성
Related Paper
개발하게 된 동기
 물론 기존에 나와있는 솔루션 중에도 괜찮은 게 있다. 하지만…
◦ Relational Database and DBMS
◦ Oracle Spatial and Graph (Oracle Database+Plug-in)
◦ MySQL DBMS
◦ PostGIS with PostgreSQL
◦ NoSQL
◦ Document-oriented database: MongoDB, CouchDB (Plug-in), RethinkDB
◦ HBase, Hive
◦ Cluster and Cloud
◦ GeoMesa, ESRI GIS Tools for Hadoop, SpatialHadoop (http://spatialhadoop.cs.umn.edu) (on Hadoop)
◦ CartoDB (on top of PostgreSQL, PostGIS and SaaS)
 결론 : FOSS(Free and Open-Source Software) + Spatial → Apache Tajo + Spatial Plug-in!
왜 Apache Tajo를 선택했나?
 Apache Tajo
◦ A robust big data relational and distributed data warehouse system for Apache Hadoop
◦ Designed for low-latency and scalable ad-hoc queries, online aggregation, and ETL on large
-data sets stored on HDFS and other data sources.
 특징
◦ 데이터를 분산 저장하는 동작들을 Hadoop이나 Amazon S3 등에 위임함
◦ 데이터의 삽입은 지원하나, 업데이트는 지원하지 않음.
◦ 호환성 : ANSI/ISO SQL로 질의 가능
◦ MapReduce를 이용한 처리보다 더 빠르고, 내고장성 보장
◦ 구축 및 운용에서의 쉬움과 편리함
◦ 필요하면 직접 구현해서 붙이는 것이 가능(Plug-in)
구현 계획
 Spatial functions for spatial queries
◦ DE-9IM (Dimensionally Extended nine-Intersection Model)
◦ Binary Predicates : Equals, Disjoints, Intersects and Touches, Crosses, Within, Contains, Overlaps
◦ Spatial Analysis Methods : ConvexHull, Intersection, Union, Difference, SymDifference
◦ Transforming Spatial Type : like ‘asPoint, asPolygon, toPoint, toPolygon, …’
◦ Etc Spatial Functions : Distances, Lengths, Areas and Centroids, …
 Adding spatial data types
 Supporting an index for spatial data
◦ R-tree, Quad-tree and KD-tree, etc.
 Enabling to run kNN queries
현재 상황; 구현된 부분
 공간 관련 함수들
◦ JTS를 이용하여 대부분의 함수 구현
◦ DE-9IM : Distances, Equals, Disjoints, Intersects, Touches, Crosses, Overlaps and Contains
 kNN 질의 실행
◦ 구현된 공간 함수들을 이용하여 질의가 가능
 공간 데이터에 대한 인덱싱
◦ STR(Sort-Tile-Recursive)를 이용한 R-tree 인덱싱
Local indexes
Global
Index
인덱스를 이용해
데이터를 읽는 과정
1. 글로벌 인덱스에서
검색할 키들을 찾음
2. 검색할 키들에 대응하는
로컬 인덱스들을 찾는다.
3. 로컬 인덱스들에서
검색할 키들을 찾는다.
4. 해당 키들에 포함된
오프셋을 이용해 읽는다.
Wikipedia: R-tree - STR, SpatialHadoop Paper and Tajo Document
현재 상황; 미구현된 부분
 공간 데이터 타입 추가
◦ 공간 관련 함수들의 파라미터가 부정확하고, 사용하기 불편하다.
 미구현된 공간 함수들
◦ Binary Predicates를 제외한 대다수의 공간 함수들
 구현한 부분(함수, 질의, 인덱스 등)에 대한 최적화
 공간 데이터에 대한 인덱싱 → ?
◦ Quad-tree (with GeoHash) and KD-tree
 모듈화
◦ Apache Tajo와 분리가 되어있지 않아 별도의 설치가 불가능.
경험 공유
 상황에 대처를 할 수 있는 노하우가 적인 문서가 거의 없다
◦ 적용에 대한 질문이 대다수, 기능 구현에 대한 질문은 거의 찾기 힘들었다
◦ UDF 구현
◦ http://stackoverflow.com/questions/27194691/how-to-write-a-udf-in-tajo → 현재의 방식과 다소 차이가 존재
◦ https://groups.google.com/forum/#!topic/tajo-user-kr/GR8SEhxtnSE → 예전 답변
◦ https://groups.google.com/forum/#!topic/tajo-user-kr/XhgGpGEpExs
◦ 데이터 타입 구현
◦ 인덱스 구현
◦ https://groups.google.com/forum/#!topic/tajo-user-kr/496UcPmEo84 → 직접 질문
경험 공유
 실제 구현과 디버깅
◦ Apache Tajo Convension 준수
◦ 파일 최상단의 라이선스 구문
◦ GlobalEngine #L176, #L281
◦ Test
◦ TPCH 테이블 데이터 복사
(tajo-cluster-tests/src/test/resources/tpch)
◦ QueryTestCaseBase #L841
(verifyResultText: assertEquals)
◦ 인덱스 구현
◦ 실제로는 쓸만하게 하려면
생각보다 많은 부분을 손봐야했다.
(Protobuf, ANTLR 포함…)
경험 공유
 실제 구현과 디버깅
◦ 명심해야 하는 “것들”
◦ 경계
◦ 인터페이스
◦ 지원되지 않는 것이 버그는 아니다.
(하지만 구현이 필요한 경우가…)
◦ 이미 구현된 것을 한 번 볼 것
◦ 이미 구현된 것을 두 번 볼 것
◦ 이미 구현된 것을 세 번 볼 것
◦ ……
참고 자료
Apache Tajo
◦ Official Website, Source codes, User documentation
◦ Efficient In-situ processing of various storage types on Apache Tajo
◦ Apache Tajo Enters the SQL-on-Hadoop Space
◦ SQL-on-Hadoop: What does “100 times faster than Hive” actually mean?
◦ Setting up an Apache Tajo Cluster on Amazon EMR
PostgreSQL and PostGIS Document
SpatialHadoop
◦ Official Website, Source codes
◦ A demonstration of SpatialHadoop: an efficient mapreduce framework for spatial data
◦ Spatialhadoop: towards flexible and scalable spatial processing using MapReduce
Reference
Spatial Databases: With Application to GIS
Indexing
◦ STR: A simple and efficient algorithm for R-tree packing
◦ Spatialhadoop: towards flexible and scalable spatial processing using mapreduce
◦ Tajo: A distributed data warehouse system on large clusters
◦ Apache Tajo Documents: Index types
Wikipedia
◦ Spatial Database
◦ Spatial Query
◦ R-tree
들어주셔서 감사합니다!
질문 있으시면 이메일로 보내주세요!
(pseudojo.1989@gmail.com)

More Related Content

What's hot

Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014Gruter
 
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & RankingIan Choi
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-HadoopGRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-HadoopGruter
 
Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum DNA
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 보안 로그 분석을 위한 빅데이터 시스템 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 보안 로그 분석을 위한 빅데이터 시스템 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 보안 로그 분석을 위한 빅데이터 시스템 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 보안 로그 분석을 위한 빅데이터 시스템 구축 사례Gruter
 
Hadoop cluster os_tuning_v1.0_20170106_mobile
Hadoop cluster os_tuning_v1.0_20170106_mobileHadoop cluster os_tuning_v1.0_20170106_mobile
Hadoop cluster os_tuning_v1.0_20170106_mobile상연 최
 
검색 서비스 간략 교육
검색 서비스 간략 교육 검색 서비스 간략 교육
검색 서비스 간략 교육 Rjs Ryu
 
Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)Channy Yun
 
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo,  and application case of SK TelecomSQL-on-Hadoop with Apache Tajo,  and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo, and application case of SK TelecomGruter
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Gruter
 
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun KimDeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun KimGruter
 
Spark machine learning & deep learning
Spark machine learning & deep learningSpark machine learning & deep learning
Spark machine learning & deep learninghoondong kim
 
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for HadoopSeungYong Baek
 
Spark_Overview_qna
Spark_Overview_qnaSpark_Overview_qna
Spark_Overview_qna현철 박
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: SNS 서비스 아키텍쳐 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: SNS 서비스 아키텍쳐 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: SNS 서비스 아키텍쳐 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: SNS 서비스 아키텍쳐 구축 사례Gruter
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례Gruter
 
Spark Day 2017 Machine Learning & Deep Learning With Spark
Spark Day 2017 Machine Learning & Deep Learning With SparkSpark Day 2017 Machine Learning & Deep Learning With Spark
Spark Day 2017 Machine Learning & Deep Learning With SparkSangHoon Lee
 
234 deview2013 김형준
234 deview2013 김형준234 deview2013 김형준
234 deview2013 김형준NAVER D2
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제NAVER D2
 

What's hot (20)

Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014Vectorized processing in_a_nutshell_DeView2014
Vectorized processing in_a_nutshell_DeView2014
 
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-HadoopGRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: Tajo와 SQL-on-Hadoop
 
Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 보안 로그 분석을 위한 빅데이터 시스템 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 보안 로그 분석을 위한 빅데이터 시스템 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 보안 로그 분석을 위한 빅데이터 시스템 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 보안 로그 분석을 위한 빅데이터 시스템 구축 사례
 
Hadoop cluster os_tuning_v1.0_20170106_mobile
Hadoop cluster os_tuning_v1.0_20170106_mobileHadoop cluster os_tuning_v1.0_20170106_mobile
Hadoop cluster os_tuning_v1.0_20170106_mobile
 
검색 서비스 간략 교육
검색 서비스 간략 교육 검색 서비스 간략 교육
검색 서비스 간략 교육
 
Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)Realtime Big data Anaytics and Exampes of Daum (2013)
Realtime Big data Anaytics and Exampes of Daum (2013)
 
Feature perf comp_v1
Feature perf comp_v1Feature perf comp_v1
Feature perf comp_v1
 
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo,  and application case of SK TelecomSQL-on-Hadoop with Apache Tajo,  and application case of SK Telecom
SQL-on-Hadoop with Apache Tajo, and application case of SK Telecom
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013
 
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun KimDeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
DeView2013 Big Data Platform Architecture with Hadoop - Hyeong-jun Kim
 
Spark machine learning & deep learning
Spark machine learning & deep learningSpark machine learning & deep learning
Spark machine learning & deep learning
 
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
 
Spark_Overview_qna
Spark_Overview_qnaSpark_Overview_qna
Spark_Overview_qna
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: SNS 서비스 아키텍쳐 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: SNS 서비스 아키텍쳐 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: SNS 서비스 아키텍쳐 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: SNS 서비스 아키텍쳐 구축 사례
 
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
GRUTER가 들려주는 Big Data Platform 구축 전략과 적용 사례: 인터넷 쇼핑몰의 실시간 분석 플랫폼 구축 사례
 
Spark Day 2017 Machine Learning & Deep Learning With Spark
Spark Day 2017 Machine Learning & Deep Learning With SparkSpark Day 2017 Machine Learning & Deep Learning With Spark
Spark Day 2017 Machine Learning & Deep Learning With Spark
 
234 deview2013 김형준
234 deview2013 김형준234 deview2013 김형준
234 deview2013 김형준
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
 

Viewers also liked

Computation of spatial data on Hadoop Cluster
Computation of spatial data on Hadoop ClusterComputation of spatial data on Hadoop Cluster
Computation of spatial data on Hadoop ClusterAbhishek Sagar
 
Spatial Data processing with Hadoop
Spatial Data processing with HadoopSpatial Data processing with Hadoop
Spatial Data processing with HadoopVisionGEOMATIQUE2014
 
HGrid A Data Model for Large Geospatial Data Sets in HBase
HGrid A Data Model for Large Geospatial Data Sets in HBaseHGrid A Data Model for Large Geospatial Data Sets in HBase
HGrid A Data Model for Large Geospatial Data Sets in HBaseDan Han
 
Building a geospatial processing pipeline using Hadoop and HBase and how Mons...
Building a geospatial processing pipeline using Hadoop and HBase and how Mons...Building a geospatial processing pipeline using Hadoop and HBase and how Mons...
Building a geospatial processing pipeline using Hadoop and HBase and how Mons...DataWorks Summit
 
How To Analyze Geolocation Data with Hive and Hadoop
How To Analyze Geolocation Data with Hive and HadoopHow To Analyze Geolocation Data with Hive and Hadoop
How To Analyze Geolocation Data with Hive and HadoopHortonworks
 
공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
 공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습 공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습HaNJiN Lee
 

Viewers also liked (6)

Computation of spatial data on Hadoop Cluster
Computation of spatial data on Hadoop ClusterComputation of spatial data on Hadoop Cluster
Computation of spatial data on Hadoop Cluster
 
Spatial Data processing with Hadoop
Spatial Data processing with HadoopSpatial Data processing with Hadoop
Spatial Data processing with Hadoop
 
HGrid A Data Model for Large Geospatial Data Sets in HBase
HGrid A Data Model for Large Geospatial Data Sets in HBaseHGrid A Data Model for Large Geospatial Data Sets in HBase
HGrid A Data Model for Large Geospatial Data Sets in HBase
 
Building a geospatial processing pipeline using Hadoop and HBase and how Mons...
Building a geospatial processing pipeline using Hadoop and HBase and how Mons...Building a geospatial processing pipeline using Hadoop and HBase and how Mons...
Building a geospatial processing pipeline using Hadoop and HBase and how Mons...
 
How To Analyze Geolocation Data with Hive and Hadoop
How To Analyze Geolocation Data with Hive and HadoopHow To Analyze Geolocation Data with Hive and Hadoop
How To Analyze Geolocation Data with Hive and Hadoop
 
공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
 공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습 공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
공간정보 거점대학 - OpenLayers의 고급 기능 이해 및 실습
 

Similar to Tajo korea meetup oct 2015-spatial tajo

Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoGruter
 
[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준NAVER D2
 
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWSMatthew (정재화)
 
Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Steve Min
 
100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning Systemhoondong kim
 
Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218Hyoungjun Kim
 
Accelerate spring boot application with apache ignite
Accelerate spring boot application with apache igniteAccelerate spring boot application with apache ignite
Accelerate spring boot application with apache igniteYEON BOK LEE
 
Python & Spark
Python & SparkPython & Spark
Python & Sparkitproman35
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴Terry Cho
 
Spark streaming tutorial
Spark streaming tutorialSpark streaming tutorial
Spark streaming tutorialMinho Kim
 
DataWorks Summit 2018
DataWorks Summit 2018DataWorks Summit 2018
DataWorks Summit 2018Daesung Park
 
Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기SangWoo Kim
 
Machine Learning Model Serving with Backend.AI
Machine Learning Model Serving with Backend.AIMachine Learning Model Serving with Backend.AI
Machine Learning Model Serving with Backend.AIJeongkyu Shin
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...문기 박
 
Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Gruter
 
확장가능한 웹 아키텍쳐 구축 방안
확장가능한 웹 아키텍쳐 구축 방안 확장가능한 웹 아키텍쳐 구축 방안
확장가능한 웹 아키텍쳐 구축 방안 IMQA
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)Channy Yun
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AILablup Inc.
 
Elastic Stack & Data pipeline
Elastic Stack & Data pipelineElastic Stack & Data pipeline
Elastic Stack & Data pipelineJongho Woo
 
HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영
HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영
HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영JooHyung Kim
 

Similar to Tajo korea meetup oct 2015-spatial tajo (20)

Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
 
[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준
 
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
 
Apache Htrace overview (20160520)
Apache Htrace overview (20160520)Apache Htrace overview (20160520)
Apache Htrace overview (20160520)
 
100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System
 
Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218Jco 소셜 빅데이터_20120218
Jco 소셜 빅데이터_20120218
 
Accelerate spring boot application with apache ignite
Accelerate spring boot application with apache igniteAccelerate spring boot application with apache ignite
Accelerate spring boot application with apache ignite
 
Python & Spark
Python & SparkPython & Spark
Python & Spark
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴
 
Spark streaming tutorial
Spark streaming tutorialSpark streaming tutorial
Spark streaming tutorial
 
DataWorks Summit 2018
DataWorks Summit 2018DataWorks Summit 2018
DataWorks Summit 2018
 
Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기
 
Machine Learning Model Serving with Backend.AI
Machine Learning Model Serving with Backend.AIMachine Learning Model Serving with Backend.AI
Machine Learning Model Serving with Backend.AI
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
 
Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014Elastic Search Performance Optimization - Deview 2014
Elastic Search Performance Optimization - Deview 2014
 
확장가능한 웹 아키텍쳐 구축 방안
확장가능한 웹 아키텍쳐 구축 방안 확장가능한 웹 아키텍쳐 구축 방안
확장가능한 웹 아키텍쳐 구축 방안
 
빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)빅데이터 기술 현황과 시장 전망(2014)
빅데이터 기술 현황과 시장 전망(2014)
 
JMI Techtalk : Backend.AI
JMI Techtalk : Backend.AIJMI Techtalk : Backend.AI
JMI Techtalk : Backend.AI
 
Elastic Stack & Data pipeline
Elastic Stack & Data pipelineElastic Stack & Data pipeline
Elastic Stack & Data pipeline
 
HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영
HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영
HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영
 

Tajo korea meetup oct 2015-spatial tajo

  • 1. Spatial Tajo Supporting Spatial Queries on Apache Tajo Apache Tajo + Geospatial things + ? 조현구 (pseudojo.1989@gmail.com) Slideshare Shorten URL : http://goo.gl/WmTjmz
  • 2. 발표자  조현구  군산대 컴퓨터정보공학과 석사과정 수료  MCALab. (Mobile Convergence and Application Lab.)  빅데이터, 공간 정보 분석, …
  • 3.
  • 4. 발표 순서  Spatial Tajo 소개  개발하게 된 동기  왜 Apache Tajo인가?  구현 계획  현재 상황; 구현/미구현 부분  경험 공유  참고 자료
  • 5. Spatial Tajo란 무엇인가?  Spatial queries를 위한 플러그인  분산 데이터 웨어하우스 시스템에 저장한 데이터에 대해 공간 관계 질의, 공간 분석 질의를 제공하고 수행할 수 있도록 하는 플러그인 ◦ 공간 질의를 위한 공간 함수들 ◦ 데이터 타입 지원 ◦ 공간 데이터에 대한 인덱스 지원 ◦ 래스터 데이터 지원  GitHub Spatial-Tajo Repository Overall Architecture of Apache Tajo Tajo Worker Local File- System HDFS Amazon S3 QueryMaster Local Query Engine StorageManager Spatial Tajo Tajo MasterCatalogStore Allocate a query Manage metadata Client JDBC SQL Shell Web UI
  • 6. 개발하게 된 동기  접한 시기 : 2014. 12~  Hadoop → HBase → … … … → Tajo  분석하려는 공간 데이터의 양이 빅 데이터에 근접하는데, 이를 SQL를 이용해서 분석하고 싶다.  배치 작업없이 작동하는 시스템을 이용하고 싶다.  소프트웨어나 솔루션을 자유롭게 사용하고 싶다. (물론 커뮤니티에 경험 등을 기여한다는 가정하에)
  • 7. 분석하려고 했던 데이터?  인터넷, 모바일 환경의 발전에 따라 작성하는 데이터는 변화  마이크로블로그 데이터의 구성 Related Paper
  • 8. 개발하게 된 동기  물론 기존에 나와있는 솔루션 중에도 괜찮은 게 있다. 하지만… ◦ Relational Database and DBMS ◦ Oracle Spatial and Graph (Oracle Database+Plug-in) ◦ MySQL DBMS ◦ PostGIS with PostgreSQL ◦ NoSQL ◦ Document-oriented database: MongoDB, CouchDB (Plug-in), RethinkDB ◦ HBase, Hive ◦ Cluster and Cloud ◦ GeoMesa, ESRI GIS Tools for Hadoop, SpatialHadoop (http://spatialhadoop.cs.umn.edu) (on Hadoop) ◦ CartoDB (on top of PostgreSQL, PostGIS and SaaS)  결론 : FOSS(Free and Open-Source Software) + Spatial → Apache Tajo + Spatial Plug-in!
  • 9. 왜 Apache Tajo를 선택했나?  Apache Tajo ◦ A robust big data relational and distributed data warehouse system for Apache Hadoop ◦ Designed for low-latency and scalable ad-hoc queries, online aggregation, and ETL on large -data sets stored on HDFS and other data sources.  특징 ◦ 데이터를 분산 저장하는 동작들을 Hadoop이나 Amazon S3 등에 위임함 ◦ 데이터의 삽입은 지원하나, 업데이트는 지원하지 않음. ◦ 호환성 : ANSI/ISO SQL로 질의 가능 ◦ MapReduce를 이용한 처리보다 더 빠르고, 내고장성 보장 ◦ 구축 및 운용에서의 쉬움과 편리함 ◦ 필요하면 직접 구현해서 붙이는 것이 가능(Plug-in)
  • 10. 구현 계획  Spatial functions for spatial queries ◦ DE-9IM (Dimensionally Extended nine-Intersection Model) ◦ Binary Predicates : Equals, Disjoints, Intersects and Touches, Crosses, Within, Contains, Overlaps ◦ Spatial Analysis Methods : ConvexHull, Intersection, Union, Difference, SymDifference ◦ Transforming Spatial Type : like ‘asPoint, asPolygon, toPoint, toPolygon, …’ ◦ Etc Spatial Functions : Distances, Lengths, Areas and Centroids, …  Adding spatial data types  Supporting an index for spatial data ◦ R-tree, Quad-tree and KD-tree, etc.  Enabling to run kNN queries
  • 11.
  • 12.
  • 13.
  • 14. 현재 상황; 구현된 부분  공간 관련 함수들 ◦ JTS를 이용하여 대부분의 함수 구현 ◦ DE-9IM : Distances, Equals, Disjoints, Intersects, Touches, Crosses, Overlaps and Contains  kNN 질의 실행 ◦ 구현된 공간 함수들을 이용하여 질의가 가능  공간 데이터에 대한 인덱싱 ◦ STR(Sort-Tile-Recursive)를 이용한 R-tree 인덱싱 Local indexes Global Index 인덱스를 이용해 데이터를 읽는 과정 1. 글로벌 인덱스에서 검색할 키들을 찾음 2. 검색할 키들에 대응하는 로컬 인덱스들을 찾는다. 3. 로컬 인덱스들에서 검색할 키들을 찾는다. 4. 해당 키들에 포함된 오프셋을 이용해 읽는다. Wikipedia: R-tree - STR, SpatialHadoop Paper and Tajo Document
  • 15. 현재 상황; 미구현된 부분  공간 데이터 타입 추가 ◦ 공간 관련 함수들의 파라미터가 부정확하고, 사용하기 불편하다.  미구현된 공간 함수들 ◦ Binary Predicates를 제외한 대다수의 공간 함수들  구현한 부분(함수, 질의, 인덱스 등)에 대한 최적화  공간 데이터에 대한 인덱싱 → ? ◦ Quad-tree (with GeoHash) and KD-tree  모듈화 ◦ Apache Tajo와 분리가 되어있지 않아 별도의 설치가 불가능.
  • 16. 경험 공유  상황에 대처를 할 수 있는 노하우가 적인 문서가 거의 없다 ◦ 적용에 대한 질문이 대다수, 기능 구현에 대한 질문은 거의 찾기 힘들었다 ◦ UDF 구현 ◦ http://stackoverflow.com/questions/27194691/how-to-write-a-udf-in-tajo → 현재의 방식과 다소 차이가 존재 ◦ https://groups.google.com/forum/#!topic/tajo-user-kr/GR8SEhxtnSE → 예전 답변 ◦ https://groups.google.com/forum/#!topic/tajo-user-kr/XhgGpGEpExs ◦ 데이터 타입 구현 ◦ 인덱스 구현 ◦ https://groups.google.com/forum/#!topic/tajo-user-kr/496UcPmEo84 → 직접 질문
  • 17. 경험 공유  실제 구현과 디버깅 ◦ Apache Tajo Convension 준수 ◦ 파일 최상단의 라이선스 구문 ◦ GlobalEngine #L176, #L281 ◦ Test ◦ TPCH 테이블 데이터 복사 (tajo-cluster-tests/src/test/resources/tpch) ◦ QueryTestCaseBase #L841 (verifyResultText: assertEquals) ◦ 인덱스 구현 ◦ 실제로는 쓸만하게 하려면 생각보다 많은 부분을 손봐야했다. (Protobuf, ANTLR 포함…)
  • 18. 경험 공유  실제 구현과 디버깅 ◦ 명심해야 하는 “것들” ◦ 경계 ◦ 인터페이스 ◦ 지원되지 않는 것이 버그는 아니다. (하지만 구현이 필요한 경우가…) ◦ 이미 구현된 것을 한 번 볼 것 ◦ 이미 구현된 것을 두 번 볼 것 ◦ 이미 구현된 것을 세 번 볼 것 ◦ ……
  • 19. 참고 자료 Apache Tajo ◦ Official Website, Source codes, User documentation ◦ Efficient In-situ processing of various storage types on Apache Tajo ◦ Apache Tajo Enters the SQL-on-Hadoop Space ◦ SQL-on-Hadoop: What does “100 times faster than Hive” actually mean? ◦ Setting up an Apache Tajo Cluster on Amazon EMR PostgreSQL and PostGIS Document SpatialHadoop ◦ Official Website, Source codes ◦ A demonstration of SpatialHadoop: an efficient mapreduce framework for spatial data ◦ Spatialhadoop: towards flexible and scalable spatial processing using MapReduce
  • 20. Reference Spatial Databases: With Application to GIS Indexing ◦ STR: A simple and efficient algorithm for R-tree packing ◦ Spatialhadoop: towards flexible and scalable spatial processing using mapreduce ◦ Tajo: A distributed data warehouse system on large clusters ◦ Apache Tajo Documents: Index types Wikipedia ◦ Spatial Database ◦ Spatial Query ◦ R-tree
  • 21. 들어주셔서 감사합니다! 질문 있으시면 이메일로 보내주세요! (pseudojo.1989@gmail.com)

Editor's Notes

  1. Parts that are not yet implemented include spatial data types, spatial functions, kNN query, spatial data index and modularization. Spatial data types are currently not implemented, so there is an inconvenience that spatial functions have to use primitive types. I am going to resolve the inconvenience of spatial functions, once spatial data types are implemented. First, as for spatial functions, I am going to implement the functions as lengths, areas, centroids that are not implemented and then, optimize each of the spatial functions and kNN queries. Next, as for the indexing of spatial data, I am going to implement Quad-tree or KD-Tree using GeoHash as well as R-tree. Lastly, I am going to modularize the plug-in. Currently, it is combined since it is difficult to separate it from Tajo, but after going through the final modularization in the plug-in, it will be distributed in the form of a plug-in.
  2. For today’s presentation, I mainly referred to the documents and source codes of Tajo, SpatialHadoop and PostGIS and etc., and there are books or websites for information about the contents, as well.
  3. For today’s presentation, I mainly referred to the documents and source codes of Tajo, SpatialHadoop and PostGIS and etc., and there are books or websites for information about the contents, as well.
  4. For Q&A, please e-mail your questions to the e-mail address stated here, and I will answer them in detail. Thank you for listening to my presentation.