티스토리 뷰
지금까지 RDBMS(MySQL, MariaDB, PostgreSQL), NoSQL(MongoDB, Redis)를 주로 사용한 입장에서 Elasticsearch를 처음 사용하다 보니 용어가 헷갈려 RDBMS, NoSQL를 비교하여 용어에 좀 더 친숙해 지기 위해 정리한다.
Elasticsearch, RDBMS 비교
ElasticsearchRDBMSMongoDB(NoSQL)
Mapping | Schema | Collection |
Index | Database | Database |
Type | Table | Collection |
Document | Row | Document |
Field | Column | Column |
REST API의 CRUD와 Elasticsearch, RDBMS 비교
CRUDElasticsearchRDBMS
CREATE | POST | INSERT |
READ | GET | SELECT |
UPDATE | PUT | UPDATE |
DELETE | DELETE | DELETE |
Elasticsearch는 전체 텍스트 검색 엔진으로, 정확도 점수, 형태소 분석, 동의어 등과 같이 사용자가 기대할 수 있는 모든 기능을 갖추고 있으며, 수평적 확장성이 있는 분산된 문서 저장소이기 때문에 한 비트도 건너뛰지 않고 수십억 줄의 데이터를 처리할 수 있습니다. 이러한 Elastcisearch가 Elasticsearch는 6.3 릴리즈 버전부터 새로운 사용자, 데이터 분석가를 위해 SQL 지원을 시작하였다.
Elasticsearch SQL 블로그 글에 따르면 다음과 같이 사용할 수 있다.
POST _xpack/sql
{
"query":"DESCRIBE flights"
}
POST _xpack/sql?format=txt
{
"query":"DESCRIBE flights"
}
POST _xpack/sql?format=txt
{
"query":"SELECT OriginCityName, DestCityName
FROM flights
WHERE FlightTimeHour > 5 AND OriginCountry='US'
ORDER BY FlightTimeHour DESC
LIMIT 10"
}
elasticsearch CLI 사용법은 다음과 같다.
$ ./elasticsearch-sql-cli http://elastic@localhost:9200
$sql> DESCRIBE flights;
column | type
------------------+---------------
AvgTicketPrice |REAL
Cancelled |BOOLEAN
Carrier |VARCHAR
Dest |VARCHAR
DestAirportID |VARCHAR
DestCityName |VARCHAR
DestCountry |VARCHAR
DestLocation |OTHER
DestRegion |VARCHAR
DestWeather |VARCHAR
DistanceKilometers|REAL
...
REST 요청/응답은 JDBC 드라이버나 콘솔에 의해 동작하며, 대소문자를 구별한다.
X-pack 플러그인은 보통 인증에 많이 사용된다고 알고 있으나 REST요청을 보면 자원의 앞부분에서 _xpack을 사용하는 것을 보면 Elasticsearch SQL을 사용할 때도 X-pack이 사용되는 것으로 보인다. 6.3 릴리즈 버전 이후부터는 X-pack이 Elastic Stack을 설치하면 함께 설치된다고 한다.
'Elastic' 카테고리의 다른 글
Elasticsearch 시작하기 (0) | 2021.03.10 |
---|---|
Elasticsearch 란? (0) | 2021.02.28 |
ELK Stack 설치 (docker) (0) | 2021.02.15 |
ELK/Elastic Stack (0) | 2021.01.27 |