SociaLite은 대용량 그래프와 데이터 분석을 위해 개발된 쿼리언어 및 런타임 시스템입니다
SQL정도의 고수준의 쿼리 언어로 데이터 분석 코드를 구현하면, SociaLite 컴파일러가 여러가지 optimization을 적용해서 매우 효율적인 병렬/분산코드로 컴파일합니다. 컴파일된 코드는 Hadoop에 비해서 1000배 이상 빠르며, 알고리즘에 따라서 C로 구현된 (최적화된) 병렬코드와 비슷한 성능을 낼 수 있습니다.
SociaLite에서 제공하는 추상화(abstraction)은 대용량 데이터 분석을 매우 쉽게 만들어줍니다. 예를 들어, in-memory 분산 테이블을 이용해서 데이터를 쉽게 분산해서 저장할 수 있고, 또 아주 쉽게 distributed join operation등을 적용할 수 있도록 합니다.
또한, SociaLite은 파이썬과 잘 통합되어 있어서 파이썬 코드와 SociaLite 쿼리를 섞어서 사용해서 데이터 분석 코드를 구현할 수 있습니다. 파이썬 코드 중간에 SociaLite 쿼리를 사용할 수 있으며, 쿼리 내에서 파이썬 변수나 함수들을 사용해서 programming logic을 구현할 수 있습니다. 파이썬과의 통합은 여러가지 데이터 분석/마이닝 알고리즘을 쉽게 구현할 수 있도록 해 주는데, 예를 들어서 K-Means clustering algorithm은 몇줄 이내의 query와 파이썬 함수로 병렬 및 분산된 version을 구현할 수 있습니다.
이 발표에서는 SociaLite 쿼리언어 소개 및 구현 technique들을 설명할 예정이며, 시간이 된다면 Gephi (graph visualization framework) 를 이용한 데모도 할 예정입니다.